當前位置:編程學習大全網 - 源碼下載 - mysql insert語句需要註意什麽?

mysql insert語句需要註意什麽?

1.基本Insert語句示例

以下語句在employee表中插入壹條新記錄。在本例中,下面的“值”指定了要插入到表中的所有字段的相應值。

插入到雇員值中(100,'托馬斯','銷售',5000);

使用SELECT語句驗證數據是否成功插入。

SELECT * FROM員工;

2.僅為選定的字段插入值。

如果只想在選定的字段中插入壹個值,則需要在INSERT語句中指定要插入的字段的名稱。下面的代碼只插入id和name列中的數據。

插入雇員(id,name)值(200,' Jason ');

在上面的代碼中,我們沒有為dept和salary列指定任何值。因此,當我們使用SELECT語句檢索數據時,上面兩個字段的值為NULL。需要註意的是,NULL並不代表“NULL”字符串,SELECT語句使用“NULL”表示該字段的值為空。

mysql & gtSELECT * FROM員工;+--+-+-+| id | name | dept | salary |+-+-+-+| 100 | Thomas | Sales | 5000 | | 200 | Jason | NULL | NULL |+-+-+-+集合中的2行(0.00秒)

3.插入集合示例

INSERT語句不僅可以使用“VALUE”關鍵字,還可以使用“SET”關鍵字。下面的示例與上面的示例具有相同的結果,但是使用了SET關鍵字。

mysql & gt插入到雇員集id=300,name = ' Maylamysql & gtselect * from員工;+--+-+-+| id | name | dept | salary |+-+-+-+| 100 | Thomas | Sales | 5000 | | 200 | Jason | NULL | NULL | | 300 | Mayla | NULL | NULL |+--+-+

4.從另壹個表中檢索數據插入

在下面的例子中,我們將使用插入...SELECT語句,該語句可以從其他表中檢索數據,並將其插入目標表中。以下代碼從Contractor表中檢索所有數據,並將其插入到Employee表中。

插入到來自承包商的員工選擇中;

根據需要,可以在SELECT語句中使用WHERE子句來檢索從Contractor表插入到Employee表中的所需數據。

插入到員工選擇*從承包商,其中薪金& gt= 7000;

註意:如果您使用oracle數據庫,您的SQL應該寫成“insert into employee as select * from contractor”。需要註意的是,AS關鍵字在MySQL中並不適用。

5.從其他表中選擇壹些字段進行插入。

當然,您也可以從其他表中選擇壹些字段,並將其插入到您的表中。以下示例將從contractor表中選擇的id和name域的所有數據插入到employee表中。

插入員工(id,姓名)選擇承包商的id,姓名;

與前面的示例壹樣,您可以使用WHERE子句來篩選數據。

插入到員工(id,姓名)選擇id,姓名從承包商那裏薪金& gt= 7000;

註意:如果employee表中已經存在具有相同主鍵(這裏的主鍵是id)的記錄,您將得到壹條錯誤消息。下面是壹個錯誤消息示例,它指示employee表中已經存在id為100的記錄。

錯誤1062 (23000):關鍵字“PRIMARY”的重復條目“100”

6.將數據插入指定的分區

如果妳創建了壹個分區表(分區類型是range)並想將輸入插入到指定的分區中,可以參考下面的代碼。將數據插入分區p1中的employee表。

插入到雇員分區(p1)值(100,'托馬斯','銷售',5000);

註意:如果這個分區的employee表已經包含了相應的數據(這裏是id=100的employee數據),那麽就會得到下面的錯誤消息。

錯誤1729 (HY000):找到與給定分區集不匹配的行

註意:分區僅在MySQL5.6及以上版本中可用。

7.將數據插入多個分區

您可以使用壹條SQL語句將數據插入多個分區。以下INSERT語句將id為100的記錄插入到p1分區中,將id為200的記錄插入到p2分區中。

插入到雇員分區(p1,p2)值(100,'托馬斯','銷售',5000),(200,'傑森','技術',5500);

註意:在上面的例子中,如果MySQL無法將數據插入任何分區,整個INSERT語句都將失敗。當然,這只能在MySQL5.6及以上版本中使用。

8.插入時忽略錯誤。

在某些情況下(比如批處理),您可能希望忽略MySQL在插入過程中生成的錯誤消息。您可以使用INSERT IGNORE語句。例如,下面的示例將引發壹條錯誤消息,提示數據已經存在。

mysql & gt插入到雇員值中(100,'托馬斯','銷售',5000);錯誤1062 (23000):關鍵字“PRIMARY”的重復條目“100”

要忽略上面的錯誤消息,可以使用INSERT IGNORE替換INSERT語句(請確保在執行之前已經存在這個對應的主鍵)。

mysql & gt將IGNORE插入雇員值(100,' Thomas ',' Sales ',5000);查詢正常,0行受影響(0.00秒)

INSERT IGNORE只是忽略錯誤消息,不做任何其他事情。

9.insert語句的默認值

如果MySQL在嚴格模式下運行,並且在我們的INSERT語句中沒有指定默認值,MySQL將拋出壹個錯誤消息。但是,如果MySQL沒有啟用嚴格模式(這是默認啟用的),並且INSERT語句沒有為該字段指定值,MySQL將為該字段使用字段類型的默認值。例如,獎金表中的所有字段都不允許為空。

mysql & gtDESC獎金;+--+-+-+-+-+| Field | Type | Null | Key | Default | Extra |+-+-+-+-+| id | int(11)| NO | | Null | | | amount | int(11)| NO | | Null | | |+-+-+-+-+-+

我們先執行下面的語句,插入壹段數據(id=100)。

插入獎金(id)值(100);

查看剛剛插入的數據,您可以看到amount字段被設置為默認值0。

SELECT * FROM bonus+-+-+| id | amount |+-++| 100 | 0 |+-++

如果在SQL語句中沒有指定id和amount字段的值,它們將自動設置為默認值0。參考下面的例子。

插入到獎金值();mysql & gt選擇*

  • 上一篇:嵌入式linux的bootloader的啟動流程是怎樣的?
  • 下一篇:取鼠標坐標的網頁源代碼。
  • copyright 2024編程學習大全網