MySQL插入資料與更新和刪除資料 md

2021-08-02 16:21:17 字數 3771 閱讀 6698

20章 更新和刪除資料

利用mysql中insert語句插入資料

此前章節一直使用select語句,但還有三個經常使用的sql語句需要掌握(insertupdatedelete)。

插入的幾種形式,

1. 插入完整行;

2. 插入行的部分資料;

3. 插入多行;

4.插入某些查詢的結果

- 注意,由於mysql的安全機制,需要注意許可權。

需要指定插入的表名行值。一般插入操作沒有返回值,舉例,

mysql> insert into customers values(null, 'pep e. lapew', '100 main street', 'los angeles', 'ca', '90046', 'usa', null, null);

query ok, 1 row affected (0.00 sec)

分析:第一列cust_id為null。這是因為在customers表中,該列由mysql自動增量,所以指定乙個null值。

- 注意,雖然此語法簡單,但並非安全。上面語句高度依賴表中列的次序。即使可以得到這些資訊,但不能保證下次使用時,表的次序因為種種原因經過調整,引起輸入錯誤。更保險的輸入方式應該為,

mysql> insert into customers (cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country,cust_contact, cust_email) values('pep e. lapew', '100 main street', 'los angeles', 'ca', '90046', 'usa', null, null);

query ok, 1 row affected (0.00 sec)

同時,此方式下,自動增量的cust_idnull非必須。所以,縱使與表中列的次序不同,也可以完成插入操作。因此當比給出列名的時候,必須正確的給出每列《所有列》的值。

如果表的定義允許,可以選擇在insert操作時忽略某些列。忽略的列必須滿足如下條件,

1. 該列定義為允許null;

2. 表中給出預設值;

插入多行,只需要在每組值用圓括號並且逗號隔開即可。

mysql> insert into customers (cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country,cust_contact, cust_email) values('pep e. lapew', '100 main street', 'los angeles', 'ca', '90046', 'usa', null, null), ('pep e. lapew', '200 main street', 'los angeles', 'ca', '90046', 'usa', null, null);

query ok, 1 row affected (0.00 sec)

insert一般用來插入單行,但是與select結合後,可以使用所謂的insert select,舉例說明

mysql> insert into customers(cust_id, cust_contact, cust_email, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country) select cust_id, cust_contact, cust_email, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country from custnew;
分析:使用insert select從custnew中將所有資料匯入customers。select語句將檢索資訊傳入insert

- 注意,此例子中,將cust_id一併匯入(cust_id被定義為非空、自增),因此必須確保匯入的cust_id不重複。否則,需要省略此列,有sql自增。同時檢索列與插入列的名字不需要相同,mysql只關心對應列順序。

updatedelete使用

updare語句由三部分組成,

例子,更新單列,

mysql> update customers set cust_email = '[email protected]'

where cust_id = 10005;

分析:updare總是以要更新的表的名字開始,set為賦值命令

例子,使用多列更新時,只需要一次set命令即可

mysql> update customers set cust_name = 'the fudds', cust_email = '[email protected]'

where cust_id = 10005;

分析:

1. 如果多列更新,並且在一行或多行賦值時出現錯誤,則整個update操作都會被取消(更新不會進行)。可以使用ignore關鍵字。

2. 為了刪除每列的值,可以賦值為null

mysql> update customers set cust_email =

null

where cust_id =

10005;

使用delete語句,進行刪除操作,形式如下

- 從表中刪除特定行;

- 從表中刪除所有的行。

- 注意,在使用delete語句時,同樣必須嚴格小心,不要省略where語句,否則會更新表中所有行。

-delete不需要列名或萬用字元。delete語句刪除整行而不是整列,若刪除整列需要使用update操作(在不使用where語句前提下,更新資料)。

- 若需要刪除所有資料,不需要使用delete語句,使用速度更快的truncate table。操作原理為,刪除原**,並建立新錶。

除非更新和刪除每一行,使用updatedelete操作都需要使用where

保證每個表,都有主鍵,以便與使用where語句進行唯一性檢索;

在使用updatedelete前,需要進行select測試,保證過濾條件的正確性;

使用強制實施引用完整的資料庫,保證不會刪除與其他表有關聯的資料的行。

MySQL(九)插入 更新和刪除

常用的sql語句,除了select用於查詢,還有insert update delete等。一 insert insert 用來插入 或新增 行到資料庫中,常見方式有以下幾種 插入完整的行 插入行的一部分 插入多行 插入某些查詢的結果 1 插入完整的行 例如 insert into usertabl...

MySQL基礎(6) 插入資料 更新和刪除資料

本篇主要整理除select之外的3個經常使用的sql語句。1 插入完整的行 例項1 insert語句需要指定表名和被插入到新行中的值 values insert語句一般不會產生輸出 第一列cust id也為null,是因為每次插入乙個新行時,該列由mysql自動增量。你不想給出乙個值 這是mysql...

MySQL更新和刪除

更新和刪除的操作sql語句比較簡單,不過要注意使用update的時候,要注意weher條件的限制,下面的語句是只更新id為10005的email位址,如果不加where語句限制,那麼將表中所有的email更新為 elmer fudd.com 刪除某個列的值,設定為null即可。刪除行的sql語句,使...