欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL約束類型及舉例介紹

 更新時間:2018年10月17日 15:08:52   作者:no-96  
今天小編就為大家分享一篇關于MySQL約束類型及介紹的文章,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

約束 

  • 約束保證數據的完整性和一致性
  • 約束分為表級約束和列級約束
  • 約束類型包括:NOT NULL (非空約束),PRIMARY KEY(主鍵約束),UNIQUE KEY(唯一約束),DEFAULT(默認約束),F(xiàn)OREIGN(外鍵約束)

1.主鍵約束

  • PRIMARY KEY
  • 每張數據表只能存在一個主鍵
  • 主鍵保證記錄的唯一性,主鍵的值不重復
  • 主鍵自動為 NOT NULL

舉例,創(chuàng)建一張student表,將學號設置為主鍵創(chuàng)建完表之后,通過SHWO COLUMNS FROM student查看表結構

CREATE TABLE student(
id int PRIMARY KEY,
stu_name varchar(20)
);

2.唯一約束

  • UNIQUE KEY
  • 唯一約束可以保證記錄的唯一性
  • 唯一約束的字段可以為空值(NULL)
  • 每張數據表可以存在多個唯一約束

舉例,創(chuàng)建一個teacher表,id字段自增,tea_name唯一

CREATE TABLE teacher(
id int AUTO_INCREMENT PRIMARY KEY,
tea_name varchar(20) NOT NULL UNIQUE KEY
);

3.默認約束

  • DEFAULT
  • 當插入記錄時,如果沒有明確為字段賦值,則自動賦予默認值

舉例,創(chuàng)建一張course表,默認上課時間為40分鐘

CREATE TABLE course(
id int AUTO_INCREMENT PRIMARY KEY,
cou_name varchar(20) NOT NULL UNIQUE KEY,
time int DEFAULT 40
);
INSERT INTO course(cou_name) values('語文');

4.非空約束

  • NOT NULL
  • 強制列不能為 NULL 值,約束強制字段始終包含值。
  • 這意味著,如果不向字段添加值,就無法插入新記錄或者更新記錄。

舉例,在 "Persons" 表創(chuàng)建時在 Id列、name列創(chuàng)建 not null 約束:

create table Persons(
id int not NULL,
p_name varchar(20) not null, 
deparment varchar(20),
address varchar(20),
telNum varchar(20)
)
DESC Persons;

5.外鍵約束

  • FOREIGN KEY
  • 保持數據的一致性,完整性
  • 實現(xiàn)1對1或1對n關系

1.父表與子表必須使用相同的存儲引擎,而且禁止使用臨時表。
2.數據表的存儲引擎只能是InnoDB
3.外鍵列和參照列必須具有相似的數據類型。其中數字的長度或是否有符號位必須相同;而字符的長度則可以不同。
4.外鍵列和參照列必須創(chuàng)建索引。如果外鍵列不存在索引的話,MySQL將自動創(chuàng)建索引。

CREATE TABLE school(
id int AUTO_INCREMENT PRIMARY KEY,
sname varchar(20) NOT NULL
);
CREATE TABLE student2(
id int AUTO_INCREMENT PRIMARY KEY,
sid int,
FOREIGN KEY (sid) REFERENCES school(id)
);

外鍵約束的參照操作

  • CASCADE : 從父表刪除或更新且自動刪除或更新子表中匹配的行
  • 父表中被引用的列刪除了某個數據,子表中刪除對應數據的行
CREATE TABLE student3(
id int AUTO_INCREMENT PRIMARY KEY,
sid int,
FOREIGN KEY (sid) REFERENCES school(id) ON DELETE CASCADE
);
  • SET NULL:從父表刪除或更新行,并設置子表的外鍵列為NULL。如果使用該項,必須保證子表列沒有指定NOT NULL
  • 父表中刪除數據,將子表中的引用設置為NULL
  • RESTRICT:拒絕對父表的刪除或更新操作
  • NO ACTION:標準SQL的關鍵字,在MySQL中與RESTRICT相同

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

相關文章

  • MySQL限制查詢和數據排序介紹

    MySQL限制查詢和數據排序介紹

    這篇文章主要介紹了MySQL限制查詢和數據排序介紹,通過limit可以限制返回結果的行數,而當數據查詢出來以后,我們可以對數據進行排序處理。在末尾使用order?by語句,下文相關詳細介紹,需要的小伙伴可以參考一下
    2022-03-03
  • mysql實現(xiàn)向某個字段前或后添加字符

    mysql實現(xiàn)向某個字段前或后添加字符

    這篇文章主要介紹了mysql實現(xiàn)向某個字段前或后添加字符,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • mysql between實現(xiàn)選取介于兩個值之間的數據范圍

    mysql between實現(xiàn)選取介于兩個值之間的數據范圍

    這篇文章主要介紹了mysql between實現(xiàn)選取介于兩個值之間的數據范圍,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • MYSQL輸入密碼后閃退現(xiàn)象的解決方法

    MYSQL輸入密碼后閃退現(xiàn)象的解決方法

    最近在啟動MySQL服務端并輸入密后,出現(xiàn)閃退現(xiàn)象,實際上這種問題很常見,下面這篇文章主要給大家介紹了關于MYSQL輸入密碼后閃退現(xiàn)象的解決方法,文中介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • 往MySQL中存儲圖片的方法

    往MySQL中存儲圖片的方法

    這篇文章主要介紹了往MySQL中存儲圖片的方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • mysql8.0.11 winx64安裝配置教程

    mysql8.0.11 winx64安裝配置教程

    這篇文章主要為大家詳細介紹了mysql8.0.11 winx64安裝配置教程,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • MySQL索引優(yōu)化實例分析

    MySQL索引優(yōu)化實例分析

    這篇文章主要介紹了MySQL索引優(yōu)化實例分析,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-07-07
  • mysql跨庫事務XA操作示例

    mysql跨庫事務XA操作示例

    這篇文章主要介紹了mysql跨庫事務XA操作,結合實例形式分析了php+mysql實現(xiàn)跨庫事務XA操作具體操作步驟與相關注意事項,需要的朋友可以參考下
    2019-04-04
  • Mysql忘記root密碼怎么辦

    Mysql忘記root密碼怎么辦

    MySQL有時候忘記了root密碼是一件傷感的事,下面通過本文給大家介紹Mysql忘記root密碼怎么辦的相關知識,需要的朋友參考下
    2016-01-01
  • mysql導入導出數據的示例詳解

    mysql導入導出數據的示例詳解

    本文主要介紹了MySQL 導出和導入數據的幾種實現(xiàn)方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-05-05

最新評論