mysql 數據插入和更新及刪除詳情

1、插入

INSERT INTO customers(
customers.cust_address,
customers.cust_city,
customers.cust_state,
customers.cust_zip,
customers.cust_country,
customers.cust_contact,
customers.cust_email
)
VALUES('zhangsan','good','111','ca','dasdsa','usa',NULL)

這樣就插入成功瞭。

在插入的時候為瞭安全起見,那麼每次插入的時候應該寫好列名。不管使用哪種INSERT語法,都必須給出VALUES的正確數目。如果不提供列名,則必須給每個表列提供一個值。如果提供列名,則必須對每個列出的列給出一個值。如果不這樣,將產生一條錯誤消息,相應的行插入不成功。

省略列 如果表的定義允許,則可以在INSERT操作中省略某些列。

省略的列必須滿足以下某個條件

  • 該列定義為允許NULL值(無值或空值)。
  • 在表定義中給出默認值。這表示如果不給出值,將使用默認值

提高整體性能 數據庫經常被多個客戶訪問,對處理什麼請求以及用什麼次序處理進行管理是MySQL的任務。

INSERT操作可能很耗時(特別是有很多索引需要更新時),而且它可能降低等待處理的SELECT語句的性能。

如果數據檢索是最重要的(通常是這樣),則你可以通過在INSERT和INTO之間添加關鍵字LOW_PRIORITY,指示MySQL降低INSERT語句的優先級。

INSERT INTO customers(
customers.cust_address,
customers.cust_city,
customers.cust_state,
customers.cust_zip,
customers.cust_country,
customers.cust_contact,
customers.cust_email
)
VALUES('zhangsan','good','111','ca','dasdsa','usa',NULL)
,('zhangsan','good','111','ca','dasdsa','usa',NULL)
,('zhangsan','good','111','ca','dasdsa','usa',NULL)
,('zhangsan','good','111','ca','dasdsa','usa',NULL)

如果想插入多行,隻需要加入多個values即可。

INSERT一般用來給表插入一個指定列值的行。但是,INSERT還存在另一種形式,可以利用它將一條SELECT語句的結果插入表中。

這就是所謂的INSERT SELECT,顧名思義,它是由一條INSERT語句和一條SELECT語句組成的。

假如你想從另一表中合並客戶列表到你的customers表。不需要每次讀取一行,然後再將它用INSERT插入,可以如下進行:

insert into customers(xx,xx,xx)
select xx,xx,xx
from newcustomers

差不多就是這樣的瞭。

INSERT SELECT中的列名 為簡單起見,這個例子在INSERTSELECT語句中使用瞭相同的列名。

但是,不一定要求列名匹配。事實上,MySQL甚至不關心SELECT返回的列名。

它使用的是列的位置,因此SELECT中的第一列(不管其列名)將用來填充

表列中指定的第一個列,第二列將用來填充表列中指定的第二個列,如此等等。

這對於從使用不同列名的表中導入數據是非常有用的。

2、更新

為瞭更新(修改)表中的數據,可使用UPDATE語句。

可采用兩種方式使用UPDATE

  • 更新表中特定行;
  • 更新表中所有行。
UPDATE customers
SET cust_email = '[email protected]'
where cust_id = 10005;


上面這就是更新語句瞭。

如果更新多個列的話:

UPDATE customers
SET cust_email = '[email protected]',
cust_name = 'game'
where cust_id = 10005;

IGNORE關鍵字 如果用UPDATE語句更新多行,並且在更新這些行中的一行或多行時出一個現錯誤,則整個UPDATE操作被取消(錯誤發生前更新的所有行被恢復到它們原來的值)。

為即使是發生錯誤,也繼續進行更新,可使用IGNORE關鍵字,如下所示: UPDATE IGNORE customers…

這麼說明一下,如果確定隻更新一行的話,那麼建議是更新是用update 1這種模式,指明隻更新一行。

為瞭從一個表中刪除(去掉)數據,使用DELETE語句。可以兩種方式使用DELETE

3、刪除

  • 從表中刪除特定的行;
  • 從表中刪除所有行。

刪除表的內容而不是表 DELETE語句從表中刪除行,甚至是
刪除表中所有行。但是,DELETE不刪除表本身。

更快的刪除 如果想從表中刪除所有行,不要使用DELETE

可使用TRUNCATE TABLE語句,它完成相同的工作,但速度更快(TRUNCATE實際是刪除原來的表並重新創建一個表,而不是逐行刪除表中的數據)

到此這篇關於mysql 數據插入和更新及刪除詳情的文章就介紹到這瞭,更多相關mysql 數據插入和更新及刪除內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: