SQL基礎篇-----修改表內的數據,刪除列


知識點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';    --定位

 要是需要用到多個UPDATE,可以用一下方法(加入CASE關鍵字!!):

UPDATE my_foods            --表名稱
SET breakfast =        --指定的列值將根據下列條件做適當的更新
CASE 
    WHEN lunch = 'fish'    --當lunch 的值為 ‘fish’時,將breakfast的值修改為meat! 
        THEN 'meat'
    WHEN lunch = 'fruit'
        THEN 'apple'
    ELSE 'rice'
END

 

附:CASE語句可以適用於 SELECT ,INSERT, DELETE,UPDATE語句中!

...

當然,SET 不但可以對各種數據類型賦值,也可以套用一些基礎的運算,函數等等。

UPDATE my_foods
SET foods_num = foods_num +1
WHERE breakfast IN ('bread','milk');

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM