想對資料表修正,而又不想刪除資料 !
- 使用ALTER TABLE
- CHANGE:修改現存資料欄的名稱與型別。
- MODIFY:修改現存資料欄的型別與位置。
- ADD:新增一各欄位。
- DROP:移除某欄。
- RENAME TO:改變表名稱。
原始表結構
name | age | birthday | gender | city |
使用FIRST
ALTER TABLE contacts_info
ADD COLUMN address VARCHAR(50) FIRST;
address | name | age | birthday | gender | city |
使用LAST
ALTER TABLE contacts_info
ADD COLUMN address VARCHAR(50) LAST;
name | age | birthday | gender | city | address |
使用AFTER
ALTER TABLE contacts_info
ADD COLUMN address VARCHAR(50)
AFTER birthday;
name | age | birthday | address | gender | city |
使用BEFORE
ALTER TABLE contacts_info
ADD COLUMN address VARCHAR(50)
BEFORE brithday;
name | age | address | birthday | gender | city |
使用SECOND
ALTER TABLE contacts_info
ADD COLUMN address VARCHAR(50) SECOND;
name | address | age | birthday | gender | city |
更改資料表名稱
ALTER TABLE contacts_info
RENAME TO contacts_lis;
ALTER與CHANGE
//原始範例表結構
number | name | type | price |
ALTER TABLE drinks_list
CHANGE COLUMN number drink_id INT NOT NULL AUTO_INCREMENT,
ADD PRIMARY KEY (drink_id);
drink_id | name | type | price |
- CHANGE 可以修改資料欄的"名稱"與"型別"。
- 把資料改成另種型別有可能會遺失資料。
- 欲改變的資料型別與原始型別不相容,則指令不會執行。
只改型別
drink_id | name | type | price |
ALTER TABLE drinks_list
CHANGE COLUMN type VARCHAR(50);
只改欄位名稱
drink_id | name | type | price |
ALTER TABLE drinks_list
CHANGE COLUMN name drinkName;
drink_id | drinkName | type | price |
修改兩各欄位
drink_id | name | type | price |
ALTER TABLE drinks_list
CHANGE COLUMN name drinkName VARCHAR(20),
CHANGE COLUMN type drinkType VARCHAR(20);
drink_id | drinkName | drinkType | price |
DROP COLUMN 刪除欄位
drink_id | drinkName | drinkType | price | cost |
ALTER TABLE drinks_lis
DROP COLUMN cost;
drink_id | drinkName | drinkType | price |
一些便利的字串函式
- RIGHT(欄位 , 字元數量) FROM tableName;
- SUBSTRING_INDEX(欄位, ',' , 1) FROM tableName;
SELECT RIGHT(location , 2) FROM my_contacts;
- RIGHT,表示從右側開始
- 函數中第一各參數表,目標欄位。
- 函數中第二各參數表,右側開始選擇的字元數量。
SELECT SUBSTRING_INDEX(location, ',', 1)FROM my_contacts;
這段敘述是說從location欄中,取回第一個豆號前所有的字串。
- SUBSTRING_INDEX,找尋由第二參數中所給的符號開始,然後取出符號前面的所有東西。
- 第二各參數,要找尋的符號。
- 第三各參數,表該欄位中第幾各符號開始。
沒有留言:
張貼留言