- MySQL入門很輕松(微課超值版)
- 云尚科技
- 1079字
- 2020-09-18 11:30:50
5.4 默認約束

默認約束(Default Constraint)用于指定某列的默認值,這就需要為數據表中的某個字段添加一個默認約束。注意,一個字段只有在不可為空的時候才能設置默認約束。
5.4.1 創建表時添加默認約束
數據表的默認約束可以在創建表時創建,一般添加默認約束的字段有兩種情況:一種是該字段不能為空;一種是該字段添加的值總是某一個固定值。創建表時添加默認約束的語法格式如下:

主要參數介紹如下。
- DEFAULT:默認值約束的關鍵字,它通常放在字段的數據類型之后。
- constant_expression:常量表達式,該表達式可以直接是一個具體的值,也可以是通過表達式得到一個值,但是這個值必須與該字段的數據類型相匹配。
提示:除了可以為表中的一個字段設置默認約束,還可以為表中的多個字段同時設置默認約束,不過,每一個字段只能設置一個默認約束。
【實例9】在數據庫test中,創建一個數據表person,為city字段添加一個默認值“北京”,輸入以下SQL語句:

單擊“執行”按鈕,即可完成添加默認約束的操作,如圖5-19所示。執行完成后,使用“DESC person;”語句即可看到該數據表的結構,如圖5-20所示??梢钥吹綌祿淼哪J值為“北京”。

圖5-19 添加默認約束

圖5-20 查看表結構
5.4.2 修改表時添加默認約束
如果創建數據表時沒有添加默認約束,可以使用ALTER語句對現有表添加默認值約束。使用ALTER語句添加默認約束的語法格式如下:
ALTER TABLE table_name ALTER col_name SET DEFAULT constant_expression;
主要參數介紹如下。
- table_name:表名,它是要添加默認約束列所在的表名。
- DEFAULT:默認約束的關鍵字。
- constant_expression:常量表達式,該表達式可以直接是一個具體的值,也可以是通過表達式得到的一個值,但是這個值必須與該字段的數據類型相匹配。
- col_name:設置默認約束的列名。
【實例10】person表創建完成后,如果沒有為city字段添加默認約束值“北京”,則可以輸入以下SQL語句來添加默認約束。
ALTER TABLE person ALTER city SET DEFAULT "北京";
單擊“執行”按鈕,即可完成在DEFAULT約束的添加操作,如圖5-21所示。執行完成后,使用“DESC person;”語句即可看到該數據表的結構,如圖5-22所示??梢钥吹綌祿淼哪J值為“北京”,這與創建表時添加默認約束是一樣的。

圖5-21 修改表時添加默認約束

圖5-22 查看表person的結構
5.4.3 刪除表中的默認約束
當表中的某個字段不再需要默認值時,可以將默認值約束刪除,這個操作非常簡單。使用DROP語句刪除默認值約束的語法格式如下:
ALTER TABLE table_name ALTER col_name DROP DEFAULT;
主要參數介紹如下。
- table_name:表名,它是要刪除的默認值約束列所在的表名。
- col_name:設置默認約束的列名。
【實例11】將person表中添加的默認值約束刪除,輸入如下SQL語句:
ALTER TABLE person ALTER city DROP DEFAULT;
單擊“執行”按鈕,即可完成對默認值約束的刪除操作,如圖5-23所示。執行完成后,使用“DESC person;”語句即可看到該數據表的結構,可以看到數據表的默認值被刪除,如圖5-24所示。

圖5-23 刪除默認值約束

圖5-24 刪除默認約束后的表結構