從品牌網(wǎng)站建設(shè)到網(wǎng)絡(luò)營(yíng)銷策劃,從策略到執(zhí)行的一站式服務(wù)
來(lái)源:公司資訊 | 2021.11.25
1.數(shù)據(jù)庫(kù)約束
1.1 約束類型
NOT NULL - 指示某列不能存儲(chǔ) NULL 值。
UNIQUE - 保證某列的每行必須有唯一的值。
DEFAULT - 規(guī)定沒(méi)有給列賦值時(shí)的默認(rèn)值。
PRIMARY KEY - NOT NULL 和 UNIQUE 的結(jié)合。確保某列(或兩個(gè)列多個(gè)列的結(jié)合)有唯一標(biāo)識(shí),有助于更容易更快速地找到表中的一個(gè)特定的記錄。
FOREIGN KEY - 保證一個(gè)表中的數(shù)據(jù)匹配另一個(gè)表中的值的參照完整性。
CHECK - 保證列中的值符合指定的條件。對(duì)于MySQL數(shù)據(jù)庫(kù),對(duì)CHECK子句進(jìn)行分析,但是忽略CHECK子句。
1.2 NULL約束
創(chuàng)建player表
在這里指定了id列不為空
當(dāng)輸入空時(shí),
因此這里輸入的時(shí)候不能將id設(shè)置為null
1.3 UNIQUE:唯一約
創(chuàng)建player表
這里指定name列為唯一值,不重復(fù)的
如果要插入值已經(jīng)在表中存在就會(huì)插入失敗
提示:當(dāng)列有uniqueq約束的時(shí)候,進(jìn)行插入之前,就會(huì)先查找。如果當(dāng)前值存在,此時(shí)就會(huì)插入失敗。因此,unique約束對(duì)效率肯定是會(huì)有影響的!但也是值得的!
1.4 DEFAULT:默認(rèn)值約束
我們知道,當(dāng)我們指定列插入的時(shí)候,如果這個(gè)列沒(méi)有被指定,就會(huì)被設(shè)置成默認(rèn)值NULL
使用DEFAULT約束
指定插入數(shù)據(jù)時(shí)name列為空,默認(rèn)值為unkown;
先建立表
1.5 PRIMARY KEY:主鍵約束
primary key 表示了一個(gè)記錄的身份標(biāo)識(shí)(相當(dāng)于唯一 && not null)
提示:一張表中只能有一個(gè)主鍵,對(duì)于主鍵,要求不能為空也不能重復(fù)。
1.6 FOREIGN KEY:外鍵約束
外鍵用于關(guān)聯(lián)其他表的主鍵或唯一鍵
創(chuàng)建班級(jí)表class,id為主鍵:
創(chuàng)建一個(gè)學(xué)生表
1.7 CHECK約束(了解)
MySQL不支持CHECK約束
使用方式
drop table if exists test_user;
create table test_user (
id int,
name varchar(20),
sex varchar(1),
check (sex =‘男’ or sex=‘女’)
);