數(shù)據(jù)完整性是為了保證插入到數(shù)據(jù)中的數(shù)據(jù)是正確的,它防止了用戶可能的輸入錯誤臀规。
一、實體完整性(記錄完整性):
規(guī)定表的一行(即每一條記錄)在表中是唯一的實體塔嬉。實體完整性通過表的主鍵來實現(xiàn)租悄。
解決辦法:采用主鍵:PRIMARY KEY 唯一,不能為NULL
第一種聲明主鍵的方式:
CREATE TABLE s1(
id INT PRIMARY KEY,
NAME VARCHAR(10),
gender VARCHAR(4)
);
第二種聲明主鍵的方式:
CREATE TABLE s2(
id INT ,
NAME VARCHAR(10),
gender VARCHAR(4),
PRIMARY KEY(id)
);
注:第二種聲明主鍵的方式:可以聲明聯(lián)合主鍵(兩個字段作為主鍵)
CREATE TABLE s3(
id INT ,
NAME VARCHAR(10),
gender VARCHAR(4),
PRIMARY KEY(id,NAME)#聯(lián)合聲明
);
二泣棋、域完整性(列完整性約束):
指數(shù)據(jù)庫表的列(即字段)必須符合某種特定的數(shù)據(jù)類型或約束。比如NOT NULL鸯屿。
約束:
????類型約束:? id int
????長度約束: id int(2)? ? ? 插入數(shù)據(jù) 1111
????非空約束: username varchar(8) NOT NULL ????必須有值
????唯一約束: idcardnum varchar(18) UNIQUE 可以為null把敢,有的話必須唯一
用戶名:一般網(wǎng)站用戶名必須有,且唯一(不讓他作為主鍵)
username varchar(100) NOT NULL UNIQUE
示例:
CREATE TABLE s4(
id INT PRIMARY KEY,
username VARCHAR(10) NOT NULL UNIQUE,
gender VARCHAR(4) NOT NULL,
idcardnum VARCHAR (4) UNIQUE
);
三修赞、參照完整性:
保證一個表的外鍵和另一個表的主鍵對應(yīng)。
3.1多表的設(shè)計
a柏副、一對多(出現(xiàn)頻率最高)