DML:Mysql数据操作语言,即对表中的数据进行增删改查
一、查询语句:
1、基础查询
(1)查询表中单个字段数据
select 查询字段 from 表名
ex:select name from student
(2)查询表中所有数据
select * from 表名
ex:select * from student
2、条件查询
(1)单条件查询
select * from 表名 where 条件表达式
** 如果查询的内容为字符串类型,必须加引号
ex:select * from student where sname = '张三'
(2)多条件查询
select * from 表名 where 条件表达式 and 条件表达式
ex:select * from student where sname = '张三' and age = 20
3、分组查询
**分组后,查询字段必须是分组字段,可在分组字段后加上聚合函数(sum、count……)
(1)分组查询
select 分组字段 from 表名 group by 分组字段
ex:select age from student group by age
(2)分组查询+聚合函数
select 分组字段,聚合函数 from 表名 group by 分组字段
ex:select sex,avg(age) from student group by sex #按性别分组查询每个性别平均年龄
(3)分组条件查询
**分组后增加条件需要使用having
select 分组字段,聚合函数 from 表名 group by 分组字段 having 条件表达式
ex:select sex,avg(age) from student group by sex having class = '三年二班'
4、查询指定数量
select * from 表名 where 条件表达式 and 条件表达式 limit 从几条查到几条
ex:select * from student where sname = '张三' and age = 20 limit 0,5
5、正则匹配查询
(1)以指定字符头:‘^’
select name,age from emp2 where name regexp '^w'
(2)以指定字符结尾:’$‘
select name,age from emp2 where name regexp '^w' 'i$'
(3)匹配指定字符内容:
select name,age from emp2 where age regexp '^w' '8'
6、查询后排序
select * from 表名 where 条件表达式 order by 排序字段 正序/倒叙(ase/desc)
ex:select * from student where sname = '张三' order by age ase
7、多表联查
多表联查指以多个表中相同字段进行拼接,常用拼接方式有以下三种:
(1)inner join:保留表一与表二交集数据
(2)left join:以左表中的数据为主,右表没有的数据值为空
(3)right join:以右表中的数据为主,左表没有的数据值为空
语法结构如下:
select * from 表名一 拼接方式 表名二 on 表名一 . 字段名 = 表名二 . 字段名
ex:select * from first inner join second on first.second_id = second.id
二、删除语句:
(1)删除表中指定数据
delete from 表名 where 条件表达式
ex:delete from first where id = 2
(2)删除表中全部数据
delete from 表名
ex:delete from first
三、修改语句:
(1)修改单个字段
update 表名 set 字段名 = 字段值 where 条件表达式
ex update first set name = "lisi" where name = "zhangsan"
(2)修改多个字段
update 表名 set 字段名 = 字段值, 字段名 = 字段值 where 条件表达式
ex update first set name = "lisi",age = 30 where name = "zhangsan"
四、插入语句:
**同时插入多条数据每一条数据尾部需要用 ‘,’ 隔开
insert into 表名 (字段名一,字段名二……字段名N) value
(数据一,数据二……数据N),
(数据一,数据二……数据N),
(数据一,数据二……数据N),
(数据一,数据二……数据N)