小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

MySQL - DDL -常見(jiàn)約束

 印度阿三17 2020-03-15

一、常見(jiàn)的約束

  • NOT NULL:非空,該字段的值必填

  • UNIQUE:唯一,該字段的值不可重復(fù)

  • DEFAULT:默認(rèn),該字段的值不用手動(dòng)插入有默認(rèn)值

  • CHECK:檢查,

    mysql不支持
  • PRIMARY KEY:主鍵,該字段的值不可重復(fù)并且非空 unique not null

  • FOREIGN KEY:外鍵,該字段的值引用了另外的表的字段

主鍵和唯一

1、區(qū)別:
①、一個(gè)表至多有一個(gè)主鍵,但可以有多個(gè)唯一
②、主鍵不允許為空,唯一可以為空

2、相同點(diǎn)
都具有唯一性
都支持組合鍵,但不推薦

外鍵:

1、用于限制兩個(gè)表的關(guān)系,從表的字段值引用了主表的某字段值
2、外鍵列和主表的被引用列要求類型一致,意義一樣,名稱無(wú)要求
3、主表的被引用列要求是一個(gè)key(一般就是主鍵)
4、插入數(shù)據(jù),插入主表

刪除數(shù)據(jù),先刪除從表

可以通過(guò)以下兩種方式來(lái)刪除主表的記錄

#方式一:級(jí)聯(lián)刪除
ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(majorid) REFERENCES major(id) ON DELETE CASCADE;
#方式二:級(jí)聯(lián)置空
ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(majorid) REFERENCES major(id) ON DELETE SET NULL;

二、創(chuàng)建表時(shí)添加約束

create table 表名(
	字段名 字段類型 not null,#非空
	字段名 字段類型 primary key,#主鍵
	字段名 字段類型 unique,#唯一
	字段名 字段類型 default 值,#默認(rèn)
	constraint 約束名 foreign key(字段名) references 主表(被引用列)
)

注意:


支持類型可以起約束名
列級(jí)約束除了外鍵不可以
表級(jí)約束除了非空和默認(rèn)可以,但對(duì)主鍵無(wú)效

列級(jí)約束可以在一個(gè)字段上追加多個(gè),中間用空格隔開(kāi),沒(méi)有順序要求

三、修改表時(shí)添加或刪除約束

  1. 非空

添加非空

alter table 表名 modify column 字段名 字段類型 not null;

刪除非空

alter table 表名 modify column 字段名 字段類型 ;
  1. 默認(rèn)

添加默認(rèn)

alter table 表名 modify column 字段名 字段類型 default 值;

刪除默認(rèn)

alter table 表名 modify column 字段名 字段類型 ;
  1. 主鍵

添加主鍵

alter table 表名 add【 constraint 約束名】 primary key(字段名);

刪除主鍵

alter table 表名 drop primary key;
  1. 唯一

添加唯一

alter table 表名 add【 constraint 約束名】 unique(字段名);

刪除唯一

alter table 表名 drop index 索引名;
  1. 外鍵
    添加外鍵

alter table 表名 add【 constraint 約束名】 foreign key(字段名) references 主表(被引用列);

刪除外鍵

alter table 表名 drop foreign key 約束名;

四、自增長(zhǎng)列

特點(diǎn):

  1. 不用手動(dòng)插入值,可以自動(dòng)提供序列值,默認(rèn)從1開(kāi)始,步長(zhǎng)為1

auto_increment_increment
  • 如果要更改起始值:手動(dòng)插入值

  • 如果要更改步長(zhǎng):更改系統(tǒng)變量

set auto_increment_increment=值;
  1. 一個(gè)表至多有一個(gè)自增長(zhǎng)列

  2. 自增長(zhǎng)列只能支持?jǐn)?shù)值型

  3. 自增長(zhǎng)列必須為一個(gè)key

一、創(chuàng)建表時(shí)設(shè)置自增長(zhǎng)列

create table 表(
	字段名 字段類型 約束 auto_increment
)

二、修改表時(shí)設(shè)置自增長(zhǎng)列

alter table 表 modify column 字段名 字段類型 約束 auto_increment

三、刪除自增長(zhǎng)列

alter table 表 modify column 字段名 字段類型 約束 
來(lái)源:https://www./content-2-660201.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多