最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle中實(shí)現(xiàn)一次插入多條數(shù)據(jù)詳細(xì)代碼舉例

 更新時(shí)間:2024年06月05日 09:12:30   作者:牛奶咖啡13  
公司的項(xiàng)目,有個(gè)功能每次使用需要向數(shù)據(jù)庫(kù)插入很多數(shù)據(jù),這里給大家總結(jié)下,這篇文章主要給大家介紹了Oracle中實(shí)現(xiàn)一次插入多條數(shù)據(jù)的相關(guān)資料,文中通過(guò)圖文及代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、需求描述

在我們實(shí)際的業(yè)務(wù)場(chǎng)景中,由于單條插入的效率很低(每次都需要數(shù)據(jù)庫(kù)資源連接關(guān)閉的開(kāi)銷(xiāo)),故需要實(shí)現(xiàn)一次性插入多條數(shù)據(jù),用以提升數(shù)據(jù)插入的效率;

如下圖是常見(jiàn)的單條插入數(shù)據(jù):

二、Oracle實(shí)現(xiàn)一次插入多條數(shù)據(jù)

我這里以grade2表為例進(jìn)行演示說(shuō)明:

2.1、union all拼接查詢(xún)

采用union all拼接查詢(xún)方式實(shí)現(xiàn)一次向同一個(gè)表中插入多條數(shù)據(jù)語(yǔ)法:

INSERT into 表名(字段名1,字段名2,字段名3,...) 
SELECT 值1,值2,值3,... from dual
union all SELECT 值11,值21,值31,... from dual
union all SELECT 值12,值22,值32,... from dual
...

示例(向同一個(gè)表同時(shí)插入6條不同內(nèi)容的數(shù)據(jù)):

INSERT into "grade2"("name","chinese","math","english") 
SELECT '張10',100,100,100 from dual
union all SELECT '張20',101,101,101 from dual
union all SELECT '張30',102,102,102 from dual
union all SELECT '張40',103,103,103 from dual
union all SELECT '張50',104,104,104 from dual
union all SELECT '張60',105,105,105 from dual

2.2、insert all插入

采用insert all方式實(shí)現(xiàn)一次向同一個(gè)表中插入多條數(shù)據(jù)語(yǔ)法:

insert all 
into 表名(字段名1,字段名2,字段名3,...) VALUES(值1,值2,值3,...)
into 表名(字段名1,字段名2,字段名3,...) VALUES(值11,值21,值31,...)
into 表名(字段名1,字段名2,字段名3,...) VALUES(值12,值22,值32,...)
...
SELECT * from dual;

示例(向同一個(gè)表同時(shí)插入6條不同內(nèi)容的數(shù)據(jù)):

insert all 
into "grade2"("name","chinese","math","english") VALUES('張11',100,100,100)
into "grade2"("name","chinese","math","english") VALUES('張21',101,101,101)
into "grade2"("name","chinese","math","english") VALUES('張31',102,102,102)
into "grade2"("name","chinese","math","english") VALUES('張41',103,103,103)
into "grade2"("name","chinese","math","english") VALUES('張51',104,104,104)
into "grade2"("name","chinese","math","english") VALUES('張61',105,105,105)
SELECT * from dual;

insert all方式實(shí)現(xiàn)一次向多個(gè)表中插入多條數(shù)據(jù)語(yǔ)法:

insert all 
into 表名1(字段名1,字段名2,字段名3,...) VALUES(值1,值2,值3,...)
into 表名1(字段名1,字段名2,字段名3,...) VALUES(值11,值21,值31,...)
into 表名1(字段名1,字段名2,字段名3,...) VALUES(值12,值22,值32,...)
into 表名2(字段名1,字段名2,字段名3,...) VALUES(值1,值2,值3,...)
into 表名2(字段名1,字段名2,字段名3,...) VALUES(值11,值21,值31,...)
into 表名2(字段名1,字段名2,字段名3,...) VALUES(值12,值22,值32,...)
into 表名3(字段名1,字段名2,字段名3,...) VALUES(值1,值2,值3,...)
into 表名3(字段名1,字段名2,字段名3,...) VALUES(值11,值21,值31,...)
into 表名3(字段名1,字段名2,字段名3,...) VALUES(值12,值22,值32,...)
...
SELECT * from dual;

示例(向多個(gè)表同時(shí)插入6條不同內(nèi)容的數(shù)據(jù)):

insert all 
into "grade2"("name","chinese","math","english") VALUES('張11',100,100,100)
into "grade2"("name","chinese","math","english") VALUES('張21',101,101,101)
into "grade2"("name","chinese","math","english") VALUES('張31',102,102,102)
into "grade"("id","name","course","score","sex","age") VALUES(11,'張11','語(yǔ)文',100,'男',26)
into "grade"("id","name","course","score","sex","age") VALUES(12,'張21','數(shù)學(xué)',100,'男',26)
into "grade"("id","name","course","score","sex","age") VALUES(13,'張31','英語(yǔ)',100,'男',26)
SELECT * from dual;

注意:insert all語(yǔ)句里不能直接使用序列生成的值(因?yàn)榧幢忝總€(gè)into語(yǔ)句里都加上seq_test_insert.nextval也不會(huì)獲得多個(gè)值):

-- 創(chuàng)建序列
create sequence seq_test_insert 
minvalue 1
maxvalue 999999999999999999999999
start with 1
increment by 1
cache 20;

-- 獲取下一個(gè)序列值
SELECT seq_test_insert.nextval from dual;

總結(jié) 

到此這篇關(guān)于Oracle中實(shí)現(xiàn)一次插入多條數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Oracle一次插入多條數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

大安市| 镇赉县| 绵竹市| 云浮市| 阳江市| 仪陇县| 麟游县| 惠东县| 绩溪县| 三江| 延庆县| 昭通市| 阳山县| 乌兰浩特市| 桦甸市| 电白县| 静乐县| 宁陵县| 溧水县| 宜宾市| 上饶县| 江达县| 华蓥市| 珠海市| 紫阳县| 肥东县| 瑞昌市| 娄烦县| 牟定县| 揭西县| 卢龙县| 社旗县| 赤峰市| 墨玉县| 汕尾市| 赤城县| 岚皋县| 女性| 河津市| 甘肃省| 西乌珠穆沁旗|