標籤:log prim user 類型 通過 gen 修改 bat 邏輯
完整性條件約束
資料完整性是為了保證插入到資料中的資料是正確的,它防止了使用者可能的輸入錯誤。
2.1實體(記錄)完整性
規定表的一行(即每一條記錄)在表中是唯一的實體(Entity)。實體完整性通過表的主鍵來實現。
主鍵:不能為null;唯一
建立一個表格T1,並聲明一個主鍵
寫法一:(只能指定一個欄位作為主鍵)
create table T1(
ID int primary key,
NAME varchar(100)
);
寫法二:(指定聯合主鍵)
create table T2(
ID int,
NAME varchar(100),
primary key(ID)
);
寫法三:(建立沒有任何約束的表格,最後修改約束)建議
create table T3(
ID int,
NAME varchar(100)
);
alter table T3 add primary key(ID);
注意:
邏輯主鍵(建議):除了唯一標識一條記錄外,沒有別的意義。一般取名ID
業務主鍵:還有一定的業務意義。
MySQL:
create table T4(
ID int primary key auto_increment,#自動成長,不建議使用。資料庫遷移不方便,並不是所有的資料庫都支援自動成長,比如Oracle就不支援。
NAME varchar(100)
);
2.2域(欄位)完整性
指資料庫表的列(即欄位)必須符合某種特定的資料類型或約束
1、約束資料的類型:強型別
2、非空約束:not null
3、唯一約束:unique
create table T5(
ID int primary key auto_increment,
USERNAME varchar(100) not null unique,
PHONE_NUM varchar(11) unique,
GENDER varchar(10) not null
);
2.3參照完整性(多表的設計):定義外鍵
注意:類和表結構的關係;對象和記錄的關係(協助學習ORM:Hibernate、MyBatis)
ORM:Object Relation Mapping(Java物件導向 DB關係型資料庫 映射)
MySQL 完整性條件約束