MySQL数据库的DML语言 增删改查数据
- 插入数据
insert into 表名 (列名1,列名2.....) values(值1,值2......)
当插入所有列时,表明后的列名可以省略,但传入的value值需要对应创建好的表的列名依次传入
eg:insert into emp (empno,ename,job,mgr,salary,reward,dept_name,dept_loc) values(2101,'强某','保洁',NULL,1500,0,'行政','纽约')
- 修改数据
update 表名 set 列1=新值1,列2=新值2,.....where 条件
eg: update emp set job='厨师',salary=8000 where empno=2102
- 删除数据
delete from 表名 where 条件
eg: delete from emp where empno=2103
- 查询
select 列名1,列名2,... from 表名 [where 条件 group by 分组列 having 分组后条件 order by 排序列 limit 起始,长度]
先是where定位,然后是分组group by having order by limit等操作是针对用于分组后数据
group by 通过xx分组
having xx 把有xx属性的数据提取出来
order by asc(升序)|desc(降序) 把提取的数据进行排列,默认升序排列
limit x(起始位置),y(取几个数据) 把排序完的数据限制取出
- 运算符
算数运算符:+ - * / %
比较运算符: = != <> > >= < <= in(‘列名1’,‘列名2’) between...and...(s>500 and s<1000) like not like %(占多位字符) ——(占一位字符) is null(用于判断数据值是否为空) is not null
逻辑运算符: and or not
位运算符:~ ^
- 分组
select 分组列,分组函数... from 表名 group by 分组列 having 分组后条件
分组函数: count sum avg max min
select dept_name,count(1) as 总数,sum(salary) 总工资,avg(salary) 平均工资,max(salary) 最高工资,min(salary) 正常是分组函数空格加汉字就是描述分组后的名字 也可用as隔开
from emp
where reward!=0
GROUP BY dept_name having avg(salary)<5000
- 排序 top_N
select * from emp order by salary ASC|DESC
默认时升序
- limit限制
select * from emp order by salary DESC(降序) LIMIT 2,2 从分组后的第二位开始取,取两个,数据库的下标也是从零开始