大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專(zhuān)注Java教育14年 全國(guó)咨詢(xún)/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) hot資訊 簡(jiǎn)述7種MySQL列約束

簡(jiǎn)述7種MySQL列約束

更新時(shí)間:2021-01-25 17:09:35 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1042次

MySQL可以對(duì)插入的數(shù)據(jù)進(jìn)行特定得驗(yàn)證,只有滿(mǎn)足條件才可以插入到數(shù)據(jù)表中,否則認(rèn)為是非法插入;在學(xué)習(xí)MySQL數(shù)據(jù)庫(kù)的過(guò)程中,我們接觸到了主鍵約束、外鍵約束,唯一約束和默認(rèn)約束等等對(duì)MySQL數(shù)據(jù)庫(kù)數(shù)據(jù)的限定的約束,事實(shí)上,MySQL中的約束遠(yuǎn)不止于此,本文我們就來(lái)講述常見(jiàn)的7種MySQL列約束

 

1. 主鍵

- 能唯一標(biāo)識(shí)記錄的字段,可以作為主鍵。

    - 一個(gè)表只能有一個(gè)主鍵。

    - 主鍵具有唯一性。

    - 聲明字段時(shí),用 primary key 標(biāo)識(shí)。

      也可以在字段列表之后聲明

      例:create table tab ( id int, stu varchar(10), primary key (id));

    - 主鍵字段的值不能為null。

    - 主鍵可以由多個(gè)字段共同組成。此時(shí)需要在字段列表后聲明的方法。

      例:create table tab ( id int, stu varchar(10), age int, primary key (stu, age));

 

2. unique 唯一索引(唯一約束)

    使得某字段的值也不能重復(fù)。

    

3. null 約束

    null不是數(shù)據(jù)類(lèi)型,是列的一個(gè)屬性。

    表示當(dāng)前列是否可以為null,表示什么都沒(méi)有。

    null, 允許為空。默認(rèn)。

    not null, 不允許為空。

    insert into tab values (null, 'val');

        -- 此時(shí)表示將第一個(gè)字段的值設(shè)為null, 取決于該字段是否允許為null

    

4. default 默認(rèn)值屬性

    當(dāng)前字段的默認(rèn)值。

    insert into tab values (default, 'val');    -- 此時(shí)表示強(qiáng)制使用默認(rèn)值。

    create table tab ( add_time timestamp default current_timestamp );

        -- 表示將當(dāng)前時(shí)間的時(shí)間戳設(shè)為默認(rèn)值。

        current_date, current_time

 

5. auto_increment 自動(dòng)增長(zhǎng)約束

    自動(dòng)增長(zhǎng)必須為索引(主鍵或unique)

    只能存在一個(gè)字段為自動(dòng)增長(zhǎng)。

    默認(rèn)為1開(kāi)始自動(dòng)增長(zhǎng)。可以通過(guò)表屬性 auto_increment = x進(jìn)行設(shè)置,或 alter table tbl auto_increment = x;

 

6. comment 注釋

    例:create table tab ( id int ) comment '注釋內(nèi)容';

 

7. foreign key 外鍵約束

    用于限制主表與從表數(shù)據(jù)完整性。

    alter table t1 add constraint `t1_t2_fk` foreign key (t1_id) references t2(id);

        -- 將表t1的t1_id外鍵關(guān)聯(lián)到表t2的id字段。

        -- 每個(gè)外鍵都有一個(gè)名字,可以通過(guò) constraint 指定

 

    存在外鍵的表,稱(chēng)之為從表(子表),外鍵指向的表,稱(chēng)之為主表(父表)。

 

    作用:保持?jǐn)?shù)據(jù)一致性,完整性,主要目的是控制存儲(chǔ)在外鍵表(從表)中的數(shù)據(jù)。

 

    MySQL中,可以對(duì)InnoDB引擎使用外鍵約束:

    語(yǔ)法:

    foreign key (外鍵字段) references 主表名 (關(guān)聯(lián)字段) [主表記錄刪除時(shí)的動(dòng)作] [主表記錄更新時(shí)的動(dòng)作]

    此時(shí)需要檢測(cè)一個(gè)從表的外鍵需要約束為主表的已存在的值。外鍵在沒(méi)有關(guān)聯(lián)的情況下,可以設(shè)置為null.前提是該外鍵列,沒(méi)有not null。

 

    可以不指定主表記錄更改或更新時(shí)的動(dòng)作,那么此時(shí)主表的操作被拒絕。

    如果指定了 on update 或 on delete:在刪除或更新時(shí),有如下幾個(gè)操作可以選擇:

    1. cascade,級(jí)聯(lián)操作。主表數(shù)據(jù)被更新(主鍵值更新),從表也被更新(外鍵值更新)。主表記錄被刪除,從表相關(guān)記錄也被刪除。

    2. set null,設(shè)置為null。主表數(shù)據(jù)被更新(主鍵值更新),從表的外鍵被設(shè)置為null。主表記錄被刪除,從表相關(guān)記錄外鍵被設(shè)置成null。但注意,要求該外鍵列,沒(méi)有not null屬性約束。

    3. restrict,拒絕父表刪除和更新。

注意,外鍵只被InnoDB存儲(chǔ)引擎所支持。其他引擎是不支持的。

 

MySQL列約束也叫做列屬性,即在MySQL數(shù)據(jù)庫(kù)中某列上的數(shù)據(jù)往往必須符合某種規(guī)范,如編號(hào)不能重復(fù)、年齡必須在一定范圍、密碼有長(zhǎng)度限制、員工所在部門(mén)必須真的存在。諸如此類(lèi)的還有自增列,只能用于整數(shù)列,且必須是主鍵列。想要深入了解的小伙伴,趕快行動(dòng),觀看本站的MySQL教程吧!

 

 

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-10-10 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 久久久日韩精品国产成人 | 久久99精品久久久久久久不卡 | 久久精品a一国产成人免费网站 | 亚洲短视频在线观看 | 狠狠地日| 四虎影视永久在线 | 午夜探花| 国产精品视频一区麻豆 | 神马影院我不卡手机版 | 日韩欧美一级毛片视频免费 | 26uuu另类欧美亚洲曰本 | 狠狠综合久久久久综 | 成人午夜久久 | 天天干天天操天天干 | 久久亚洲精品国产亚洲老地址 | 97超级碰碰碰碰精品 | 青青青永久免费视频 | 亚洲欧美视频二区 | 色视频欧美| 成年视频免费 | 色爱综合网欧美 | 夜夜操综合 | 久久久久久a亚洲欧洲aⅴ | 全免费毛片在线播放 | 国产在线视精品麻豆 | 性性影院在线观看 | 中文字幕日韩一区 | 99视频在线 | 在线看片亚洲 | 国产一区二区三区不卡在线观看 | 欧美中文字幕在线观看 | 亚洲欧美一区在线 | 久久天天躁狠狠躁夜夜爽蜜月 | 日日摸夜夜添夜夜添毛片 | 欧美网站www | 中文字幕一区二区三区四区五区人 | 一区二区三区免费视频观看 | 精品国产一区二区在线观看 | 色天天综合网 | 搜毛片| 爱爱视频网站免费 |