詳解MySQL 資料完整性

2022-09-25 07:42:12 字數 2599 閱讀 6840

參照完整性指的就是多表之間的設計,主要使用外來鍵約束。

多表設計: 一對多、多對多、一對一設計

一:實體(行)完整性

實體完整性通過表的主鍵來實現。

使用主鍵來表示一條記錄的唯一,且不為空

語法:primary key

主鍵分類:

邏輯主鍵:例如id,不代表實際的業務意義,只是用來唯一標識一條記錄(推薦)

業務主鍵:例如username,參與實際的業務邏輯。

特點:唯一,not null

自動增長:auto_increment

例如:create table person2(

id int primary key auto_increment,

name varchar(100)

);二:域(列)完整性

非空約束:not null

唯一約束:unique

creat table person3(

id int not null unique,

name varchar(20) not null unique,

gender varchar(20) not null,

phone char(11) unique #不能有,

);三:參照完整性

1,一對多

a:例如:客戶和訂單的關係就是一對多,乙個客戶可以有多張訂單,一張訂單屬於乙個客戶;

b:外來鍵設定到多的一方

語法輸入建立一對多:

建立客戶表:

create table customers(

id int,

name varchar(20),

address varchar(100),

primary key(id)

);建立訂單表:

create table orders(

id i程式設計客棧nt,

order_num int primary key,

price float(4,2),

customer_id int,

constraint customer_ord_fk foreign key(customer_id) references customers(id)

);注:constraint: 約束,foreign key: 外來鍵,re程式設計客棧ferences: 參照

建立乙個名叫customer_ord_fk的外來鍵約束,外鍵指的是customer_id,參照的是 customers表中的id列

**操作建立一對多

customers表

orders表

orders外來鍵設定

建立乙個名叫customer_ord_fk的外來鍵約束,外來鍵字段customer_id,參照的是 customers表中的id列

擴充套件:四種子表的刪除更新策略:

2,多對多

建立老師表:

create table teachers(

id int primary key auto_increment,

name varchar(20) ,

gender char(5),

subject varchar(20)

);建立學生表:

crea程式設計客棧te table students(

id int primary key ,

name varchar(20),

age int

);第三張為關聯表:

create table teacher_student(

id int,

t_id int,

s_id int,

primary key(t_id,s_id)

constraint teacher_id_fk foreign key(t_id) references students(id),

constrains student_id_fk foreign key(s_id) references teachers(id)

);**操作多對多

建立老師表:

建立學生表:

第三張表:

3,一對一

(1)一般情況,設計一張**即可

(2)設計成兩張**

法1:第二張**中建立乙個字段作為外來鍵(設定求唯一 unique)對應第一張**中的主鍵;

法2:直接使用第二張**中的主鍵作為外來鍵,對應第一張**的主鍵。

兩張表:unique很重要

create table user(

id int primary key auto_increment,

name varchar(20),

age int

);create table card(

id int primary key auto_increment,

num varchar(20) not null,

address varchar(100) not null,

user_id int unique,

constraint user_card_fk foreign key(user程式設計客棧_id) references user(id)

);本文標題: 詳解mysql:資料完整性

本文位址:

mysql 完整性 詳解MySQL 資料完整性

資料完整性分為 實體完整性,域完整性,參考完整性。參照完整性指的就是多表之間的設計,主要使用外來鍵約束。多表設計 一對多 多對多 一對一設計 一 實體 行 完整性 實體完整性通過表的主鍵來實現。使用主鍵來表示一條記錄的唯一,且不為空 語法 primary key 主鍵分類 邏輯主鍵 例如id,不代表...

MySQL資料完整性(實體完整性 域完整性)

資料完整性 為保證插入到資料庫中的資料是正確的,防止使用者輸入錯誤的資料 分為實體完整性 域完整性 參照完整性 下節再說 1 實體完整性 實體指的是表中的一行,一行記錄對應乙個實體 通過主鍵實現 主鍵 關鍵字 primary key 特點 不能為null,並且唯一。邏輯主鍵 推薦 例如id,不代表實...

mysql 域完整性 Mysql之資料完整性約束

mysql之ddl操作 四 資料完整性約束 實體完整性 域完整性 引用完整性 自定義完整性 1 實體完整性 主鍵約束 唯一約束 主鍵自增 1 主鍵約束 特點 唯一的,不能為空 關鍵字 primary key 新增約束語法 alter table 表名 add constraint 約束名 prima...