知識點1 ALTER 下列代碼意義:向已存在的表my_foods中新增自動排列的列 作為主鍵 如果不需要作為主鍵,則去掉 PRIMARY KEY 即可! 排序關鍵字: FIRST - --把 列id 安置於所有其他列的前面 LAST -- 把列 id 安置於其他列的後面 SECOND -- 把列 i ...
知識點1----ALTER
下列代碼意義:向已存在的表my_foods中新增自動排列的列 作為主鍵
ALTER TABLE my_contacts --表名稱 ADD COLUMN id INT NOT NULL AUTO_INCREMENT FIRST, --新的 列 id,自動排列,該列於第一位
ADD PRIMARY KEY (id); --要求新命名的id列作為主鍵
如果不需要作為主鍵,則去掉 PRIMARY KEY 即可!
排序關鍵字:
FIRST - --把 列id 安置於所有其他列的前面
LAST -- 把列 id 安置於其他列的後面
SECOND -- 把列 id 安置為 第二個列
AFTER(column1) -- 將列 id 放在 column1 後面
BEFORE(column2) -- 將列 id 放在 column2 前面
功能關鍵字:
ADD --- 在當前表中增加一列——可自選類型(見始端)
CHANGE--- 可以同時改變現有的列名稱和數據類型
ALTER TABLE my_contacts CHANGE COLUMN breakfast morning_foods VARCHAR(20); -- 舊名稱breakfast改為 morning_foods ,新的類型為 VARCHAR(20)
MODIFY ---修改現有列的數據類型或者位置
ALTER TABLE my_contacts MODIFY COLUMN morning_foods AFTER id;
DROP -- 從表中刪除某列
ALTER TABLE my_foods DROP COLUMN morning_foods;
RENAME TO ----給表重新命名
ALTER TABLE my_contacts RENAME TO contacts;
知識點2
DELETE----刪除單一行或者所有行的值
DELETE FROM my_foods --my_foods是要刪除的行所在的表 WHERE breakfast = 'bread';
DELETE 與 SELECT 區別:DELETE不需要指定刪除的對象,因為他很殘忍,會把整行的所有列都刪除。
所以,DELETE不能單一刪除某一列中值或者某一列的所有值;但是可以刪除一行或者多行(根據WHERE語句來定)。WHERE子句中的搭配關鍵字,類似SELECT的使用方法,如LIKE、IN、BETWEEN,都可以在此處使用,而且所有條件都能更準確地要求RDBMS刪除特定行。
要是想修改某一行的某一列值,可以使用DELETE和INSERT配合來完成:先確定需要改變的值是你真正需要的值(因為刪除掉的難以恢復),然後插入數據,刪除原來的數據
SELECT *FROM my_foods WHERE breakfast = 'milk'; INSERT INTO my_foods VALUES('bread+milk'); DELETE FROM my_foods WHERE breakfast = 'milk';
這樣做的缺點是:需要把全部的行的相同數據重新輸入一次,效率降低!UPDATE可以化簡這個問題!
知識點3
UPDATE---改變單一列或者所有列的值(不加上WHERE就會把那一列的所有數據都修改為新的值)
UPDATE my_foods SET breakfast = 'bread'
要是需要更新單一行或者多行,一切都需要交給WHERE來決定
UPDATE my_foods ---選擇更新的表 SET breakfast = 'bread' --設置列 的值為什麼 WHERE breakfast = 'milk'; --定位
...
當然,SET 不但可以對各種數據類型賦值,也可以套用一些基礎的運算,函數等等。
UPDATE my_foods SET foods_num = foods_num +1 WHERE breakfast IN ('bread','milk');