官术网_书友最值得收藏!

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 刪除默認約束后的表結構

主站蜘蛛池模板: 长乐市| 梁平县| 邓州市| 昌图县| 双峰县| 榆社县| 新民市| 舟山市| 宁阳县| 华容县| 汝城县| 连云港市| 鞍山市| 尼木县| 渭南市| 张掖市| 株洲县| 高唐县| 成都市| 百色市| 临清市| 福鼎市| 黑山县| 吉首市| 类乌齐县| 双牌县| 明水县| 本溪市| 清新县| 榆社县| 兰考县| 凉山| 安福县| 西昌市| 桃江县| 普宁市| 保靖县| 靖西县| 罗甸县| 新巴尔虎右旗| 南皮县|