1、标注insert
语法:
INSERT INTO tableName [(column1,column2,...)] VALUES (value1,value2,...)
2、insert all多表多行插入
2.1单表多条插入:
语法:
INSERT ALL
INTO tableName [(column1,column2,...)] VALUES(value1,value2,...)
INTO tableName [(column1,column2,...)] VALUES(value3,value4,...)
INTO tableName [(column1,column2,...)] VALUES(value5,value6,...) .... SELECT 1 FROM DUAL
后面跟的SELECT代表前面每个INTO到表里的记录数,比如SELECT返回的行数为2,值为(value3,value4,...)的记录会被插入到表里两条一样的数据
2.2多表多行插入
INSERT ALL
INTO tableName1 [(column1,column2,...)] VALUES(column1,column2,...)
INTO tableName2 [(column3,column4,...)] VALUES(column3,column4,...)
INTO tableName3 [(column5,column6,...)] VALUES(column5,column6,...)
SELECT column7 column1,column8 column2,column9 column3,column10 column4,column11 column5,column12 column6,... FROM tableNameN WHERE condition_clause
将SELECT查询出来的结果按照需求插入到N张表中
2.3将一张表的数据分拆到另外一张表中
INSERT ALL
INTO tableName VALUES(column1,column2,column3)
INTO tableName VALUES(column1,column2,column4)
INTO tableName VALUES(column1,column2,column5)
INTO tableName VALUES(column1,column2,column6)
SELECT column1, column2, column3, column4, column5, column6 FROM tableNameN
将tableNameN中的3、4、5、6列拆分到tableName表中
3、条件插入
INSERT [ALL | FIRST]
WHEN condition THEN INTO tableName1 [(column1,column2,...)] VALUES(column1,column2,...)
[WHEN condition THEN] [INTO tableName2 [(column3,column4,...)] VALUES(column3,column4,...)]
......
[ELSE] [INTO tableName3 [(column5,column6,...)] VALUES(column5,column6,...) ]
SELECT column7 column1,column8 column2,column9 column3,column10 column4,column11 column5,column12 column6,... FROM tableNameN WHERE condition_clause;
当使用ALL关键字时,oracle会从上至下判断每一个条件,当条件满足时就执行后面的into语句,满足多个条件会执行相应条件后面的
当使用FIRST关键字时,oracle会从上至下判断每一个条件,当满足第一个条件时就执行后面的into语句,同时中断后续的条件判断
4、将查询结果插入到一张表中
INSERT INTO tableName [(column1,column2,...)] SELECT (column1,column2,...) FROM tableNameN WHERE condition
oracle学习笔记-insert
最新推荐文章于 2024-01-23 09:28:55 发布