mysql常用sql语句整理
增-insert
// 方式1
insert into student values(null,'张三','男','1996-4-25','......');
// 方式2
insert into student (id,name,sex,age,sno) values (null,'李超','男',38,1);
查-select
and条件查询
select * from student where date>'2020-1-2' and date<'2020-12-1';
between条件查询
select * from student where date between '2020-1-2' and '2020-12-1';
like模糊查询
// 查询“王”姓的学生,例如:王立,王刚刚,王克司
select * from student where user_name like '王%';
// 查询姓名中包含“三”的学生,例如:三兒、张三无、刘三
select * from student where user_name like '%三%';
in 查询指定集合内的数据
select * from student where id in (1,3,5);
排序 asc 升序 desc 降序
// 默认排序方式为asc
select * from student order by id desc;
求平均值
select avg(id) as '平均值' from student;
统计表中总数
select count(*) from student;
求和
select sum(id) from student;
查询第i条以后到第j条的数据(不包括第i条)
select * from student limit 2,5; #显示3-5条数据
分组查询,通过sex分组,查询age的最小值
select min(age), sex, name from student group by sex;
and if条件拼接
select * from student where age>16 and if (判断, 判断为真时, 判断为假时);
select * from student where age>16 and if (''=null, 1=1, name="赵飒");
改-update
update student set sex='男' where id=4;
删-delete
delete from student where id=5;
多表联查
a表数据
id | name |
---|---|
1 | 张三 |
2 | 李四 |
3 | 王五 |
b表数据
id | age | user_id |
---|---|---|
1 | 23 | 1 |
2 | 34 | 2 |
3 | 34 | 4 |
内连接
select a.*,b.* from a inner join b on a.id=b.user_id
a表和b表中同时存在的数据
结果为:
id(a) | name | id (b) | age | user_id |
---|---|---|---|---|
1 | 张三 | 1 | 23 | 1 |
2 | 李四 | 2 | 34 | 2 |
左连接
select a.*,b.* from a left join b on a.id=b.user_id
a表中数据全有,b表中不存在用null补充
结果为:
id(a) | name | id (b) | age | user_id |
---|---|---|---|---|
1 | 张三 | 1 | 23 | 1 |
2 | 李四 | 2 | 34 | 2 |
3 | 王五 | null | null | null |
右连接
select a.*,b.* from a right join b on a.id=b.user_id
b表中数据全有,a表中不存在用null补充
结果为:
id(a) | name | id (b) | age | user_id |
---|---|---|---|---|
1 | 张三 | 1 | 23 | 1 |
2 | 李四 | 2 | 34 | 2 |
null | null | 3 | 34 | 4 |
完全连接
select a.*,b.* from a full join b on a.id=b.user_id
a表和b表中数据全有,两表中不存在的数据用null补充
结果为:
id(a) | name | id (b) | age | user_id |
---|---|---|---|---|
1 | 张三 | 1 | 23 | 1 |
2 | 李四 | 2 | 34 | 2 |
3 | 王五 | null | null | null |
null | null | 3 | 34 | 4 |
多表多库exists查询
select b.字段2 from 数据库1.表1 b where not exists (select a.字段1 from 数据库2.表2 a where a.字段1=b.字段2)