所謂完整性是指資料的準確性和一致性,而完整性檢查就是指檢查資料的準確性和一致性。mysql資料庫管理系統提供了一致機制來檢查資料庫表中的資料是否滿足規定的條件,以保證資料庫中資料的準確性和一致性,這種機制就是約束。
完整性約束
完整性約束關鍵字
含義not null
約束欄位的值不能為空
default
設定欄位的預設值
unique key(uk)
設定欄位的值是唯一
primary key(pk)
約束欄位為表的主鍵,可以作為該錶記錄的唯一標識
auto_increment
約束欄位的值為自動增加
foreign key(fk)
約束欄位為表的外來鍵
當資料庫表中的某個欄位上的內容不希望設定為null時,則可以使用nk約束進行設定。
1、設定非空約束
mariadb [(none)]> create database company;
mariadb [(none)]> use company;
#建立表
mariadb [company]> create table t_dept(deptno int(20) not null,dname varchar(20),loc varchar(40));
query ok, 0 rows affected (0.02 sec)
2、檢視
當為資料庫表中插入一條新記錄時,如果沒有為某個字段賦值,那麼資料庫系統會自動為這個字段插入預設值。
1、設定預設值
mariadb [company]> create table t_dept(deptno int not null,dname varchar(20) default 'cjgong',loc varchar(40));
2、檢視
當資料庫表中的某個欄位上的內容不允許重複時,則可以使用uk約束進行設定。
1、設定唯一約束
mariadb [company]> create table t_dept(deptno int,dname varchar(20) unique,loc varchar(40));
2、檢視
當想用資料庫表中的某個欄位來唯一標識所有記錄是,則可以使用pk約束進行設定
1、單字段主鍵
mariadb [company]> create table t_dept(deptno int primary key,dname varchar(20),loc varchar(40));
表t_dept中欄位deptno已經被設定為pk約束,同時可以發現主鍵約束相當於非空約束加上唯一約束。
2、多欄位主鍵
auto_increment是mysql唯一擴充套件的完整性約束,當為資料庫表中插入新記錄時,欄位上的值會自動生成唯一的id。在具體設定auto_increment約束時,乙個資料庫表中只能有乙個字段使用該約束,該字段的資料型別必須是整數型別。
1、由於設定auto_increment約束後的字段會生成唯一的id,所以該字段也經常會設定為pk主鍵。
mariadb [company]> create table t_dept(deptno int primary key auto_increment,dname varchar(20),loc varchar(40));
2、檢視
設定外來鍵約束的兩個表之間具有父子關係,即字表中某個欄位的取值範圍由父表決定。例如,表示一種部門和雇員關係,即每個部門有多個雇員。首先應該有兩個表:部門表和雇員表,然後雇員表中有乙個表示部門編號的字段deptno,其依賴於部門表的主鍵,這樣欄位deptno就是雇員表的外來鍵,通過該欄位部門表和雇員表建立了關係
1、設定fk約束的字段必須依賴於資料庫中已經存在的父表的主鍵,同時外來鍵可以為null
mariadb [company]> create table t_dept(deptno int primary key,dname varchar(20),loc varchar(40));
mariadb [company]> create table t_employee(
-> empno int primary key,
-> ename varchar(20),
-> job varchar(40),
-> mgr int,
-> hiredate date,
-> sal double(10,2),
-> comm double(10,2),
-> deptno int,
-> constraint fk_deptno foreign key(deptno) references t_dept(deptno));
2、檢視
mysql表操作約束 MySQL操作表的約束
完整性 指資料庫的準確性和一致性。約束 是在表中定義的用於維護資料庫完整性的一些規則。主鍵 給某乙個欄位來唯一標識所有記錄,值是唯一的,非空的 外來鍵 多個表之間參照的完整性。一 設定非空約束 use教學管理資料庫 show tables create table專業表 專業編號char 3 not...
MySQL約束 資料表操作
作用 保證資料的完整性 一致性。分類 表級約束 對多個資料列的約束列級約束 對乙個資料列的約束 區別 表級約束只能在列定義時宣告 列級約束可以在定義後宣告 具體 not null非空約束primary key主鍵約束 保證唯一性,自動為非空,只有乙個unique key唯一約束 保證唯一性,可以為空...
Mysql 表的約束
約束型別 說明主鍵約束 primary key 要求主鍵列資料唯一,並且不允許空。主鍵可以包含表的一列或多列,如果包含火烈,則序號在表級定義。唯一約束 unique 要求該列唯一,允許為空。檢查約束 check 某列取值範圍限制 格式等限制,如年齡的約束。非空約束 not null 某類內容不能為空...