MySQL基礎知識——ALTER TABLE

ALTER TABLE的做用數據庫

ALTER TABLE命令用於添加、刪除或者更改現有數據表中的列。ide

還能夠用 ALTER TABLE 命令來添加或者刪除現有數據表上的約束。3d

示例數據庫表code

將"Customers"表用做示例blog

MySQL基礎知識——ALTER TABLE

添加列語法
使用 ALTER TABLE 在現有的數據表中添加新列的基本語法以下:it

ALTER TABLE table_name table

ADD COLUMN column_name datatype;class

給"Customers"表增長一列"年齡",能夠這樣寫:基礎

ALTER TABLE Customers
ADD COLUMN 年齡 INT;

咱們再查看Customers表就在末尾增長一列"年齡"
MySQL基礎知識——ALTER TABLE數據類型

因爲咱們沒有設定值,"年齡"列默認都是NULL值(空值)

刪除列語法
使用 ALTER TABLE 在現有的數據表中刪除列的基本語法以下:

ALTER TABLE table_name

DROP COLUMN column_name;

咱們再將上面"Customers"剛增長的"年齡"列給刪除

ALTER TABLE Customers

DROP COLUMN 年齡;
執行完後就將"年齡"列給刪除了。

MySQL基礎知識——ALTER TABLE

修改列類型語法

使用 ALTER TABLE 更改現有的數據表中列的數據類型的基本語法以下:

ALTER TABLE table_name

MODIFY column_name datatype;

咱們將"Customers"表的"郵編"由CHAR類型改爲INT類型

ALTER TABLE customers
MODIFY 郵編 INT;

添加NOT NULL約束語法

使用 ALTER TABLE 給某列添加 NOT NULL 約束 的基本語法以下:

ALTER TABLE table_name

MODIFY column_name datatype NOT NULL;

咱們能夠將"Customers"表中的"省份"由NULL約束改爲NOT NULL約束

ALTER TABLE Customers
MODIFY 省份 VARCHAR(20) NOT NULL;

結果以下:

MySQL基礎知識——ALTER TABLE

添加惟一約束語法

使用 ALTER TABLE 給數據表添加 惟一約束 的基本語法以下:

ALTER TABLE table_name

ADD CONSTRAINT MyUniqueConstraint

UNIQUE(column1, column2...);

咱們能夠給"Customers"表中的"姓名"添加惟一約束

ALTER TABLE Customers
ADD CONSTRAINT idx_姓名
UNIQUE(姓名);

結果以下:

MySQL基礎知識——ALTER TABLE

添加CHECK約束語法

使用 ALTER TABLE 給數據表添加 CHECK 約束 的基本語法以下:

ALTER TABLE table_name

ADD CONSTRAINT MyUniqueConstraint

CHECK (CONDITION);

咱們能夠給"Customers"表中的"郵編"添加CHECK約束,長度必須等於6

ALTER TABLE Customers
ADD CONSTRAINT con_客戶ID 
CHECK (length(郵編)=6);

當咱們插入一條數據進去時,郵編的長度不等於6時,就會提示報錯,以下圖:

INSERT INTO customers
VALUES('張三','中山大道101號','廣州','510','廣東省');

結果以下:
MySQL基礎知識——ALTER TABLE
當咱們把郵編的長度改爲6位的長度時,就能夠正常插入了。
INSERT INTO customers
VALUES('張三','中山大道101號','廣州','510000','廣東省');

結果以下:

MySQL基礎知識——ALTER TABLE


添加主鍵約束語法

使用 ALTER TABLE 給數據表添加 主鍵約束 的基本語法以下:

ALTER TABLE table_name

ADD CONSTRAINT MyPrimaryKey

PRIMARY KEY (column1, column2...);

咱們先在Navicat中去掉客戶ID的自增加主鍵,而後"客戶ID"再添加不具有自增加屬性的主鍵約束

ALTER TABLE Customers
ADD CONSTRAINT pri_客戶ID
PRIMARY KEY(客戶ID);

結果以下:

MySQL基礎知識——ALTER TABLE

刪除約束語法

使用 ALTER TABLE 從數據表中 刪除約束 的基本語法以下:

ALTER TABLE table_name

DROP CONSTRAINT MyUniqueConstraint;

咱們將剛纔建的CHECK約束刪除掉

ALTER TABLE Customers
DROP CONSTRAINT con_客戶ID ;

咱們能夠看到直接的約束被刪除了。

MySQL基礎知識——ALTER TABLE

其餘類型的約束一樣能夠用此語法進行刪除。

注意:使用ALTER TABLE要極爲當心,應該在進行改動前作一個完整的備份(模式和數據的備份)。數據庫表的更改不能撤銷,若是增長了不須要的列,可能不能刪除它們。相似地,若是刪除了不該該刪除的列,可能會丟失該列中的全部數據

相關文章
相關標籤/搜索