
數(shù)據(jù)庫(kù)default什么意思 數(shù)據(jù)庫(kù)default含義?很多人不了解,今天各百科為大家?guī)?lái)相關(guān)內(nèi)容,下面小編為大家整理介紹。
含義:限制用于限制表中的數(shù)據(jù),以確保表中數(shù)據(jù)的準(zhǔn)確性和可靠性。
六個(gè)限制
NOT NULL:是非空約束,用于確保該字段的值不能為空。
DEFAULT:默認(rèn)約束,用于確保該字段具有默認(rèn)值。
PRIMARY KEY:主鍵約束,用于確保該字段的值唯一且非空。
UNIQUE:是唯一的,用于確保該字段的值是唯一的,可以為空。
CHECK:檢查約束mysql中不支持
FOREIGN KEY:外鍵約束用于限制兩個(gè)表之間的關(guān)系,并確保該字段的值必須來(lái)自主表的關(guān)聯(lián)列的值。從表中添加外鍵約束,以引用主表中某列的值。
外鍵特點(diǎn):
1.需要在從表中設(shè)置外鍵約束關(guān)系。
2.從表的外鍵約束列的類型與主表的關(guān)聯(lián)列的類型一致或兼容,并且名稱不是必需的。
3.主表的關(guān)聯(lián)列必須是鍵(通常是主鍵約束或唯一鍵約束)。
4.插入數(shù)據(jù)時(shí),先插入主表,再插入從表;刪除數(shù)據(jù)時(shí),先刪除從表,再刪除主表。
添加約束的時(shí)機(jī):
1.創(chuàng)建表格時(shí)
2.當(dāng)修改表格時(shí)
約束的添加分類:
列級(jí)約束:支持所有六種約束語(yǔ)法,但是外鍵約束不起作用。
表級(jí)約束:除了非空和默認(rèn)約束外,支持所有其他約束。
語(yǔ)法:
創(chuàng)建表名(
字段名字段類型的列級(jí)約束,
字段名稱字段類型,
級(jí)別約束);
創(chuàng)建表1時(shí)添加約束。添加列級(jí)約束。
只需在字段名后追加約束類型,直接輸入即可。
僅支持:默認(rèn)約束、非空約束、主鍵約束和唯一約束。
案例:
#創(chuàng)建專業(yè)表格
創(chuàng)建表專業(yè)(
id INT主鍵,
majorName VARCHAR (20)
);
#創(chuàng)建學(xué)生信息表
創(chuàng)建表學(xué)生(
Id主鍵,#主鍵約束
Name VARCHAR(20) NOT NULL,#非空約束
Sex CHAR(1) CHECK (sex='男性'或sex=女性'),# check約束(這里的語(yǔ)法不報(bào)錯(cuò),但沒(méi)有實(shí)際作用)
座位唯一性,#唯一約束
年齡整數(shù)默認(rèn)18,#默認(rèn)約束
Major id int foreign key引用major (id) # foreign key約束(這里的語(yǔ)法不報(bào)告錯(cuò)誤,但是沒(méi)有#實(shí)際效果)
) ;
2.添加表級(jí)約束
語(yǔ)法:位于每個(gè)字段的底部。
約束類型(字段名稱)
案例:
#創(chuàng)建專業(yè)表格
創(chuàng)建表專業(yè)(
id INT主鍵,
majorName VARCHAR (20)
);
#創(chuàng)建學(xué)生信息表
創(chuàng)建表學(xué)生(
id INT,
名稱VARCHAR(20),
性CHAR (1),
座椅INT,
年齡INT,
majorid INT
約束主鍵主鍵(id),#主鍵約束
構(gòu)造唯一(座位),#唯一鍵約束
約束ck檢查(性別='男性'或性別='女性'),#檢查約束
約束fk_ student_ major外鍵(majorid)引用了專業(yè)(id)
#外鍵約束
);
主鍵與唯一鍵的比較
約束名稱
獨(dú)特性
允許null?
一張桌子可以有幾個(gè)?
允許組合?
主鍵約束
最多有一個(gè)。
唯一約束
可以有多個(gè)。
組合主鍵約束,組合唯一約束的寫(xiě)法
創(chuàng)建表學(xué)生(
id INT,
名稱VARCHAR(20),
性CHAR (1),
教室VARCHAR(20)、
座椅INT,
年齡INT,
majorid INT
約束主鍵主鍵(id,name),#組合主鍵約束
構(gòu)造唯一(教室,座位),#組合唯一鍵約束
);
修改表3360時(shí)添加約束語(yǔ)法
1.添加列級(jí)約束。
更改表名修改列字段名字段類型新約束;
2.添加表級(jí)約束。
Alter table name add【約束約束名】約束類型(字段名)【外鍵引用】;
案例:
#創(chuàng)建專業(yè)表格
創(chuàng)建表專業(yè)(
id INT主鍵,
majorName VARCHAR (20)
);
創(chuàng)建表學(xué)生(
id INT,
名稱VARCHAR(20),
性CHAR (1),
教室VARCHAR(20)、
座椅INT,
年齡INT,
majorid INT
);
1.添加非空約束
ALTER TABLE student修改列名VARCHAR(20) NOT NULL
2.添加默認(rèn)約束
ALTER TABLE student修改列age INT DEFAULT 18
3.添加主鍵
# 列級(jí)約束語(yǔ)法3360
ALTER TABLE student修改列id INT主鍵;
# 表級(jí)約束語(yǔ)法3360
ALTER TABLE student添加主鍵(id);
4.添加唯一
# 列級(jí)約束語(yǔ)法3360
ALTER TABLE student修改列seat INT UNIQUE
#表級(jí)約束語(yǔ)法:
更改表學(xué)生添加唯一(座位);
5.添加外鍵
更改表學(xué)生添加fk _學(xué)生_專業(yè)外鍵(majorid)引用專業(yè)(id);
修改表時(shí)刪除約束1.刪除非空約束
更改表student_ MODIFY列名VARCHAR(20)NULL;
2.刪除默認(rèn)約束
更改表student_ MODIFY列年齡整數(shù)
3.刪除主鍵
更改表student_ DROP主鍵;
4.刪除唯一
更改表student_ DROP索引座位
5.刪除外鍵
更改表student_ DROP外鍵fk _學(xué)生_專業(yè)















