DML 语句(insert,update,delete)

Data Manipulation Language

1. insert语句

  1. 插入数据
  1. insert into 表名 (列,列,列...) values(值,值,值...);
  2. --当插入的数据时与表格列一一对应的话,则列可以省略
  3. insert into 表名 values(值,值,值...);
  1. 操作
先创建一张表
create table tbl_student(
    id int(7),
    name varchar(20) not null,
    birthday timestamp default now(),
    constraint tbl_student_id_pk primary key(id)
);
--插入所有列数据
insert into tbl_student values(1,'tom','2012-09-08 14:55:58');
--插入部分数据
insert into tbl_student(id,name) values(2,'success');

创建自增字段auto_increment

create table tbl_student(
    id int(7) auto_increment,
    name varchar(20) not null,
    birthday timestamp default now(),
    constraint tbl_student_id_pk primary key(id)
);
--也是可以设置自增字段的最小值
alter table 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 条件;

九、SQL-DML - 图1

例如:
—删除工资低于1200的员工信息
delete from s_emp where salary<1200;

注意:
DML操作都需要注意约束控制.

课堂练习

-- ==========================DML(数据操作语言Data Manipulation Language)
--  对表中记录的操作:insert,update,delete

insert into表名(列名1,列名2,列名3,.)values(值1,值2,值3..)
insert into表名 vaLues(值1,值2,值3.·)  --添加所有列
insert into表名 values(值1,值2,值3.·.),(值1,值2,值3..),(值1,值2,值3...)-批量添加

delete from表名
delete from表名 where...

update表名set列名1=新值1,列名2=新值2..
update表名set列名l=新值1,列名2=新值2.. where...

-- 添加一条记录到dept
insert into dept (deptno,dname,loc)
values(60,'销售部','无锡')
insert into dept (deptno,dname)
values(60,'销售部')
添加所有东西可省略
insert into dept values(60,'销售部','常州')
-- 添加一条记录到emp
insert into emp values(6369,'吕俊龙','CLERK','7369','2022-08-26',6000,1890,50)
insert into emp values(6379,'宋洋','CLERK','7369','2022-08-26',20,10,50)
-- 批量添加
insert into 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+100 where deptno = 10
-- 修改smith员工job为manager,绩效改为800
update emp set job = 'MANAGER',comm = 800 where ename = 'SMITH'
-- 删除表中所有的数据
delete from dept2 
-- 删除50部门
delete from dept where deptno = 50
-- 删除smith员工
delete from emp where ename = '宋洋'

delete from emp where salary <(salary avg(salary)from emp)