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

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