MySQL基本操作(三)關于約束

主鍵約束:

主鍵 (PRIMARY KEY)是用于約束表中的一行,作為這一行的標識符,在一張表中通過主鍵就能準確定位到一行,因此主鍵十分重要。行中的主鍵不能有重復且不能為空。
比如我要創建一個


Paste_Image.png

該表ts_name為主鍵約束,暫且不管Default。
代碼:

CREATE TABLE test(ts_name CHAR(20) PRIMARY KEY,ts_num INT(10));

默認值約束:

默認值約束 (DEFAULT) 規定,當有 DEFAULT 約束的列,插入數據為空時,將使用默認值。

Paste_Image.png

該圖中ts_rum的Default為10,我們并沒有插入數據,為什么Default的值會是10呢

CREATE TABLE test(ts_name CHAR(20) PRIMARY KEY,ts_num INT(10) DEFAULT(10));

唯一約束:

當 INSERT 語句新插入的數據和已有數據重復的時候,如果有 UNIQUE約束,則 INSERT 失敗,比如:

Paste_Image.png

我把test2表的te_id設置為唯一約束,那么

Paste_Image.png

上圖插入數據是正確的

Paste_Image.png

上圖插入數據會報錯,因為Bob的te_id跟Tom的te_id一樣了,這就是唯一約束的作用
下面代碼是建表是的唯一約束示例:

CREATE TABLE test2(te_name CHAR(20) PRIMARY KEY,te_id INT,UNIQUE(te_id));

外鍵約束:

外鍵 (FOREIGN KEY) 既能確保數據完整性,也能表現表之間的關系。
一個表可以有多個外鍵,每個外鍵必須 REFERENCES (參考) 另一個表的主鍵,被外鍵約束的列,取值必須在它參考的列中有對應值。
[CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name, ...)
REFERENCES tbl_name (index_col_name,...)
[ON DELETE reference_option]
[ON UPDATE reference_option]
示例:

Paste_Image.png

實現外鍵約束的代碼:

CONSTRAINT emp_fk FOREIGN KEY(in_dpt) REFERENCES department(dpt_name)
Paste_Image.png

上圖出現錯誤,因為設置了外鍵約束但是在department表中dpt_name沒有'dpt3'這個數據,我們要先插入這行數據

Paste_Image.png

這樣在department表的dpt_name中有數據'dpt3'
那么再打一遍剛才會報錯的代碼

Paste_Image.png

這樣就沒有問題了,這就是外鍵約束的作用。

非空約束:
非空約束 (NOT NULL),聽名字就能理解,被非空約束的列,在插入值時必須非空。在MySQL中違反非空約束,不會報錯,只會有警告,5.6 版本以上的 MySQL 會報錯,禁止插入不符合非空約束的數據。

salary INT(10) NOT NULL,

表示salary不能為空

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,763評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,238評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,823評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,604評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,339評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,713評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,712評論 3 445
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,893評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,448評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,201評論 3 357
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,397評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,944評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,631評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,033評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,321評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,128評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,347評論 2 377

推薦閱讀更多精彩內容

  • 1、MySQL啟動和關閉(安裝及配置請參照百度經驗,這里不再記錄。MySQL默認端口號:3306;默認數據類型格式...
    強壯de西蘭花閱讀 674評論 0 1
  • 第1章 初涉MySQL 1.1 MySQL文件 (1)MySQL目錄結構 (2)MySQL配置向導文件(安裝后配置...
    凜0_0閱讀 810評論 1 0
  • SQL語言基礎 本章,我們將會重點探討SQL語言基礎,學習用SQL進行數據庫的基本數據查詢操作。另外請注意本章的S...
    厲鉚兄閱讀 5,342評論 2 46
  • “我以前是個寫小說的人。”我對白果說。 她瞪了我一眼就拿著書走了。 “誒,你別走啊,有什么問題我教你啊。”她頭也沒...
    伊澤說閱讀 317評論 0 1
  • file_put_contents() 函數把一個字符串寫入文件中。 file_put_contents()在寫入...
    Sund4y閱讀 861評論 0 0