本篇爲SQL完整筆記下半部分,上半部分見 這個鏈接 。
3、增刪改數據
關係數據庫的基本操作就是增刪改查,其中SELECT語句就是在查詢。
而對於增、刪、改,對應的SQL語句分別是:
- INSERT:插入新記錄;
- UPDATE:更新已有記錄;
- DELETE:刪除已有記錄。
3.1 增INSERT
INSERT語句用於向數據庫中插入一條或多條新的記錄。其基本語法:
INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...);
#### 例如:
INSERT INTO students (class_id, name, gender, score) VALUES (2, '大牛', 'M', 80);
#### 例子解釋:
先列舉出需要插入的字段名稱,然後在VALUES子句中依次寫出對應字段的值!
注:如果一個字段有默認值,那麼在INSERT語句中也可以不出現。
要注意,字段順序不必和數據庫表的字段順序一致,但值的順序必須和字段順序一致。也就是說,可以寫INSERT INTO students (score, gender, name, class_id) …,但是對應的VALUES就得變成(80, ‘M’, ‘大牛’, 2)。
★ 可以一次性添加多條記錄,只需要在VALUES子句中指定多個記錄值,每個記錄是由(…)包含的一組值:
INSERT INTO students (class_id, name, gender, score) VALUES
(1, '大寶', 'M', 87),
(2, '二寶', 'M', 81);
3.2 改UPDATE
UPDATE語句用於更新數據庫表中的記錄,其基本語法是:
UPDATE <表名> SET 字段1=值1, 字段2=值2, ... WHERE ...;
#### 例子
UPDATE students SET name='大牛', score=66 WHERE id=1;
#### 例子解釋
更新students表id=1的記錄的name和score這兩個字段。
可以一次更新多條記錄:
UPDATE students SET name='小牛', score=77 WHERE id>=5 AND id<=7;
★ 在UPDATE語句中,更新字段時可以使用表達式。例如,把所有80分以下的同學的成績加10分:
UPDATE students SET score=score+10 WHERE score<80;
而如果WHERE條件沒有匹配到任何記錄,UPDATE語句不會報錯,也不會有任何記錄被更新。
★ 警告:UPDATE語句可以沒有WHERE條件,但這很容易造成整個表的記錄被更新!!追悔莫及!!所以,在執行UPDATE語句時要非常小心,最好先用SELECT語句來測試WHERE條件是否篩選出了期望的記錄集,然後再用UPDATE更新。
其它補充——
3.3 刪DELETE
DELETE語句用於刪除數據庫表中的記錄,其基本語法爲:
DELETE FROM <表名> WHERE ...;
#### 例子
DELETE FROM students WHERE id=1;
#### code解釋
刪除students表中id=1的記錄。
注意到DELETE語句的WHERE條件也是用來篩選需要刪除的行,所以也可以一次刪除多條記錄:
DELETE FROM students WHERE id>=5 AND id<=7;
# 刪除5、6、7行
而如果WHERE條件沒有匹配到任何記錄,DELETE語句不會報錯,也不會有任何記錄被刪除。
★ 警告: 不帶WHERE條件的DELETE語句會刪除整個表的數據!!刪庫跑路必備——
DELETE FROM students;
這時,整個表的所有記錄都會被刪除。所以,在執行DELETE語句時也要非常小心,最好先用SELECT語句來測試WHERE條件是否篩選出了期望的記錄集,然後再用DELETE刪除。
其它補充——