MySQL中檢查約束舉例詳細(xì)講解
一. 簡介
檢察約束屬于DDL
約束可以理解成一種校驗(yàn)方式
一共有5種約束,現(xiàn)在分別講解一下
- 主鍵約束(Primary Key)
不允許為空
不允許有重復(fù)值出現(xiàn)
保證數(shù)據(jù)的唯一性
- 外鍵約束(Foreign Key)
允許有空值
允許有重復(fù)
值必須是參照表的參照列中所包含的值
保證數(shù)據(jù)的參照完整性
- 唯一性約束(Unique)
相同值只能出現(xiàn)一次
允許為多個(gè)列添加唯一性約束
保證數(shù)據(jù)的唯一性
- 非空約束(Not Null)
列中不能有空值
允許重復(fù)值
允許為多個(gè)列添加非空約束
保證數(shù)據(jù)沒有空值
- 檢查約束(Check)
用戶自己定義約束條件
保證數(shù)據(jù)滿足自定義的條件約束
MySQL 目前不支持檢查約束
二. 主鍵約束(primary key)
1. 添加主鍵約束
alter table 表名 add primary key(列名)
例

顯然這里的id字段(列)要設(shè)置成主鍵
alter table students add primary key(id);
因?yàn)槭侵麈I,那么在當(dāng)前表中是唯一的
如果主鍵是 int 型,那么就可以使用自動(dòng)增長
alter table 表名 modify 主鍵 類型 auto_increment
alter table student modify id int auto_increment

2. 刪除主鍵
alter table 表名 drop primary key
alter table students drop primary key;
三. 外鍵約束(Foreign Key)
1. 添加外鍵
alter table 表名 add constraint 約束名 foreign key(列名) references 參照的表名(參照的列名)單詞:
constraint : 約束
references:引用
alter table students add constraint fk_students_courses foreign key (course_id) references courses(id);
2. 刪除外鍵
alter table 表名 drop foreign key 約束名
alter table students drop foreign key fk_students_courses;
四. 唯一性約束(Unique)
1. 添加唯一約束
alter table 表名 add constraint 約束名 unique(列名)
alter table students add constraint uk_students_name unique (name);
2. 刪除唯一約束
alter table 表名 drop key 約束名
alter table students drop key uk_students_name;
五. 非空約束(Not Null)
1. 添加非空約束
alter table 表名 modify 列名 類型 not null單詞:
modify:修改
在修改的時(shí)候添加非空約束
alter table students modify name varchar(50) not null;
2. 刪除非空約束
alter table modify 列名 類型 null
alter table students modify name varchar(50) null;
六. 創(chuàng)建表時(shí)添加約束
直接可以在創(chuàng)建的時(shí)候順便添加約束
create table enhanced_students (
-- 添加主鍵約束,并自動(dòng)增長
id int auto_increment primary key,
-- 添加非空約束(不能為空)
name varchar(50) not null,
gender enum('男', '女') not null,
-- 添加唯一約束
students_name varchar(30) unique
);
七. 總結(jié)

到此這篇關(guān)于MySQL中檢查約束的文章就介紹到這了,更多相關(guān)MySQL檢查約束內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL存儲(chǔ)過程全面解析以及和Java的類比教程
存儲(chǔ)過程是一種在MySQL數(shù)據(jù)庫中定義和執(zhí)行的可重復(fù)使用的程序單元,它允許我們將一系列的 SQL 語句組織在一起,并通過一個(gè)簡單的調(diào)用來執(zhí)行它們,這篇文章主要介紹了MySQL存儲(chǔ)過程全面解析以及和Java類比的相關(guān)資料,需要的朋友可以參考下2025-09-09
在數(shù)據(jù)庫里將毫秒轉(zhuǎn)換成date格式的方法
經(jīng)常會(huì)將日期時(shí)間的毫秒數(shù)存放到數(shù)據(jù)庫,但是它對(duì)應(yīng)的時(shí)間看起來就十分不方便,可以使用一些函數(shù)將毫秒轉(zhuǎn)換成date格式2014-05-05
mysql中int、bigint、smallint 和 tinyint的區(qū)別詳細(xì)介紹
最近使用mysql數(shù)據(jù)庫的時(shí)候遇到了多種數(shù)字的類型,主要有int,bigint,smallint和tinyint;接下來將詳細(xì)介紹以上三種類型的應(yīng)用2012-11-11
mysql 5.7.17 winx64解壓版安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了mysql 5.7.17 winx64解壓版安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
MySQL轉(zhuǎn)換Oracle的需要注意的七個(gè)事項(xiàng)
有很多應(yīng)用項(xiàng)目, 剛起步的時(shí)候用MySQL數(shù)據(jù)庫基本上能實(shí)現(xiàn)各種功能需求,隨著應(yīng)用用戶的增多,數(shù)據(jù)量的增加,MySQL漸漸地出現(xiàn)不堪重負(fù)的情況:連接很慢甚至宕機(jī),于是就有MySQL轉(zhuǎn)換Oracle的需求,應(yīng)用程序也要相應(yīng)做一些修改。2010-12-12

