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

5.6 非空約束

非空性是指字段的值不能為空值(NULL),在MySQL數(shù)據(jù)庫(kù)中,定義為主鍵的列,系統(tǒng)強(qiáng)制為非空約束。一張表中可以設(shè)置多個(gè)非空約束,它主要是用來(lái)規(guī)定某一列必須要輸入值,有了非空約束,就可以避免表中出現(xiàn)空值了。

5.6.1 創(chuàng)建表時(shí)添加非空約束

非空約束通常都是在創(chuàng)建數(shù)據(jù)表時(shí)就創(chuàng)建了,創(chuàng)建非空約束的操作很簡(jiǎn)單,只需要在列后添加NOT NULL。對(duì)于設(shè)置了主鍵約束的列,就沒(méi)有必要設(shè)置非空約束了,添加非空約束的語(yǔ)法格式如下:

【實(shí)例15】在test數(shù)據(jù)庫(kù)中,定義數(shù)據(jù)表person_01,將名稱和出生年月列設(shè)置為非空約束。輸入如下SQL語(yǔ)句:

單擊“執(zhí)行”按鈕,即可完成創(chuàng)建非空約束的操作,如圖5-31所示。執(zhí)行完成后,使用“DESC person_01;”語(yǔ)句即可看到該數(shù)據(jù)表的結(jié)構(gòu),在其中可以查看添加的非空約束,如圖5-32所示。

圖5-31 執(zhí)行SQL語(yǔ)句

圖5-32 查看添加的非空約束

5.6.2 修改表時(shí)添加非空約束

當(dāng)創(chuàng)建好數(shù)據(jù)表后,也可以為其添加非空約束,具體的語(yǔ)法格式如下:

    ALTER TABLE table_name
    MODIFY col_name datatype NOT NULL;

主要參數(shù)介紹如下。

  • table_name:表名。
  • col_name:列名,要為其添加非空約束的列名。
  • datatype:列的數(shù)據(jù)類型,如果不修改數(shù)據(jù)類型,還要使用原來(lái)的數(shù)據(jù)類型。
  • NOT NULL:非空約束的關(guān)鍵字。

【實(shí)例16】在現(xiàn)有person_01中,為remark字段添加非空約束。輸入以下SQL語(yǔ)句:

    ALTER TABLE person_01
    MODIFY remark VARCHAR(200) NOT NULL;

單擊“執(zhí)行”按鈕,即可完成添加非空約束的操作,如圖5-33所示。執(zhí)行完成后,使用“DESC person_01;”語(yǔ)句即可看到該數(shù)據(jù)表的結(jié)構(gòu),如圖5-34所示,可以看到字段remark添加了非空約束。

圖5-33 執(zhí)行SQL語(yǔ)句

圖5-34 查看添加的非空約束

5.6.3 刪除表中的非空約束

非空約束的刪除操作很簡(jiǎn)單,具體的語(yǔ)法格式如下:

    ALTER TABLE table_name
    MODIFY col_name datatype;

【實(shí)例17】在現(xiàn)有person_01中,刪除員工姓名name列的非空約束。在“查詢編輯器”窗口中輸入如下SQL語(yǔ)句:

    ALTER TABLE person_01 MODIFY name VARCHAR(20);

單擊“執(zhí)行”按鈕,即可完成刪除非空約束的操作,如圖5-35所示。

執(zhí)行完成后,使用“DESC person_01;”語(yǔ)句即可看到該數(shù)據(jù)表的結(jié)構(gòu),在其中可以查看員工姓名name列的非空約束被刪除,也就是說(shuō)該列允許為空值,如圖5-36所示。

圖5-35 刪除非空約束

圖5-36 查看刪除非空約束后的效果

主站蜘蛛池模板: 吉水县| 襄垣县| 牟定县| 阳城县| 古浪县| 普安县| 资源县| 固安县| 宣城市| 惠安县| 康乐县| 军事| 邯郸县| 九龙城区| 沁阳市| 昔阳县| 济南市| 托里县| 鹿邑县| 金华市| 怀安县| 兴宁市| 凤翔县| 扬州市| 清流县| 常宁市| 林周县| 隆昌县| 贵定县| 开原市| 农安县| 繁昌县| 含山县| 西峡县| 渝北区| 崇义县| 大宁县| 盘锦市| 竹北市| 康定县| 内江市|