阅读目录
- 1.基础查询
- 2.高级多表查询
1.基础查询
范围查询
在范围in
select 字段 from 表名 where 字段 in (值,值);
select id from stu where id in (2,3);
不在范围not in
select 字段 from 表名 where 字段 in (值,值);
select id from stu where id not in (2,3);
在之间between
select 字段 from 表名 where 字段 between 值 and 值;
select id from stu where id between 1 and 3;
排序order by asc
select 字段 from 表名 order by 字段;(升序)
select * from stu order by id;
降序order by desc
select 字段 from 表名 order by 字段 desc;(降序)
select * from stu order by id;
去重distinct
select distinct(字段) from 表名;
select distinct(id) from stu;
限制limit
select 字段 from 表名 limit 数字;
select * from stu limit 2;
分组group by
select 查询字段 from 表名 where 查询条件 group by 查询字段;
select id from stu where id >1 group by id;
分组过滤having
select 查询字段 from 表名 group by 查询字段 having 过滤条件;
select id from stu group by id having id > 1;
2.高级多表查询
再新建一个表
create table class (id int,user_id int,name char(16));(user_id与stu表中的id值一致)
内连接inner join on
select 字段 from 左表名 新表名 inner join 右表名 新表名 on 左表名.字段 = 右表名.字段(两个表中字段值一致)
select * from stu u inner join class s on u.id = s.user_id;
左连接left join on
select 字段 from 左表名 新表名 inner join 右表名 新表名 on 左表名.字段 = 右表名.字段(两个表中字段值一致)
select * from stu u left join class s on u.id = s.user_id;
右连接right join on
select 字段 from 左表名 新表名 right join 右表名 新表名 on 左表名.字段 = 右表名.字段(两个表中字段值一致)
select * from stu u right join class s on u.id = s.user_id;
嵌套查询select(select)
select 字段 from 表名 where 字段 条件 (select 字段 from 表名 where 字段);(将select中的语句看成一个新表)
select names from stu where id in (select user_id from class where name='一年级');
合并并去重union
将多个结果合并到一个表,并删除多个重复数据
select 字段 from 表名 union select 字段 from 表名;
select id from stu union select user_id from class;
合并不去重union all
将多个结果合并到一个表,并删除多个重复数据
select 字段 from 表名 union all select 字段 from 表名;
select id from stu union all select user_id from class;