萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> 數據庫綜合 >> 使用UPDATE的技巧是什麼

使用UPDATE的技巧是什麼

歡迎大家在這裡學習UPDATE的技巧!下面是我們給大家整理出來的精彩內容。希望大家在這裡學習!

UPDATE的功能是更新表中的數據。這的語法和INSERT的第二種用法相似。必須提供表名以及SET表達式,在後面可以加WHERE以限制更新的記錄范圍。

UPDATE table_anem SET column_name1 = value1, column_name2 = value2, ...

WHERE ... ;

如下面的語句將users表中id等於123的記錄的age改為24

UPDATE users SET age = 24 WHERE id = 123;

同樣,可以使用UPDATE更新多個字段的值 UPDATE users SET age = 24, name = 'Mike' WHERE id = 123;

上面的UPDATE語句通過WHERE指定一個條件,否則,UPDATE將更新表中的所有記錄的值。

在使用UPDATE更新記錄時,如果被更新的字段的類型和所賦的值不匹配時,MySQL將這個值轉換為相應類型的值。如果這個字段是數值類型,而且所賦值超過了這個數據類型的最大范圍,那麼MySQL就將這個值轉換為這個范圍最大或最小值。如果字符串太長,MySQL就將多余的字符串截去。如果設置非空字段為空,那麼將這個字段設置為它們的默認值,數字的默認值是0,字符串的默認值是空串(不是null,是"")。

有兩種情況UPDATE不會對影響表中的數據。

1. 當WHERE中的條件在表中沒有記錄和它匹配時。

2. 當我們將同樣的值賦給某個字段時,如將字段abc賦為'123',而abc的原值就是'123'。

和INSERT、REPLACE一樣,UPDATE也返回所更新的記錄數。但這些記錄數並不包括滿足WHERE條件的,但卻未被更新的記錄。如下同的UPDATE語句就未更新任何記錄。

UPDATE users SET age = 30 WHERE id = 12;

Query OK, 0 rows affected (0.00 sec)

需要注意的時,如果一個字段的類型是TIMESTAMP,那麼這個字段在其它字段更新時自動更新。

在有些時候我們需要得到UPDATE所選擇的行數,而不是被更新的行數。我們可以通過一些API來達到這個目的。如MySQL提供的C API提供了一個選項可以得到你想要的記錄數。而MySQL的JDBC驅動得到的默認記錄數也是匹配的記錄數。

UPDATE和REPLACE基本類似,但是它們之間有兩點不同。

1. UPDATE在沒有匹配記錄時什麼都不做,而REPLACE在有重復記錄時更新,在沒有重復記錄時插入。

2. UPDATE可以選擇性地更新記錄的一部分字段。而REPLACE在發現有重復記錄時就將這條記錄徹底刪除,再插入新的記錄。也就是說,將所有的字段都更新了。

好了,UPDATE的技巧內容就給大家介紹到這裡了。希望大家繼續關注我們的網站!

相關推薦:

什麼是REPLACE語句呢

copyright © 萬盛學電腦網 all rights reserved