在oracle中使用DML語(yǔ)言的insert語(yǔ)句來(lái)向表格中插入數(shù)據(jù),先介紹每次只能插入一條數(shù)據(jù)的語(yǔ)法
INSERT??INTO???表名(列名列表)???VALUES(值列表);
注意:
當(dāng)對(duì)表中所有的列進(jìn)行賦值,那么列名列表可以省略,小括號(hào)也隨之省略
必須對(duì)表中的非空字段進(jìn)行賦值
具有默認(rèn)值的字段可以不提供值,此時(shí)列名列表中的相應(yīng)的列名也要省略
舉例:有如下表格定義?
create?table?book(bookid?
char
(
10
)?not?
null
?,?name?varchar2(
60
),price?number(
5
,
3
))
使用下面的語(yǔ)句來(lái)插入數(shù)據(jù)
INSERT?INTO?BOOK(bookid,name,price)???VALUES(
'
100123
'
,
'
oracle?sql
'
,
54.70
);
INSERT?INTO?BOOK?????????????????????????VALUES(
'
100123
'
,
'
oracle?sql
'
,
54.70
);
INSERT?INTO?BOOK(bookid)???????????VALUES(
'
100123
'
);
由于bookid是非空,所以,對(duì)于book來(lái)說(shuō),至少要對(duì)bookid進(jìn)行賦值,雖然這樣的數(shù)據(jù)不完整
如果想往一個(gè)表格中插入多條數(shù)據(jù),那么帶有values子句的insert就不行了,這時(shí)候必須使用insert語(yǔ)句和select語(yǔ)句進(jìn)行配合來(lái)實(shí)現(xiàn)同時(shí)插入多條數(shù)據(jù):
例如:現(xiàn)在有一個(gè)空表a和一個(gè)有數(shù)據(jù)的表格b,他們的結(jié)構(gòu)是一樣,?把b表中的所有數(shù)據(jù)插入到a表中的語(yǔ)句是:
INSERT?INTO?A?(列1,列2,列3
)??
????????????SELECT?列1,列2,列3
????????????FROM?B?;?
--
查詢語(yǔ)句中可以使用任意復(fù)雜的條件或者子查詢
如果數(shù)據(jù)的來(lái)源不是現(xiàn)存表的數(shù)據(jù),也想多條插入那么使用如下的方法:
INSERT?INTO??tablename(列1,列2,列3,
)
SELECT??值1,值2,值3
???FROM??DUAL
UNION
SELECT??值1,值2,值3
???FROM??DUAL
UNION
SELECT??值1,值2,值3
???FROM??DUAL
?
?
如果上面的值有字符和日期型數(shù)據(jù),那么使用單引號(hào)即可,每一個(gè)select語(yǔ)句得到一條數(shù)據(jù),然后使用集合操作符union把多條數(shù)據(jù)合并到一個(gè)結(jié)果集中,來(lái)實(shí)現(xiàn)一次插入多條數(shù)據(jù)的功能
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
