MySQL 笔记4 -- 数据完整性
生活随笔
收集整理的這篇文章主要介紹了
MySQL 笔记4 -- 数据完整性
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
MySQL 筆記4 – 數(shù)據(jù)完整性
MySQL 系列筆記是筆者學(xué)習(xí)、實踐MySQL數(shù)據(jù)庫的筆記
課程鏈接: MySQL 數(shù)據(jù)庫基礎(chǔ)入門教程
參考文檔:
MySQL 官方文檔
一、數(shù)據(jù)完整性
作用: 保證用戶輸入的數(shù)據(jù)保存到數(shù)據(jù)庫中是正確的
設(shè)置數(shù)據(jù)完整性: 在創(chuàng)建表時給表中添加約束
數(shù)據(jù)完整性分類:
- 實體完整性
- 域完整性
- 引用/參照完整性
二、實體完整性
1、實體完整性
實體: 表中的一行(一條記錄)代表一個實體(entity)
作用: 標識每一行數(shù)據(jù)不重復(fù),行級約束
2、主鍵約束(primary key)
特點:
- 每個表中要有一個主鍵
- 數(shù)據(jù)唯一,且不能為null
格式:
| CREATE TABLE 表名(字段1 數(shù)據(jù)類型 primary key,字段2 數(shù)據(jù)類型); | 單主鍵,字段1為主鍵 |
| CREATE TABLE 表名(字段1 數(shù)據(jù)類型, 字段2 數(shù)據(jù)類型,primary key(要設(shè)置主鍵的字段)); | 單主鍵 |
| CREATE TABLE 表名(字段1 數(shù)據(jù)類型, 字段2 數(shù)據(jù)類型,primary key(主鍵1,主鍵2)); | 聯(lián)合主鍵,不能都一樣 |
3、唯一約束(unique)
特點:
- 指定列的數(shù)據(jù)不能重復(fù)
- 可以為null
格式:
| CREATE TABLE 表名(字段名1 數(shù)據(jù)類型,字段2 數(shù)據(jù)類型 UNIQUE); | 字段2有唯一約束 |
4、 自動增長列
特點:
- 指定列的數(shù)據(jù)自動增長
- 數(shù)據(jù)刪除,序號不會刪除,還是從刪除的序號繼續(xù)往下
格式:
| CREATE TABLE 表名(字段名1 數(shù)據(jù)類型 PRIMARY KEY AUTO_INCREMENT ,字段2 數(shù)據(jù)類型 UNIQUE); | 字段1 自動增長 |
三、域完整性
1、域完整性
- 域代表當(dāng)前單元格
- 限制此單元格的數(shù)據(jù)正確,不對照此列的其它單元格比較
2、域完整性約束
數(shù)據(jù)類型約束 : 數(shù)值類型、日期類型、字符串類型
非空約束(not null):
| CREATE TABLE 表名(字段1 數(shù)據(jù)類型 PRIMARY KEY AUTO_INCREMENT ,字段2 數(shù)據(jù)類型 UNIQUE not null); | 字段2不能為null |
默認值約束(default) :
| CREATE TABLE 表名(字段1 數(shù)據(jù)類型 PRIMARY KEY AUTO_INCREMENT ,字段2 數(shù)據(jù)類型 UNIQUE not null default ‘x’); | 字段2默認值為’x’ |
四、參照完整性
1、參照完整性
- 是指表與表之間的一種對應(yīng)關(guān)系
- 通常情況下可以通過設(shè)置兩表之間的主鍵、外鍵關(guān)系,或者編寫兩表的觸發(fā)器來實現(xiàn)
- 有對應(yīng)參照完整性的兩張表格,在對他們進行數(shù)據(jù)插入、更新、刪除的過程中,系統(tǒng)都會將被修改表格與另一張對應(yīng)表格進行對照,從而阻止一些不正確的數(shù)據(jù)的操作
2、主鍵和外鍵
- 數(shù)據(jù)庫的主鍵和外鍵類型一定要一致
- 兩個表必須得要是InnoDB類型
- 設(shè)置參照完整性后 ,外鍵當(dāng)中的內(nèi)值,必須得是主鍵當(dāng)中的內(nèi)容
- 一個表設(shè)置當(dāng)中的字段設(shè)置為主鍵,設(shè)置主鍵的為主表
- 主鍵:PRIMARY KEY,外鍵:REFERENCES
格式
| CREATE TABLE student(sid int PRIMARY KEY,name varchar(50) not null,sex varchar(10) default ‘男’); | 設(shè)置主鍵 |
| CREATE TABLE score(sid INT,score DOUBLE,CONSTRAINT fk_stu_score_sid FOREIGN KEY(sid) REFERENCES student(sid)); | 設(shè)置外鍵 |
GOOD LUCK!
總結(jié)
以上是生活随笔為你收集整理的MySQL 笔记4 -- 数据完整性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分析Spring容器启动流程 Sprin
- 下一篇: MySQL 笔记5 -- 多表查询