最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL六種約束的示例詳解

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

什么是約束

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

約束分類:

約束描述關(guān)鍵字
非空約束該字段數(shù)據(jù)不能為nullNOT NULL
唯一約束該字段數(shù)據(jù)唯一不重復(fù)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 '用戶信息表';

外鍵約束

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

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

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

如果沒有設(shè)置外鍵,僅僅是將子表開了一個字段對應(yīng)上了父表的主鍵字段在mysql層面是依舊沒有任何關(guān)系的。此時兩個表僅存在邏輯關(guān)系,無法保證數(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);

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

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

總結(jié):

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

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

相關(guān)文章

  • MySQL數(shù)據(jù)庫char與varchar的區(qū)別分析及使用建議

    MySQL數(shù)據(jù)庫char與varchar的區(qū)別分析及使用建議

    本文主要介紹了mysql中VARCHAR與CHAR字符型數(shù)據(jù)的差異以及這兩種字符型數(shù)據(jù)在項目中的使用建議,真心不錯。值得一看。小編有種受益匪淺的感覺。
    2014-09-09
  • MySQL配置文件my.cnf與my.ini的區(qū)別

    MySQL配置文件my.cnf與my.ini的區(qū)別

    在使用MySQL時,我們需要對其進行配置,以滿足我們的需求,本文主要介紹了MySQL配置文件my.cnf與my.ini的區(qū)別,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Linux下卸載MySQL數(shù)據(jù)庫

    Linux下卸載MySQL數(shù)據(jù)庫

    如何在Linux平臺卸載MySQL呢?這篇文章主要介紹了Linux下卸載MySQL數(shù)據(jù)庫的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • MySQL查詢緩存優(yōu)化示例詳析

    MySQL查詢緩存優(yōu)化示例詳析

    MySQL的優(yōu)化指的是一個很大的系統(tǒng),面試的時候我之前是從sql的語句優(yōu)化方面去說的,這種優(yōu)化也有作用,不過是從邏輯方面去優(yōu)化,下面這篇文章主要給大家介紹了關(guān)于MySQL查詢緩存優(yōu)化的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • linux 安裝 mysql 8.0.19 詳細步驟及問題解決方法

    linux 安裝 mysql 8.0.19 詳細步驟及問題解決方法

    這篇文章主要介紹了linux 安裝 mysql 8.0.19 詳細步驟,本文給大家列出了常見問題及解決方法,通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • mysql 日期和時間格式轉(zhuǎn)換實現(xiàn)語句

    mysql 日期和時間格式轉(zhuǎn)換實現(xiàn)語句

    對于每個類型擁有的值范圍以及并且指定日期何時間值的有效格式的描述見7.3.6 日期和時間類型。
    2009-10-10
  • mysql如何創(chuàng)建數(shù)據(jù)庫并指定字符集

    mysql如何創(chuàng)建數(shù)據(jù)庫并指定字符集

    這篇文章主要介紹了mysql如何創(chuàng)建數(shù)據(jù)庫并指定字符集問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • MySql官方手冊學(xué)習(xí)筆記1 MySql簡單上手

    MySql官方手冊學(xué)習(xí)筆記1 MySql簡單上手

    這是我學(xué)習(xí)MySql 5.1時做的一些整理與筆記,希望能理一理自己學(xué)到的東西,如果能有助于各位同道學(xué)習(xí)MySql那就更是意外之喜了,呵呵
    2012-10-10
  • MySQL 觸發(fā)器的使用及需要注意的地方

    MySQL 觸發(fā)器的使用及需要注意的地方

    這篇文章主要介紹了MySQL 觸發(fā)器的使用及需要注意的地方,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2021-01-01
  • MySQL必備的常見知識點匯總整理

    MySQL必備的常見知識點匯總整理

    這篇文章主要介紹了MySQL必備的常見知識點,結(jié)合實例形式匯總整理了mysql各種常見知識點,包括登錄、退出、創(chuàng)建、增刪改查、事務(wù)等知識點與操作注意事項,需要的朋友可以參考下
    2020-05-05

最新評論

太康县| 浮山县| 新泰市| 杭锦旗| 射阳县| 隆昌县| 绥宁县| 鹤峰县| 志丹县| 双峰县| 富源县| 兴安县| 汶川县| 辉南县| 麦盖提县| 四子王旗| 惠水县| 共和县| 彰化县| 临桂县| 阳曲县| 永丰县| 交城县| 金堂县| 兴义市| 湖州市| 海晏县| 依安县| 天柱县| 平顺县| 浮梁县| 台中县| 顺平县| 南靖县| 陇南市| 平顺县| 磴口县| 仪征市| 社旗县| 罗平县| 梅州市|