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

Mysql數(shù)據(jù)庫(kù)之約束條件詳解

 更新時(shí)間:2025年01月10日 16:48:50   作者:_BooI  
本文介紹了數(shù)據(jù)庫(kù)表中的主鍵約束、非空約束、唯一約束、默認(rèn)值約束和外鍵約束,并舉例說(shuō)明了如何在創(chuàng)建表和修改表時(shí)設(shè)置這些約束

一、主鍵約束

主鍵約束(PRIMARY KEY constraint)用于唯一標(biāo)識(shí)數(shù)據(jù)庫(kù)表中的每條記錄。

語(yǔ)法:

create table 表名 (
列名1 數(shù)據(jù)類(lèi)型 primary key,
列名2 數(shù)據(jù)類(lèi)型,
...
);

在主鍵的后面添加:auto_increment, 可以讓主鍵自增。

設(shè)置auto_increment之后,可以不用設(shè)置id, id會(huì)自增。

創(chuàng)建表之后再創(chuàng)建主鍵的語(yǔ)法:alter table 表名 add primary key (列名1, 列名2, ...);

二、非空約束

非空約束是一種數(shù)據(jù)庫(kù)約束,用于確保表中的某個(gè)列不接受空值。當(dāng)為表的某個(gè)列定義了非空約束后,插入或更新該列時(shí),必須提供非空的值。

語(yǔ)法:

create table 表名 (
列名 數(shù)據(jù)類(lèi)型 not null,
...
);

創(chuàng)建表之后再設(shè)置非空的語(yǔ)法:alter table 表名 modify 列名 數(shù)據(jù)類(lèi)型 not null;

三、唯一約束

唯一約束是一種數(shù)據(jù)庫(kù)約束,用于確保表中的某個(gè)列或一組列的值是唯一的,即不允許重復(fù)值。唯一約束是一種數(shù)據(jù)完整性措施,它可以保證數(shù)據(jù)的唯一性和一致性。

語(yǔ)法:

create table 表名 (
列名2 數(shù)據(jù)類(lèi)型 unique,
...
);

在創(chuàng)建好的表中添加唯一約束:alter table 表名 add constraint 約束名 unique (列名1, 列名2, ...);

四、默認(rèn)值約束

默認(rèn)值約束是一種數(shù)據(jù)庫(kù)約束,用于在插入數(shù)據(jù)時(shí),如果未顯式為列指定值,則自動(dòng)使用指定的默認(rèn)值,是一種數(shù)據(jù)完整性措施,它確保了在缺少顯式值的情況下,表中的列始終具有默認(rèn)值。

語(yǔ)法:

Create table 表名 (
列名1 數(shù)據(jù)類(lèi)型 default 默認(rèn)值,
列名2 數(shù)據(jù)類(lèi)型 default 默認(rèn)值,
...
);

在創(chuàng)建好的表中添加默認(rèn)值約束:alter table 表名 alter colum 列名 set default 默認(rèn)值;

五、外鍵約束

外鍵約束是一種數(shù)據(jù)庫(kù)約束,用于在相關(guān)表之間建立關(guān)聯(lián)關(guān)系,保持?jǐn)?shù)據(jù)的完整性和一致性。

外鍵約束可以確保在一個(gè)表中的列值必須在另一個(gè)表中存在。

語(yǔ)法:

Create table 表名 (
列名1 數(shù)據(jù)類(lèi)型,
列名2 數(shù)據(jù)類(lèi)型,
...
foreign key (列名) references 關(guān)聯(lián)表名(關(guān)聯(lián)列名)
);

例:作者和文章的關(guān)系是:1:N, 外鍵存在多的一方,所以外鍵設(shè)在文章表, 所以先創(chuàng)建作者表。

創(chuàng)建作者表:

創(chuàng)建文章表,并設(shè)置外鍵:

在創(chuàng)建好的表中添加外鍵約束(約束名自己命名):

alter table 表名 add constraint 約束名 foreign key (列名) references 關(guān)聯(lián)表名(關(guān)聯(lián)列名);

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL HandlerSocket插件安裝配置教程

    MySQL HandlerSocket插件安裝配置教程

    這篇文章主要介紹了MySQL HandlerSocket插件安裝配置,包括PHP HandlerSocket插件的安裝配置,需要的朋友可以參考下
    2014-04-04
  • 實(shí)現(xiàn)MySQL回滾的Python腳本的編寫(xiě)教程

    實(shí)現(xiàn)MySQL回滾的Python腳本的編寫(xiě)教程

    這篇文章主要介紹了實(shí)現(xiàn)MySQL回滾的Python腳本的編寫(xiě)教程,文中的回滾針對(duì)的是DELETE語(yǔ)句的數(shù)據(jù)庫(kù)誤操作,需要的朋友可以參考下
    2015-11-11
  • linux下mysql的root密碼忘記的解決方法

    linux下mysql的root密碼忘記的解決方法

    這篇文章主要為大家詳細(xì)介紹了linux下mysql的root密碼忘記的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • MySQL開(kāi)啟慢查詢?nèi)罩緇og-slow-queries的方法

    MySQL開(kāi)啟慢查詢?nèi)罩緇og-slow-queries的方法

    MySQL中提供了一個(gè)慢查詢的日志記錄功能,可以把查詢SQL語(yǔ)句時(shí)間大于多少秒的語(yǔ)句寫(xiě)入慢查詢?nèi)罩荆粘>S護(hù)中可以通過(guò)慢查詢?nèi)罩镜挠涗浶畔⒖焖贉?zhǔn)確地判斷問(wèn)題所在
    2016-05-05
  • 一文搞定MySQL binlog/redolog/undolog區(qū)別

    一文搞定MySQL binlog/redolog/undolog區(qū)別

    這篇文章主要介紹了一文搞定MySQL binlog/redolog/undolog區(qū)別,作為開(kāi)發(fā),我們重點(diǎn)需要關(guān)注的是二進(jìn)制日志(binlog)和事務(wù)日志(包括redo log和undo log),本文接下來(lái)會(huì)詳細(xì)介紹這三種日志,需要的朋友可以參考下
    2023-04-04
  • MySQL中幾種數(shù)據(jù)統(tǒng)計(jì)查詢的基本使用教程

    MySQL中幾種數(shù)據(jù)統(tǒng)計(jì)查詢的基本使用教程

    這篇文章主要介紹了幾種MySQL中數(shù)據(jù)統(tǒng)計(jì)查詢的基本使用教程,包括平均數(shù)和最大最小值等的統(tǒng)計(jì)結(jié)果查詢方法,是需要的朋友可以參考下
    2015-12-12
  • MySql?explain命令返回結(jié)果詳細(xì)介紹

    MySql?explain命令返回結(jié)果詳細(xì)介紹

    explain?是MySql提供的SQL語(yǔ)句查詢性能的工具,是我們優(yōu)化SQL的重要指標(biāo)手段,要看懂explain返回的結(jié)果集就尤為重要,這篇文章主要介紹了MySql?explain命令返回結(jié)果解讀,需要的朋友可以參考下
    2023-09-09
  • mysql 8.0.12 解壓版安裝教程

    mysql 8.0.12 解壓版安裝教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.12 解壓版安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • 把MySQL卸載干凈的超詳細(xì)步驟

    把MySQL卸載干凈的超詳細(xì)步驟

    這篇文章主要介紹了把MySQL卸載干凈的超詳細(xì)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考價(jià)值,需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)吧
    2024-02-02
  • MySQL中distinct和count(*)的使用方法比較

    MySQL中distinct和count(*)的使用方法比較

    這篇文章主要針對(duì)MySQL中distinct和count(*)的使用方法比較,對(duì)兩者之間的使用方法、效率進(jìn)行了詳細(xì)分析,感興趣的小伙伴們可以參考一下
    2015-11-11

最新評(píng)論