SQL系列 插入資料(insert)

2021-10-08 20:41:49 字數 2288 閱讀 4118

總述:insert 是用來插入行到資料庫表的。插入資料庫表可以分為幾種:

a. 插入完整的行(資料庫表有多少個字段就插入多少欄位的值);

b. 插入行的一部分;

c. 插入多行;

d. 插入某些查詢的結果。

a. 插入完整的行

insert into customers value(null, 『pep e.』,  '100 main street',  'ca',  '90046',  'usa', null, null)

如上,如果對應的列沒有值就使用null,或者資料庫知道怎麼處理的(主鍵自動遞增)的列也為 null。上面的語句雖然很簡單,但是不安全,這種語句高度依賴於表中列的定義次序,並且還依賴於其次序容易獲得的資訊。即使獲得這種次序資訊,也不能保證下一次表結構變動後各個列保持完全相同的次序。因此,使用下面語句會更加安全:

insert into customers(cust_name,cust_city, cust_state, cust_zip, cost_country, cust_contact, cust_email)

value('pep e.', '100 main stree', 'los angeles', 'ca', '90046', 'usa', null, null)

注意:資料庫是經常被多個使用者訪問的,insert 語句可能耗時(特別是有很多索引需要更新時),可以通過新增關鍵字減低優先順序

insertlow_priorityinto customers(cust_name,cust_city, cust_state, cust_zip, cost_country, cust_contact, cust_email)

value('pep e.', '100 main stree', 'los angeles', 'ca', '90046', 'usa', null, null)

b. 插入行的一部分

在插入時不把所用的列的值都插進入, 如:

insert into customers(cust_name,cust_city, cust_state, cust_zip)

value('pep e.', '100 main stree', 'los angeles', 'ca', '90046')

這裡 cost_country, cust_contact, cust_email 三個欄位都沒有指明,需要注意的是這些欄位的約束(可以為空)。

c. 插入多行

insert 語句有多組值,每組使用一對圓括號括起來,用逗號分隔, 如下:

insert into customers(cust_name,cust_city, cust_state, cust_zip, cost_country, cust_contact, cust_email)

value('pep e.', '100 main stree', 'los angeles', 'ca', '90046', 'usa', null, null),

('john a.', 'hanshan', 'beijing', 'ca', '80046', 'china', null, null)

d. 插入查詢的資料

insert 一般用來給表插入乙個指定列值的行。但是, insert 還存在另外一種形式,可以利用它將一條select 語句結果插入表中。這個就是所謂的 insert select,顧名思義,它是由一條 insert 語句和一條 select 語句組成。

insert intocustomers(cust_id, cust_contact, cust_email, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_coutry)

selectcust_id, cust_contact, cust_email, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_coutry

from custnew

該語句將 custnew 資料匯入到 customers。select  中列出每個列對應於 customers 表後所跟的列表中的每個列。這條語句插入多少行依賴於 custnew 表中有多少行。

注意: customers 列名不一定要跟 custnew 的列名一樣。select 中也可以使用 where 來過濾。

insert 插入資料

語法格式 insert into 表名稱 欄位名稱1,欄位名稱2 values 值1,值2,建立備份表myemp create table myemp as select from emp 標準語法 對於沒有資料的列就不寫進欄位列表 insert into myemp empno,ename,job...

插入資料 INSERT

顧名思義,insert是用來插入行到資料庫表的 插入可以用幾種方式使用 插入完整的行 插入行的一部分 插入多行 插入某些查詢結果 分析 此例子為插入乙個新客戶到customers表,如果某個列沒有值,應該使用null 表允許該值為空 第一列cust id也為null,因為這是自動增量 上面的語法很簡...

MyBatis批量插入 insert 資料操作

在程式中封裝了乙個list集合物件,然後需要把該集合中的實體插入到資料庫中,由於專案使用了spring mybatis的配置,所以打算使用mybatis批量插入,由於之前沒用過批量插入,在網上找了一些資料後最終實現了,把詳細過程貼出來。實體類trainrecord結構如下 1 2 3 4 5 6 7...