MySQL对数据的基本操作二:INSERT语句(INSERT语句方言,IGNORE关键字,子查询查询整条记录后插入)

本文详细介绍了SQL中的INSERT语句,包括如何一次性插入单条或多条数据,以及使用子查询进行数据插入。还讨论了数据库方言,如MySQL中的INSERT SET语法,并提到了IGNORE关键字在处理冲突时的作用。此外,通过实例展示了如何使用子查询将查询结果批量插入新表。最后,简要提及了REPLACE INTO语句与INSERT的区别。
摘要由CSDN通过智能技术生成

前面着重介绍了查询语句,因为在实际工作中,增、删、改、查,使用的最多的就是查询语句。同时,绝大多数软件系统,都是读多写少的,查询的条件也是各种各样,所以前面着重介绍了查询语句。

目录

一:INSERT语句简介

二:INSERT语句方言

三:IGNORE关键字

四:INSERT子查询:将子查询的结果集全部插入


一:INSERT语句简介

案例1:一次插入一条数据:向t_dept表中增加一条记录;

INSERT INTO t_dept(deptno,dname,loc)
VALUES(50,"技术部","北京");

案例2:一次插入多条数据:向t_dept表中增加多条记录;

INSERT INTO t_dept(deptno,dname,loc)
VALUES(60,"后勤部","北京"),(70,"保安部","北京");

案例3:INSERT中附带子查询:向t_emp表中,插入一条部门为技术部的员工信息;

这种子查询,是将子查询放在了VALUES中了;这种情况下,子查询的结果需要是单行子查询,即子查询的结果必须是单行单列的;

INSERT INTO t_emp(empno,ename,job,mgr,hiredate,sal,comm,deptno)
VALUES(8001,"李四","SALESMAN",8000,"1988-12-20",2000,NULL,(SELECT deptno FROM t_dept WHERE dname="技术部"));


二:INSERT语句方言

SQL的方言:只能在某一个数据库上执行的方言语法,不具备如通用型。MySQL的方言只能在MySQL上执行,Oracle的方言只能在Oracle上执行。

如:

INSERT INTO t_emp SET empno=8002,ename="李明",job="CLEARK",mgr=7782,hiredate="1985-5-18",sal=2500,comm=NULL,deptno=50;

INTO关键字可以不写

INSERT t_emp SET empno=8003,ename="刘三",job="CLEARK",mgr=7782,hiredate="1985-5-18",sal=2500,comm=NULL,deptno=50;


三:IGNORE关键字

IGNORE关键字:可以让INSERT语句忽略冲突的记录,只写入那些不冲突的记录。比如用INSERT写入多条记录的时候,某一条记录数据没写对,产生了注入主键冲突或唯一值的冲突等,此时,数据库会报错然后整个INSERT语句连一条语句都写不进去。。。但是如果使用了IGNORE关键字,就可以忽略冲突的记录,不冲突的记录还是能写到数据库里的;


四:INSERT子查询:将子查询的结果集全部插入

INSERT语句中可以包含子查询语句,代表把子查询的内容写入到数据表

如:把人数超过5人的部门记录拷贝到新的部门表:

先创建t_dept_new表:

CREATE TABLE t_dept_new LIKE t_dept;

然后,查询数据,将查询的数据插入到t_dept_new表中:下面省略了VALUES哎。

INSERT INTO t_dept_new(deptno,dname,loc)
(SELECT d.deptno,d.dname,d.loc FROM t_dept d JOIN(SELECT deptno FROM t_emp GROUP BY deptno  HAVING COUNT(*)>=5) temp ON d.deptno=temp.deptno);


注:

REPLACE INTO语句:

          (1)和INSERT INTO语句类似,都可以写入数据;

          (2)在使用IGNORE的情况下,INSERT INTO 会忽略产生冲突的记录,REPLACE INTO语句会将产生冲突的记录进行替换;

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值