目錄
- 物體完整性
- 定義完整性
- 參照完整性
物體完整性
物體完整性用PRIMARY KEY定義
例:將book表中的id屬性定義為主碼
列級定義主碼
CREATE TABLE BOOK(
ID CHAR(8) PRIMARY KEY(ID),
AUTHOR CHAR(30),
PRICE FLOAT
);
表級定義主碼
CREATE TABLE BOOK(
ID CHAR(8),
AUTHOR CHAR(30),
PRICE FLOAT,
PRIMARY KEY(ID)
);
多屬性主碼只能在表級定義
CREATE TABLE BOOK(
ID CHAR(8),
AUTHOR CHAR(30),
PRICE FLOAT,
PRIMARY KEY(ID,AUTHOR)
);
PRIMARY KEY 約束唯一標識資料庫表中的每條記錄,
主鍵必須包含唯一的值,
主鍵列不能包含 NULL 值,
每個表都應該有一個主鍵,并且每個表只能有一個主鍵,
定義完整性
1.不允許空值
例:在定義一張表book時,定義書的id,author,price不能取空值
CREATE TABLE BOOK(
ID CHAR(8) NOT NULL,
AUTHOR CHAR(30) NOT NULL,
PRICE FLOAT NOT NULL
);
2.列值唯一
例:建立一張表book,要求其author唯一
CREATE TABLE BOOK(
ID CHAR(8) NOT NULL,
AUTHOR CHAR(30) UNIQUE NOT NULL,
PRICE FLOAT NOT NULL,
PRIMARY KEY(ID)
);
3.用CHECK短語指定列值應該滿足的條件
例:只允許book表中sex取男或女
CREATE TABLE BOOK(
ID CHAR(8) PRIMARY KEY,
AUTHOR CHAR(30),
SEX CHAR(2) CHECK(SEX IN ('男','女')),
PRICE FLOAT
);
price只允許取1-500的值
CREATE TABLE BOOK(
ID CHAR(8) PRIMARY KEY,
AUTHOR CHAR(30),
SEX CHAR(2),
PRICE FLOAT CHECK (price>=1 AND price<=500)
);
參照完整性
參照完整性在create table中用foreign key定義外碼,用references指明這些外碼參照哪些表的主碼
CREATE TABLE BOOK(
ID CHAR(8),
AUTHOR CHAR(30),
SEX CHAR(2),
PRICE FLOAT,
PRIMARY KEY(ID,PRICE)
);
CREATE TABLE ADDRESS(
ID CHAR(8),
ADDRESS CHAR(3),
PRICE FLOAT,
FOREIGN KEY(ID) REFERENCES BOOK(ID),
FOREIGN KEY(PRICE) REFERENCES BOOK(PRICE)
);
參照完整性違約處理
1.NO ACTION 拒絕執行
2.CASCADE級聯操作
CREATE TABLE BOOK(
ID CHAR(8),
AUTHOR CHAR(30),
SEX CHAR(2),
PRICE FLOAT,
PRIMARY KEY(ID,PRICE)
);
CREATE TABLE ADDRESS(
ID CHAR(8),
ADDRESS CHAR(3),
PRICE FLOAT,
FOREIGN KEY(ID) REFERENCES BOOK(ID)
ON UPDATE CASCADE,
FOREIGN KEY(PRICE) REFERENCES BOOK(PRICE)
ON UPDATE CASCADE
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/234316.html
標籤:其他
上一篇:mysql中操作表的常用sql
下一篇:如何對資料庫進行監控
