亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL六種約束的示例詳解

 更新時間:2023年02月21日 08:59:53   作者:綠仔牛奶_  
約束是作用于表中字段上的規(guī)則,用于限制存儲在表中的數(shù)據(jù)。這篇文章主要為大家整理了一下MySQL中六種約束的用法,感興趣的可以了解一下

什么是約束

作用于表上的規(guī)則,限制存儲在表中的數(shù)據(jù)

約束分類:

約束描述關鍵字
非空約束該字段數(shù)據(jù)不能為nullNOT NULL
唯一約束該字段數(shù)據(jù)唯一不重復UNIQUE
主鍵約束一行數(shù)據(jù)的唯一標識(非空且唯一)PRIMARY KEY
默認約束未指定該字段值則使用默認值DEFAULT
檢查約束(8.0.16以后)該字段值滿足某一條件CHECK
外鍵約束為兩張表建立連接(數(shù)據(jù)一致、完整)FOREIGN KEY

創(chuàng)建表示例:

CREATE TABLE info(
	`id` INT UNIQUE auto_increment PRIMARY KEY COMMENT'ID唯一標識',
	`name` VARCHAR(10) NOT NULL UNIQUE COMMENT'姓名',
	`age` INT CHECK(age > 0 && age < 120) COMMENT '年齡',
	`status` CHAR(1) DEFAULT'1' COMMENT'狀態(tài)',
	`gender` CHAR(1) COMMENT'性別'
)COMMENT '用戶信息表';

外鍵約束

外鍵通常用來為兩張表建立連接,兩張利用外鍵連接的表被稱為父子表。

子表當中會設定一個外鍵字段用于關聯(lián)父表的主鍵字段

即擁有外鍵的表是子表(從表),該外鍵對應另一個表的主鍵這個表稱之為父表

如果沒有設置外鍵,僅僅是將子表開了一個字段對應上了父表的主鍵字段在mysql層面是依舊沒有任何關系的。此時兩個表僅存在邏輯關系,無法保證數(shù)據(jù)的完整性和一致性

創(chuàng)建外鍵語法:

-- 在創(chuàng)建表時創(chuàng)建
CREATE TABLE son(
	...
	CONSTRAINT [外鍵名稱] FOREIGN KEY(外鍵字段名) REFERENCES 主表名(主表主鍵字段名)
);
-- 創(chuàng)建表后為表添加主鍵
ALTER TABLE 表名	ADD CONSTRAINT 外鍵名稱 FOREIGN KEY(外鍵字段名) REFERENCES 主表(主表主鍵字段名)
-- 刪除外鍵
alter table 表名 drop foreign key 外鍵名稱;

創(chuàng)建示例:

# 父表
CREATE TABLE father(
	`id` INT auto_increment PRIMARY KEY COMMENT'父表ID',
	`name` VARCHAR(20) NOT NULL COMMENT'姓名',
	`password` VARCHAR(20) DEFAULT(0000)
);
INSERT INTO father VALUES(null,'小三','1234'),(null,'小四','1234'),(null,'小五','1234'),(null,'小六','1234');
# 子表
CREATE TABLE son(
	`id` INT auto_increment PRIMARY KEY COMMENT'子表ID',
	`status` varchar(10) COMMENT '狀態(tài)',
	`fa_id` INT COMMENT'外鍵',
	CONSTRAINT fk_father_son FOREIGN KEY(fa_id) REFERENCES father(id)
);
INSERT INTO son VALUES(null,'活',2),(null,'活',3),(null,'死',3),(null,'活',2);

上述示例 子表設置了外鍵,字段名為fa_id并關聯(lián)到了父表主鍵id,外鍵名稱為fk_father_son

創(chuàng)建完成后,我們添加幾組數(shù)據(jù)。將幾個son添加到表中,并設置外鍵字段屬性為某個father。比如(null,‘活’,3),那么此時如果我們嘗試去刪除父表id=3的這一行數(shù)據(jù),就會提示錯誤。因為兩個表已經(jīng)在mysql層面上進行了關聯(lián)

總結(jié):

  • 從表的外鍵通常是主表的主鍵
  • 從表中外鍵的類型必須與主表中的主鍵類型一致
  • 主表數(shù)據(jù)發(fā)生變化時應注意從表數(shù)據(jù)的一致性問題

到此這篇關于MySQL六種約束的示例詳解的文章就介紹到這了,更多相關MySQL六種約束內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MySQL部署時提示Table mysql.plugin doesn’t exist的解決方法

    MySQL部署時提示Table mysql.plugin doesn’t exist的解決方法

    這篇文章主要介紹了MySQL部署時Table mysql.plugin doesn't exist的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • mysql設置指定ip遠程訪問連接實例

    mysql設置指定ip遠程訪問連接實例

    這篇文章主要介紹了mysql設置指定ip遠程訪問連接的方法,分別實例講述了從任意主機和指定ip訪問遠程MySQL數(shù)據(jù)庫的方法,代碼簡單功能實用,需要的朋友可以參考下
    2014-10-10
  • MySQL中數(shù)據(jù)庫優(yōu)化的常見sql語句總結(jié)

    MySQL中數(shù)據(jù)庫優(yōu)化的常見sql語句總結(jié)

    這篇文章主要為大家總結(jié)了一些MySQL中數(shù)據(jù)庫優(yōu)化的常見sql語句,文中的示例代碼講解詳細,對我們學習MySQL有一定幫助,需要的可以參考一下
    2022-08-08
  • Mysql Update批量更新的幾種方式

    Mysql Update批量更新的幾種方式

    今天小編就為大家分享一篇關于Mysql Update批量更新的幾種方式,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • MySQL中通過EXPLAIN如何分析SQL的執(zhí)行計劃詳解

    MySQL中通過EXPLAIN如何分析SQL的執(zhí)行計劃詳解

    這篇文章主要給大家介紹了關于MySQL中通過EXPLAIN如何分析SQL的執(zhí)行計劃的相關資料,文中通過圖文以及示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的安康學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-08-08
  • MySQL?數(shù)據(jù)庫?增刪查改、克隆、外鍵?等操作總結(jié)

    MySQL?數(shù)據(jù)庫?增刪查改、克隆、外鍵?等操作總結(jié)

    這篇文章主要介紹了MySQL?數(shù)據(jù)庫?增刪查改、克隆、外鍵?等操作,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • 綠色版 mysql 安裝配置

    綠色版 mysql 安裝配置

    好多朋友對于mysql的配置不是很清楚,其實最新本的配置也是這樣的,建議大家到s.jb51.net去下載一些服務器軟件。
    2009-06-06
  • 基于一致性hash算法(consistent hashing)的使用詳解

    基于一致性hash算法(consistent hashing)的使用詳解

    本篇文章對一致性hash算法(consistent hashing)的使用進行了詳細的分析介紹。需要的朋友參考下
    2013-05-05
  • Centos中安裝多個mysql數(shù)據(jù)的配置實例

    Centos中安裝多個mysql數(shù)據(jù)的配置實例

    最近因為單位項目擴充,需要在原線上數(shù)據(jù)庫服務器上加裝一個mysql實例(實際上就是從新編譯安裝一個非3306的自定義端口,不同目錄的mysql),研究了一天,終于順利搞定,這里把配置步驟發(fā)給大家,供大家學習使用
    2014-04-04
  • MySQL InnoDB 二級索引的排序示例詳解

    MySQL InnoDB 二級索引的排序示例詳解

    這篇文章主要給大家介紹了關于MySQL InnoDB 二級索引的排序的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01

最新評論