工作中增删改查这四类sql语句里边用的最多的就是查询语句。因为绝大多数的软件系统都是读多写少的,而且查询的条件也是各种各样。本节课程我们来学习下一个DML语句,那就是向数据表里面写入记录的insert语句。Insert语句是可以向数据表里边写入,Mysql的比oracle有一个优势,就是用一条insert语句可以写入一条记录,也可以写入多条记录。但是不管什么数据库,一条sql语句,只能向一张数据表里面写入数据,不能同时向多张数据表里面写入记录。
1. INSERT语句
insert语句可以向数据表写入记录,可以是一条记录,也可以是多条记录
练习1:向部门表中写入1条记录
insert into t_dept(deptno,dname,loc)
value(50,"技术部","北京")
练习2:向部门表中写入多条记录
insert into t_dept(deptno,dname,loc)
value(70,"体验部","北京"),(60,"客服部","北京")
练习3:向技术部添加一条员工记录
因为未知技术部的部门标号,需用到子查询
insert into t_emp(empno,ename,job,mgr,hiredate,sal,comm,deptno)
value(9000,"张飞","SALESMAN",8000,"1988-12-20",2000,NULL,
(select deptno from t_dept where dname="技术部"))
2. INSERT 语言方言
这个方言只适用于mysql数据库,不要拿这种SQL语句的语法到oracle数据库上去执行,那绝对是不支持的
练习4:用insert方言往员工表插入一条信息
insert into t_emp
set empno=8002,ename="JACK",job="SALEMAN",
mgr="8000",hiredate="1988-11-01",sal="2000",comm=NULL,deptno=50
3.IGNORE 关键字
IGNORE 它会让insert语句忽略冲突的记录,只写入那些不冲突的记录。比如说我用insert语句写入多条记录的时候,就因为一条记录与现存的记录产生了逐渐冲突或者唯一值的冲突。这个时候数据库只要一报错,整个insert语句一条记录也写不进去。所以有的时候希望insert语句执行的时候,能忽略那些冲突的记录,把那些不冲突的记录写到数据库里边。这个时候 IGNORE 关键字就派上用场了
70部门由于上面插入过,主键只能是唯一的,所以无法写入,使用IGNORE关键字不会报错,会把80部门的这一条信息写入
insert ignore into t_dept(deptno,dname,loc)
value(70,"体验部","北京"),(80,"人事部","北京")