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

MySQL數(shù)據(jù)庫表約束講解

 更新時間:2022年06月20日 14:39:32   作者:遛狗大師  
這篇文章主要介紹了MySQL數(shù)據(jù)庫表約束講解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

MySQL數(shù)據(jù)庫表約束

為了防止往數(shù)據(jù)表中插入錯誤的數(shù)據(jù),在MySQL中,定義了一些維護數(shù)據(jù)庫完整性的規(guī)則,即表的約束。

常見的表的約束:

上表中列舉的約束條件都是針對表中字段進行限制, 從而保證數(shù)據(jù)表中數(shù)據(jù)的正確性和唯一性。

一、主鍵約束

在MySQL中,為了快速查找表中的某條信息,可以通過設(shè)置主鍵來實現(xiàn)。主鍵約束是通過PRIMARY KEY定義的,它可以唯一標(biāo)識表中的記錄,這就好比身份證可以用來標(biāo)識人的身份一樣。

在MySQL中,主鍵約束分兩種,具體如下:

1、單字段主鍵

單字段主鍵指的是由一個字段構(gòu)成的主鍵,其基本語法如下:

上述案例中,表student創(chuàng)建了id、name和grade三個字段,其中id字段是主鍵。

2、多字段主鍵

多字段主鍵指的是多個字段組合而成的主鍵,其基本的語法格式如下所示:

上述案例中,表student創(chuàng)建了id、name和grade三個字段,其中id和name兩個字段組合可以唯一確定一條記錄。

【補充】一個表最多可以創(chuàng)建一個主鍵。

二、外鍵約束

如果表A的主鍵是表B中的字段,則該字段稱為表B的外鍵;另外表A稱為主表,表B稱為從表。外鍵是用來

實現(xiàn)參照完整性的,不同的外鍵約束方式將可以使兩張表緊密的結(jié)合起來,特別是修改或刪除的級聯(lián)操作將使

得日常維護更輕松。外鍵主要用來保證數(shù)據(jù)的完整性和一致性。其基本語法如下:

【補充】一個表允許有多個外鍵,且外鍵只適用于InnoDB表,MyISAM表不支持外鍵。

InnoDB表和MyISAM表的主要區(qū)別是:InnoDB表支持事務(wù)、行鎖和外鍵,MyISAM不支持;InnoDB表索引式修改效率較MyISAM高,MyISAM表查詢、插入和刪除效率較InnoDB高,而且MyISAM索引和數(shù)據(jù)分離,索引壓縮存儲,而InnoDB索引和數(shù)據(jù)緊密結(jié)合,不支持壓縮,所以MyISAM內(nèi)存利用率比InnoDB高;另外MyISAM的移植性也更強。

三、非空約束

非空約束指的是字段的值不能為NULL,在MySQL中,非空約束是通過NOT NULL定義的,其基本語法

如下:

上述案例中,表student包含id、name和grade三個字段。其中id為主鍵,name為非空字段。

【補充】一個表可以有多個非空約束字段。

四、唯一約束

唯一約束用于保存數(shù)據(jù)表中字段的唯一性,類似于主鍵,即表中字段值不能重復(fù)出現(xiàn)。

唯一約束是通過UNIQUE定義的,其基本語法如下:

上述案例中,表student包含id、name和grade三個字段。其中id為主鍵,name字段為唯一值,不能重復(fù)。

【補充】一個表可以有多個唯一約束字段。

五、默認(rèn)約束

默認(rèn)約束用于給數(shù)據(jù)表中的字段指定默認(rèn)值,即當(dāng)在表中插入一條新紀(jì)錄時,如果沒有給這個字段賦值,那么,數(shù)據(jù)庫系統(tǒng)會自動為這個字段插入默認(rèn)值。

默認(rèn)值是通過DEFAULT關(guān)鍵字定義的,其基本語法如下:

上述案例中,表student包含id、name和grade三個字段。其中id為主鍵,grade字段的默認(rèn)值為0。

【補充】一個表可以有多個默認(rèn)約束字段。

六、自增約束

在數(shù)據(jù)表中,若想為表中插入新記錄自動生成唯一的ID,可以使用AUTO_INCREMENT約束來實現(xiàn)。

AUTO_INCREMENT約束的字段可以是任何整數(shù)類型。默認(rèn)情況下,改字段的值是從1開始自增的。

其基本語法如下:

上述案例中,表student包含id、name和grade三個字段。其中id為主鍵,且沒插入一條新紀(jì)錄,id都會自動增加。

【補充】一個表只能設(shè)置一個自增約束字段。

數(shù)據(jù)庫建表的約束條件

常用約束條件及簡單介紹

primary key (PK) ? ? ?#標(biāo)識該字段為該表的主鍵,可以唯一的標(biāo)識記錄,主鍵就是不為空?? ?且唯一當(dāng)然其還有加速查詢的作用
foreign key (FK) ? ? ?#標(biāo)識該字段為該表的外鍵,用來建立表與表的關(guān)聯(lián)關(guān)系
not null ? ? ? ? ? ? ?#標(biāo)識該字段不能為空
unique key (UK) ? ? ? #標(biāo)識該字段的值是唯一的
auto_increment ? ? ? ?#標(biāo)識該字段的值自動增長(整數(shù)類型,而且為主鍵)
default ? ? ? ? ? ? ? #為該字段設(shè)置默認(rèn)值
unsigned ? ? ? ? ? ? ?#將整型設(shè)置為無符號即正數(shù)
zerofill ? ? ? ? ? ? ?#不夠使用0進行填充

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

相關(guān)文章

  • 關(guān)于MySql的kill命令詳解

    關(guān)于MySql的kill命令詳解

    這篇文章主要介紹了關(guān)于MySql的kill命令詳解,不知道你在使用 MySQL 的時候,有沒有遇到過這樣的現(xiàn)象:使用了 kill 命令,卻沒能斷開這個連接,今天我們就來講一講這個問題,需要的朋友可以參考下
    2023-05-05
  • mysql 5.7.11 安裝配置教程

    mysql 5.7.11 安裝配置教程

    這篇文章主要為大家詳細介紹了mysql 5.7.11 安裝配置教程,感興趣的小伙伴們可以參考一下
    2016-06-06
  • mysql數(shù)據(jù)庫備份設(shè)置延時備份方法(mysql主從配置)

    mysql數(shù)據(jù)庫備份設(shè)置延時備份方法(mysql主從配置)

    這篇文章主要介紹了mysql數(shù)據(jù)庫延時備份的方法,也就是mysql主從服務(wù)器備份,可以同步到多個服務(wù)器,最后我們提供了一個備份腳本,大家參考使用吧
    2013-12-12
  • 定時備份 Mysql并上傳到七牛的方法

    定時備份 Mysql并上傳到七牛的方法

    常見的 MySQL 數(shù)據(jù)備份方式有,直接打包復(fù)制對應(yīng)的數(shù)據(jù)庫或表文件(物理備份)、mysqldump 全量邏輯備份、xtrabackup 增量邏輯備份等。這篇文章主要介紹了定時備份 MySQL 并上傳到七牛 ,需要的朋友可以參考下
    2018-10-10
  • MySQL觸發(fā)器運用于遷移和同步數(shù)據(jù)的實例教程

    MySQL觸發(fā)器運用于遷移和同步數(shù)據(jù)的實例教程

    這篇文章主要介紹了MySQL觸發(fā)器運用于遷移和同步數(shù)據(jù)的實例教程,分別是SQL Server數(shù)據(jù)遷移至MySQL以及同步備份數(shù)據(jù)表記錄的兩個例子,需要的朋友可以參考下
    2015-12-12
  • mysql 常用數(shù)據(jù)庫語句 小練習(xí)

    mysql 常用數(shù)據(jù)庫語句 小練習(xí)

    一個mysql小練習(xí) 建表 查詢 修改表 增加字段 刪除字段
    2009-07-07
  • 還原大備份mysql文件失敗的解決方法分享

    還原大備份mysql文件失敗的解決方法分享

    今天在維護公司CRM的時候,恢復(fù)一個大的mysql數(shù)據(jù)庫,恢復(fù)失敗. 用下面方法解決(管理mysql用的是navicat).,設(shè)置以下幾個參數(shù)的值后就正常了,以下語句也可以在mysql的控制臺上執(zhí)行
    2012-09-09
  • 關(guān)于數(shù)據(jù)庫連接池Druid使用說明

    關(guān)于數(shù)據(jù)庫連接池Druid使用說明

    這篇文章主要介紹了關(guān)于數(shù)據(jù)庫連接池Druid使用說明,涉及Druid 參數(shù)和運行原理等等相關(guān)內(nèi)容,小編覺得挺不錯的,在這里給大家分享一下。
    2017-10-10
  • mysql 5.6.24 安裝配置方法圖文教程

    mysql 5.6.24 安裝配置方法圖文教程

    這篇文章主要為大家分享了mysql 5.7.14安裝配置方法圖文教程,感興趣的朋友可以參考一下
    2016-08-08
  • mysql中刪除數(shù)據(jù)的四種方法小結(jié)

    mysql中刪除數(shù)據(jù)的四種方法小結(jié)

    在MySQL數(shù)據(jù)庫中,刪除數(shù)據(jù)是一個常見的操作,它允許從表中移除不再需要的數(shù)據(jù),本文就來介紹一下四種方法,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10

最新評論