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

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