SQL基础介绍

1. 基本语法

SQL(Structured Query Language)结构化查询语言,通过SQL,我们就可以查询数据库中的数据,而数据再数据库中又是以表的形式保存的,所以SQL查询,主要就是对表进行查询。

SQL的语法就和学习英语的语法、汉语拼音一样,满足给定的套路,去使用就可以了。

当我们拿到了数据库的连接信息,连接到一个数据库上,我们就可以开始写SQL了。

简单介绍客户端Navicat的使用

菜单-新建连接
新建连接

这一个一个圆柱形的,就是一个数据库实例,下面那些电子表格图标的就是表,数据就存储在表中。

数据库及表

使用Navicat查看表结构信息,介绍下表、字段、注释等

对象信息
表结构信息

select

下面,我们来看看,怎样查看一张表的数据;SQL的语法呢,就好比是一个公式,初学的话我们去套用就可以了。

SELECT 列名称 FROM 表名称
或者
SELECT * FROM 表名称

使用Navicat执行查询

-- 查看学生表数据,指定字段
select s_id,s_name from t_student;
学生表数据
-- 查看所有字段
select *from t_student;
学生表数据

排序

排序是很常用的功能,我们想要对结果集进行指定的排序,就要使用order by

order by 字段名

默认升序,可以使用desc降序排列

-- 学生ID降序排列
select *from t_student order by s_id desc;
降序排列

多字段排序

-- 班级ID升序排列,班级ID一样的按学生ID降序排列
select *from t_student order by c_id,s_id desc;
多字段排序

limit

指定返回记录的数目

我们上面,都是查询一张表所有的数据,有的时候表的数据量很大,或者我们只想看看排名前3的数据,我们就可以使用limit

-- 学生ID降序排列,取前3条记录
select *from t_student order by s_id desc limit 3;
limit

where

前面,我们可以查看一张表的所有数据、做排序、然后只取前几行,实际使用时,一定会有这样的需求,比如我们只想看学生ID是105的记录,就需要使用where了,它可以对数据进行过滤。

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

常用的运算符.png
-- 查看学生ID是105的学生信息
select *from t_student where s_id = 105;

-- 查看学生ID不是105的其他学生信息
select *from t_student where s_id <> 105 ;

-- 查看学生ID在103和108之间的学生信息
select *from t_student where s_id between 103 and 108;

这里还有一个操作符很常用,就是 in 和 not in。
in 表示在多个值中存在,加上not则表示不存在

-- 查看学生ID是103,105,,107的学生信息
select *from t_student where s_id in (103,105,107);

-- 查看学生ID不在102中的其他学生信息
select *from t_student where s_id not in (102);

like

匹配字符串,像‘xxxx’一样

%: 表示任意个或多个字符
_:表示任意单个字符

-- 查看喜欢吃肉的学生信息
select *from t_student where s_hobby like '吃肉%';
select *from t_student where s_hobby like '%吃肉%';
like使用

and 和 or

上面,我们都是一个单独的过滤条件,实际上,我们的会有各种各样的情况,需要同时满足多种过滤条件,这就用到了 and 和 or。

AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

-- 查看班级ID是901的所有男生信息
select *from t_student where c_id=901 and s_gender=0;

-- 查看班级ID是901或者s_id大于107的学生信息
select *from t_student where c_id=901 or s_id > 107;

流程控制

关联查询

你可能感兴趣的:(SQL基础介绍)