数据准备:
- 查询指定字段
select
列
1
,列
2
,...
from
表名;
例:
select
name,gender
from
students;
- 使用 as 给字段起别名
select
id
as
标号,
name
as
名字, gender
as
性别
from
students;
- 可以通过 as 给表起别名
-- 如果是单表查询 可以省略表明
select
id
,
name
, gender
from
students;
-- 表名.字段名
select
students.
id
,students.
name
,students.gender
from
students;
-- 可以通过 as 给表起别名
select
s.
id
,s.
name
,s.gender
from
students
as
s;
- 在select后面列前使用distinct可以消除重复的行
select distinct 列1,... from 表名;
例:
select distinct gender from students;
条件查询:
使用where子句对表中的数据筛选,结果为true的行会出现在结果集中
- 语法如下:
select
*
from
表名
where
条件;
例:
select
*
from
students
where
id
=
1
;
- where后面支持多种运算符,进行条件的处理
-
- 比较运算符
- 逻辑运算符
- 模糊查询
- 范围查询
- 空判断
比较运算符
- 等于: =
- 大于: >
- 大于等于: >=
- 小于: <
- 小于等于: <=
- 不等于: != 或 <>
例1:查询编号大于3的学生
select
*
from
students
where
id
>
3
;
例2:查询编号不大于4的学生
select
*
from
students
where
id
<=
4
;
例3:查询姓名不是“黄蓉”的学生
select
*
from
students
where
name
!=
'黄蓉'
;
例4:查询没被删除的学生
select
*
from
students
where
is_delete=
0
;
逻辑运算符
- and
- or
- not
例5:查询编号大于3的女同学
select
*
from
students
where
id
>
3
and
gender=
0
;
例6:查询编号小于4或没被删除的学生
select
*
from
students
where
id
<
4
or
is_delete=
0
;
模糊查询
- like
- %表示任意多个任意字符
- _表示一个任意字符
例7:查询姓黄的学生
select * from students where name like '黄%';
例8:查询姓黄并且名字是一个字的学生
select * from students where name like '黄_';
例9:查询姓黄或叫靖的学生
select * from students where name like '黄%' or name like '%靖';
范围查询查询
- in表示在一个非连续的范围内
例10:查询编号是1或3或8的学生
select
*
from
students
where
id
in
(
1
,
3
,
8
);
- between ... and ...表示在一个连续的范围内
例11:查询编号为3至8的学生
select
*
from
students
where
id
between
3
and
8
;
例12:查询学生是3至8的男生
select
*
from
students
where
id
between
3
and
8
and
gender=
1
;
空判断
- 注意:null与''是不同的
- 判空is null
例13:查询没有填写身高的学生
select
*
from
students
where
height
is
null
;
- 判非空is not null
例14:查询填写了身高的学生
select
*
from
students
where
height
is
not
null
;
例15:查询填写了身高的男生
select
*
from
students
where
height
is
not
null
and
gender=
1
;
优先级
- 优先级由高到低的顺序为:小括号,not,比较运算符,逻辑运算符
- and比or先运算,如果同时出现并希望先算or,需要结合()使用