DML 语句(insert,update,delete)
Data Manipulation Language
1. insert语句
- 插入数据
insert into 表名 (列,列,列...) values(值,值,值...); --当插入的数据时与表格列一一对应的话,则列可以省略 insert into 表名 values(值,值,值...);
- 操作
先创建一张表 createtable tbl_student( id int(7), name varchar(20)notnull, birthday timestamp default now(), constraint tbl_student_id_pk primary key(id));--插入所有列数据insertinto tbl_student values(1,'tom','2012-09-08 14:55:58');--插入部分数据insertinto tbl_student(id,name)values(2,'success');
创建自增字段auto_increment
createtable tbl_student( id int(7) auto_increment, name varchar(20)notnull, birthday timestamp default now(), constraint tbl_student_id_pk primary key(id));--也是可以设置自增字段的最小值altertable table_student auto_increment=4
获取auto_increment值
可以通过mysql中的last_insert_id()函数来实现
2. update语句
主要是用来更新表中的数据
update 表名 set 列名=新值,列名=新值 where 条件;
例如:
--提高指定员工的工资10%
update tbl_emp set salary=salary*1.1 where manager_id=1;
注意:更新操作where条件如果不写,则更新整张表格的数据!!!
3. delete语句
delete from 表名 where 条件;
例如:
--删除工资低于1200的员工信息
delete from s_emp where salary<1200;
注意:
DML操作都需要注意约束控制.
课堂练习
-- ==========================DML(数据操作语言Data Manipulation Language)-- 对表中记录的操作:insert,update,deleteinsertinto表名(列名1,列名2,列名3,.)values(值1,值2,值3..)insertinto表名 vaLues(值1,值2,值3.·)--添加所有列insertinto表名 values(值1,值2,值3.·.),(值1,值2,值3..),(值1,值2,值3...)-批量添加 deletefrom表名 deletefrom表名 where... update表名set列名1=新值1,列名2=新值2.. update表名set列名l=新值1,列名2=新值2.. where... -- 添加一条记录到deptinsertinto dept (deptno,dname,loc)values(60,'销售部','无锡')insertinto dept (deptno,dname)values(60,'销售部')添加所有东西可省略 insertinto dept values(60,'销售部','常州')-- 添加一条记录到empinsertinto emp values(6369,'吕俊龙','CLERK','7369','2022-08-26',6000,1890,50)insertinto emp values(6379,'宋洋','CLERK','7369','2022-08-26',20,10,50)-- 批量添加insertinto emp values(6379,'宋洋','CLERK','7369','2022-08-26',20,10,50),(6379,'宋洋','CLERK','7369','2022-08-26',20,10,50),(6379,'宋洋','CLERK','7369','2022-08-26',20,10,50),(6379,'宋洋','CLERK','7369','2022-08-26',20,10,50)-- 修改10部门的城市为'天津'update dept set loc ='天津'where deptno =10-- 修改10部门的员工薪资+ 100元update emp set salary = salary+100where deptno =10-- 修改smith员工job为manager,绩效改为800update emp set job ='MANAGER',comm =800where ename ='SMITH'-- 删除表中所有的数据deletefrom dept2 -- 删除50部门deletefrom dept where deptno =50-- 删除smith员工deletefrom emp where ename ='宋洋'deletefrom emp where salary <(salary avg(salary)from emp)