婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MySQL中常見的六個約束類型詳解

MySQL中常見的六個約束類型詳解

熱門標簽:臨清電話機器人 高清地圖標注道路 話務外呼系統怎么樣 云南電商智能外呼系統價格 拉卡拉外呼系統 大眾點評星級酒店地圖標注 外東北地圖標注 400電話可以辦理嗎 智能外呼系統復位

前言

在向數據表中插入數據時,有的時候對于插入的數據是有特殊要求的,比如學生成績不能為空,學生學號不能重復等等,這個時候約束就派上用場了。

約束類型是通過對表的行或列的數據做出限制,來確保表的數據的完整性、唯一性。這一章我們主要介紹六個常見的MySQL約束類型。

1. not null

保證指定不能存儲NULL值,如果插入NULL則插入失敗。

我們定義兩張數據表,分別是student表和student_copy表,student表設定相關約束,student_copy表作為其對照表,不設置任何約束來觀察兩者的區別。

student表中id定義了not null,所以id這一行的NULL = NO,意思是這一行數據不能為NULL,否則會插入失敗。

student_copy表中沒有進行任何約束,所以任何字段的NULL = YES,意味著用戶可以隨意插入空值而不會報錯。

Q:not null約束下除了顯式的指定插入NULL會報錯外,隱式的NULL會報錯嗎?

NULL指定有兩種方式,分別是顯式和隱式。

顯式指的是插入時設定該列為NULL,而隱式指的是插入時對該列沒有賦值,而這一列又沒有指定默認值,系統默認的默認值是NULL,所有這中情況下也會觸發插入控制的錯誤。

2. unique

保證某列的每行必須有唯一的值,也就是說,指定列的每行數據都不能重復。

下面兩張圖分別是對student表和student_copy表的操作,student表的id列設置了unique約束,所以在插入同樣的id = 1時會顯示重復操作。

student_copy表中沒有進行任何約束,意味著用戶可以隨意插入任意值而不會報錯。

Q:unique約束下插入NULL值會報錯嗎?

其實這個問題在剛才已經操作過了,student表中插入id = NULL,系統并不會報錯。unique只是保證存儲的值唯一,它可以是空值,但空值也得唯一,再插入NULL就會報錯。

3. default

規定沒有給列賦值時的默認值,換句話說就是,插入數據時沒有給指定列的值,那么其值就是defalut指定的默認值。

student表指定了name字段設置了default約束之后,default這一列就有了名字。當插入數據時,沒有指定name這一列,那么name這列就會按照我們設置的默認值 = '未命名'來填充。

而student_copy表沒有設置default約束,所以當插入數據時,沒有指定的列會按照系統默認的默認值來填充,也就是NULL。

4. primary key

not null + unique 的結合,保證某列具有唯一標識且不能存儲NULL值。

前幾個約束類型都是可以同時給多個列設置的,但是primary key一張表中只有能約束一列,使用primary key約束的列被稱為主鍵

和unique類型,插入的數據如果重復了,那么后一條數據會插入失敗,并且插入的數據不能為NULL。

一個表中只能由一列時主鍵,不能同時有多列是主鍵。設計表的時候,一般最好設定一個主鍵,常見的主鍵都是數字形式的。

自增主鍵auto_increment

在實際開發中,往往有一系列的策略來保證主鍵不重復,最常見的方法就是設置自增主鍵,系統可以自動給數據分配,用戶也可以同時手動進行干預,因為MySQL中內置了自增主鍵功能,所以使用非常簡單.

下圖中id這一列就變成了自增主鍵,用戶在插入數據時,就可以不必手動干預了.

Q:執行以下操作,猜想該表的查詢結果是什么?

已知Id字段設置為自增主鍵.

張三的id = null,由于自增主鍵按照順序它的id = 1;李四的id = 1,主鍵不能重復,李四的id和張三的id重復,所以插入失敗;繼續插入李四數據,此時設置id = 4,沒有和原有數據重復,所以插入成功;王五的id = null,按照自增主鍵接著上一個順序往下走,所以它的id = 5;

那么我們來看一下結果:

 

5. foreign key

外鍵用于關聯其他表的主鍵,保證一個表中的數據匹配另一個表中的值的參照完整性。

foreign key (字段名) references 主表(列)

下面我們舉個例子來理解下,我們現在創建兩張表并想把它們關聯起來,應該如何操作呢?

首先思考一下這個對應關系,一個學生對應一個班級,一個班級對應多個學生.在學生表中id為主鍵,那我們可以設置學生class_id為外鍵,去關聯比班級表.

創建班級表class,設置classsId為主鍵

create table class (
 id int primary key auto_increment,
 name varchar(20)
);

創建學生表student,設置id為主鍵

create table student (
 id int primary key auto_increment,
 name varchar(20),
 class_id int,
 foreign key (class_id) references class(id)
);

MUL表示外鍵約束;

外鍵的使用規則

學生表中的插入的班級Id,必須在班級表中存在;

班級表是空的,這個時候插入學生表數據并給class_id = 1,而班級號在班級表中是空的,所以插入失敗.學生表指定的這個外鍵約束,必須是班級表的主鍵;外鍵約束建立好了以后,此時班級表中的班級id就不能再隨意修改或刪除;

我們無法將班級表中id = 1的記錄修改為id = 20,因為學生表中的張三依賴于班級表id = 1這樣的結果.

外鍵的缺點

加入假如我們有下面這樣一個商品-訂單關聯的兩張表

此時我們可以使用訂單表中的商品id和商品表中的商品id建立外鍵約束,但是當訂單表中有了一個商品Id為1的記錄時,就無法刪除商品表中的id = 1的記錄了,那么這個數據就會持久的存下去,但是商品不一定永久存在,很有可能就下架了,這就是外鍵在關聯某些表時的矛盾所在.

如果我們既希望擁有外鍵約束的校驗功能,同時也希望可以解決當前的矛盾,那么我們可以進行邏輯刪除:給商品單獨添加一列,標識數據是否有效,設定flag = 1表示記錄有效,flag = 0表示記錄無效.需要刪除的商品,可以直接把它的標識改為0,邏輯上標識已經刪除了該商品,但實際上該數據還在表中存儲,并不是真正意義上的物理刪除.

6. check

保證列中的值符合指定的條件。

總結

到此這篇關于MySQL中常見的六個約束類型的文章就介紹到這了,更多相關MySQL常見約束類型內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • mysql完整性約束實例詳解
  • MySQL約束超詳解
  • MySQL約束類型及舉例介紹
  • 基于MySQL數據庫的數據約束實例及五種完整性約束介紹
  • MySQL學習之數據庫表五大約束詳解小白篇

標簽:三明 無錫 福州 山西 阿里 揚州 定西 溫州

巨人網絡通訊聲明:本文標題《MySQL中常見的六個約束類型詳解》,本文關鍵詞  MySQL,中,常見,的,六個,約束,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL中常見的六個約束類型詳解》相關的同類信息!
  • 本頁收集關于MySQL中常見的六個約束類型詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产午夜亚洲精品理论片色戒| 亚洲区小说区图片区qvod| 国产九色精品成人porny | 亚洲永久精品国产| 亚洲大片免费看| 黄页网站大全一区二区| 成人禁用看黄a在线| 欧洲精品一区二区三区在线观看| 在线播放欧美女士性生活| 色婷婷久久久亚洲一区二区三区| 欧美日韩免费视频| 久久综合九色综合久久久精品综合| 国产精品美女www爽爽爽| 亚洲国产精品久久一线不卡| 国产欧美一区二区三区网站| 亚洲激情图片小说视频| 国产一区二区精品久久| 欧洲亚洲国产日韩| 日韩免费福利电影在线观看| 亚洲综合成人网| 国产精品亚洲一区二区三区在线| 日本欧美一区二区三区乱码| 岛国精品一区二区| 91精品国产综合久久精品性色| 精品国产精品一区二区夜夜嗨| 中文字幕欧美一区| 美美哒免费高清在线观看视频一区二区| 国产91精品精华液一区二区三区 | 亚洲女子a中天字幕| 免费观看在线色综合| www.欧美日韩国产在线| 日韩一区二区免费在线电影| 18成人在线观看| 国产麻豆一精品一av一免费| 欧美日免费三级在线| 99久久久久久| 欧美日韩一区视频| 亚洲日本va午夜在线电影| 蜜臀av在线播放一区二区三区| 91精品办公室少妇高潮对白| 国内久久精品视频| 日韩欧美一区二区不卡| 亚洲国产日产av| 色综合久久综合网97色综合 | 一二三区精品福利视频| 成人国产视频在线观看| 欧美国产综合一区二区| 国产精品亚洲а∨天堂免在线| 轻轻草成人在线| 欧美一级免费大片| 日韩成人一级大片| 免费成人av在线| 欧美成人国产一区二区| 91精品国产综合久久久蜜臀粉嫩| 一区二区三区精品| 在线看国产一区| 亚洲在线中文字幕| 在线播放国产精品二区一二区四区| 亚洲精品亚洲人成人网在线播放| 波多野结衣一区二区三区| 欧洲av在线精品| 色综合久久久久久久久久久| 国产精品乱码妇女bbbb| 国产精品无遮挡| 91免费小视频| 亚洲激情图片qvod| 91精选在线观看| 免费人成黄页网站在线一区二区| 5月丁香婷婷综合| 狠狠色丁香婷婷综合久久片| 欧美激情一区二区三区在线| 精品视频1区2区| 婷婷综合在线观看| 久久久无码精品亚洲日韩按摩| 高清不卡一区二区| 亚洲成精国产精品女| 欧美一区三区四区| 成人动漫一区二区三区| 一区二区三区视频在线看| 欧美日韩欧美一区二区| 国产一区二区三区四区在线观看| 日韩三级.com| 99在线精品观看| 免费一级欧美片在线观看| 国产精品蜜臀在线观看| 色狠狠色噜噜噜综合网| 欧美老女人第四色| 99热这里都是精品| 蜜臀av一区二区在线免费观看| 国产一区在线观看麻豆| 亚洲精选一二三| 欧美一级日韩免费不卡| 91小视频在线免费看| 黑人巨大精品欧美黑白配亚洲| 自拍偷拍亚洲综合| 亚洲精品一区在线观看| 欧美在线一区二区| bt欧美亚洲午夜电影天堂| 欧美videossexotv100| 日韩影院精彩在线| 中文字幕日本不卡| 国产偷v国产偷v亚洲高清| 欧美一级一区二区| 欧美体内she精高潮| 波多野结衣在线一区| 91精品国产免费| 欧美日韩黄色一区二区| 国产精品久久久久久久浪潮网站| 日韩免费观看高清完整版在线观看| 日本久久一区二区| 成人av在线播放网址| 国产suv精品一区二区三区| 全部av―极品视觉盛宴亚洲| 亚洲精品乱码久久久久久久久| 亚洲国产激情av| 日本韩国一区二区三区| 色呦呦网站一区| 99这里只有久久精品视频| 成人网男人的天堂| 成人白浆超碰人人人人| 久久精品国产亚洲高清剧情介绍 | 色综合久久久久久久久| 99视频精品在线| 色综合中文综合网| 成人国产在线观看| 亚洲一区二区三区四区在线观看 | 久久亚洲综合色一区二区三区| 欧美精品一卡两卡| 欧美一区二区三区视频| 欧美一级日韩一级| 丝袜国产日韩另类美女| 婷婷夜色潮精品综合在线| 三级影片在线观看欧美日韩一区二区| 欧美日韩亚洲综合在线| 亚洲精品国产a| 亚洲va欧美va天堂v国产综合| 久久久久久久久99精品| 国产视频视频一区| 国产精品福利电影一区二区三区四区| 韩国欧美一区二区| 99re这里都是精品| 欧美午夜精品理论片a级按摩| 欧美一级高清片| 韩国女主播一区| 国产精品成人在线观看| 精品裸体舞一区二区三区| 欧美成人猛片aaaaaaa| 亚洲摸摸操操av| 亚洲不卡av一区二区三区| 久久99在线观看| 成人激情图片网| 在线免费亚洲电影| 精品捆绑美女sm三区| 国产欧美一区二区精品忘忧草| 1区2区3区国产精品| 日本不卡免费在线视频| 国产91丝袜在线播放| 欧美人狂配大交3d怪物一区| 国产亚洲精久久久久久| 日本少妇一区二区| 色先锋aa成人| 久久国产精品99精品国产| 欧美韩国日本不卡| 欧美日韩免费一区二区三区| 狠狠色狠狠色综合系列| 亚洲人成网站精品片在线观看| 3d动漫精品啪啪1区2区免费| 国产麻豆日韩欧美久久| 一区二区在线观看免费视频播放| 这里只有精品99re| jlzzjlzz亚洲女人18| 亚洲va韩国va欧美va| 久久亚洲综合色| 欧美色图免费看| 国产一区视频网站| 亚洲韩国精品一区| 亚洲一区二区视频在线观看| 欧美欧美欧美欧美| 成人av电影免费在线播放| 午夜精品成人在线| 中文成人综合网| 欧美一区二区人人喊爽| 91在线国产福利| 国产在线精品视频| 五月天视频一区| 亚洲精品国产无天堂网2021 | 洋洋成人永久网站入口| 精品美女一区二区| 91久久线看在观草草青青| 国产老女人精品毛片久久| 亚洲成人三级小说| 国产精品麻豆久久久| 久久免费视频色| 国产精品自在欧美一区| 日本特黄久久久高潮| 一区二区在线电影| 国产女主播一区| 久久亚洲捆绑美女| 精品成人在线观看| 精品久久久网站|