DML (data manipulation language)
增删改 insert delete update
添加数据
给指定字段添加数据
insert into 表名(字段1,字段2,字段3) values(值1,值2,值3);
给全部字段添加数据
insert into 表名 values(值1,值2,值3);
批量添加数据
insert into 表名(字段1,字段2,字段3) values(值1,值2,值3),(值1,值2,值3),(值1,值2,值3);
insert into 表名 values(值1,值2,值3),(值1,值2,值3),(值1,值2,值3),(值1,值2,值3);
例子
insert into human(id,name,age) values (1,'李四',12); insert into human(id,name,age) values (2,'zy',22); insert into human(id,name,age) values (3,'hh,',23),(4,'ls',88);
查询表的所有数据
select * from 表名;
修改数据
update 表名 set 字段名1 = 值1,字段名2 = 值2,[where 条件]
删除数据
delete from 表名 [where 条件]
DQL(data query language)
基础查询
查询语法
select 字段列表 from 表名列表 where 条件列表 group by 分组字段列表 having 分组后的字段列表 order by 排序字段列表 limit 分页参数
查询多个字段
select 字段1,字段2 from 表名
查询所有字段
select * from 表名
设置别名
select 字段1 as 别名1, 字段2 as 别名2 from 表名
去除重复记录
select distinct 字段列表 from 表名
例子
select name,workno,age from employee //查询name,workno,age select * from employee //查询所有字段 select workaddress as '工作地址' from employee; //查询工作地址,起别名 select distinct workaddress from employee; //查询工作地址,去重
条件查询
逻辑运算符
与(and 或者 &&) 或 (or 或者 ||)非(not 或者 !)
select * from employee where id = 1; select * from employee where age < 20; select * from employee where idcard is not null; select * from employee where age != 88; select * from employee where age <> 88; select * from employee where age between 15 and 20; select * from employee where age > 20 and gender = '男'; select * from employee where age = 20 or age = 23; select * from employee where age in (23,20); select * from employee where name like '__'; select * from employee where idcard like '%x';
聚合函数
null值不参与聚合运算
select count(*) from employee; //统计employee数量 select count(id) from employee; //统计employeeid非空数量 select avg(age) from employee; //统计employee表年龄的平均值 select max(age) from employee; //查询employee年龄的最大值 select min(age) from employee; //查询employee年龄的最小值 select sum(age) from employee where workaddress = '北京'; //查询北京地区员工年龄之和
分组查询
where 是分组之前过滤
having是分组之后过滤
select gender,count(*) from employee group by gender; //将员工按照性别进行分组 select gender,avg(age) from employee group by gender ; //根据性别分组,统计男性和女性的平均年龄 select workaddress,count(*) from employee where age < 45 group by workaddress having count(*) >= 3 ; //统计年龄小于45,并且对工作地址进行分类,统计数量大于等于3的地址
分组之后一般展示的就是分组后的字段和聚合函数
排序
select * from 表名 ordey by 字段名1,排序规则, order by 字段2, 排序规则
asc 升序,默认值
desc 降序
select * from employee order by id; //按照id升序 select * from employee order by age desc; //按照age降序 select * from employee order by age asc ,id desc; //age升序,id降序
分页查询
select * from 表名 limit 起始索引,记录数;
select * from employee limit 0,3; //第一页查询3条数据 select * from employee limit 3; //第一页可以省略
order by应该在limit之前