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