標籤:
修改資料表包括添加列、刪除列、添加約束、刪除約束,修改列定義和修改資料表名稱,後面的兩個我們使用時
一定要謹慎,盡量不使用。
下面就來一個一個單獨介紹怎麼修改資料表:
一添加資料表中的列 (1)添加單列
MySQL資料庫的資料表中添加單列的文法格式為:
ALTER TABLE table_name ADD [COLUMN] col_name columns_definition [FIRST | AFTER col_name];
例子:
SHOW COLUMNS FROM users1;
ALTER TABLE users1 ADD age TINYINT UNSIGNED NOT NULL DEFAULT 10;
SHOW COLUMNS FROM users1;
再來增加一個password欄位並把這列放在username欄位的後面:
ALTER TABLE users1 ADD password VARCHAR(32) NOT NULL AFTER username;
SHOW COLUMNS FROM users1;
增加一個truename欄位並把這列放在第一列的位置(也就是放在所有欄位的前面):
ALTER TABLE users1 ADD truename VARCHAR(20) NOT NULL FIRST;
SHOW COLUMNS FROM users1;
(2)添加多列
MySQL資料庫的資料表中添加多列的文法格式為:
ALTER TABLE table_name ADD [COLUMN] (col_name columns_definition,...);
例子:這裡我們只是添加兩列
ALTER TABLE users1 ADD (password VARCHAR(32) NOT NULL AFTER username,age TINYINT UNSIGNED
NOT NULL DEFAULT 10);
DESC users1;
和添加單列不同的是添加多列只能在所有列的後面添加多列。
二刪除資料表中的列 (1)刪除單列
MySQL資料庫中的資料表刪除單列的文法格式:
ALTER TABLE table_name DROP [COLUMN] col_name;
例子;
ALTER TABLE users1 DROP truename;
SHOW COLUMNS FROM users1;
(2)刪除多列
MySQL資料庫的資料表中刪除多列的文法格式:
ALTER TABLE table_name DROP [COLUMN] col_name1,DROP [COLUMN] col_name2,...;
例子:這裡只是刪除兩列
ALTER TABLE users1 DROP password,DROP age;
SHOW COLUMNS FROM users1;
三添加約束 (1)添加主鍵約束
MySQL資料庫的資料表中添加主鍵約束的文法格式為:
ALTER TABLE table_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...);
先來建立一張資料表users2:
CREATE TABLE users2(
username VARCHAR(10) NOT NULL,
pid SMALLINT UNSIGNED
);
SHOW CREATE TABLE users2;
上述表明資料表中並沒有主鍵約束。
添加主鍵約束的例子:
1)首先添加一個要做為主鍵的列:
ALTER TABLE users2 ADD id SMALLINT UNSIGNED;
SHOW COLUMNS FROM users2;
2)在要做為主鍵的列添加主鍵約束: ALTER TABLE users2 ADD CONSTRAINT PK_users2_id PRIMARY KEY (id);
SHOW COLUMNS FROM users2;
上面的例子中我們也可以不加關鍵字CONSTRAINT,加上它我們就可以為這個主鍵約束起一個名字,我們所起
的主鍵名稱為PK_users2_id,為了以後方便操作主鍵,我們最好給主鍵起個名字。
(2)添加唯一約束
MySQL資料庫中的資料表添加唯一約束的文法格式:
ALTER TABLE table_name ADD [CONSTRAINT [symbol]] UNIQUE [INDEX| KEY] [index_name] [index_type]
(index_col_name,...);
例子:
ALTER TABLE users2 ADD UNIQUE (username);
SHOW COLUMNS FROM users2;
MySQL學習11:修改資料表(一)