mysql怎麼約束 MySQL 約束詳解

2021-10-19 01:54:31 字數 1078 閱讀 6274

mysql 約束詳解

mysql 中的約束是用來保證資料的完整性的機制。資料完整性一般有以下三種形式:

實體完整性:保證表中有乙個主鍵。

域完整性:保證資料每列的值滿足特定條件。

引用完整性:保證兩張表之間的引用關係。

以上三種形式的完整性在 mysql 中都有相應約束進行保證。

使用主鍵和唯一鍵約束可以保證實體完整性;使用外來鍵、合適和資料型別、觸發器或者 default 關鍵字也可以保證域完整性;使用外來鍵和觸發器可以保證引用完整性。可見 mysql 提供了以下幾種約束:

primary key

unique key

foreign key

default

not null

觸發器primary key、unique key 和 foreign key 約束

primary key 用於約束唯一主鍵,唯一標識表中的每一條記錄,主鍵對應的列不允許有 null 值和重複值,每個表都應該只有乙個主鍵(包含 unique 約束)。

unique key 用於約束唯一索引,唯一標識表中的每一條記錄,與 primary key 的區別在於可以有多個列同時被定義為 unique key。

foreign key 用於保證域和參照的完整性。外來鍵當**現的值必須在其他表中為主鍵。同時當父表發生變化時,對子表的操作可以有 4 種方案:cascade(刪除子表對應的行)、set null(將子表對應行置空)、no action、restrict。

對錯誤資料的約束

mysql 允許非法的或不正確的資料的插入或更新,例如向 not null 的列中插入乙個 null 值,那麼此時 mysql 會將 null 值更改為 0 值插入。如果想要 mysql 在使用者插入錯誤資料時進行報錯而不是警告,需要設定引數 sql_mode。

enum 和 set 約束

用來約束離散值在乙個集合以內。如果是連續值和範圍的約束需要通過觸發器去實現。

觸發器與約束

觸發器的作用是在執行 insert、delete 和 update 命令之前或之後自動呼叫 sql 命令或儲存過程。乙個表可以建立 6 個觸發器,即 3 個操作 after 和 before 各建乙個。

mysql中的約束怎麼寫 MySql 常見約束

常見約束 含義 一種限制,用於限制表中的資料,為了保證表中的資料的準確和可靠性 分類 六大約束 not null 非空,用於保證該字段的值不能為空 比如姓名 學號等 default 預設,用於保證該字段有預設值 比如性別 primary key 主鍵,用於保證該字段的值具有唯一性,並且非空 比如學號...

mysql怎麼約束 mysql 約束

4 約束 1 對乙個列新增的約束叫列級約束。對兩個或兩個以上的列新增的約束叫做表級約束。2 表級約束只能在字段後面新增,列級約束既可以新增在字段後面,也可以在最後新增。3 非空 預設只存在列級約束。主鍵 唯 一 外來鍵都既有表級約束又有列級約束。4 約束有 primary key 主鍵 unique...

mysql 新增約束 mysql怎麼新增約束?

在mysql資料庫中,建表時就可以進行對錶的各項進行一些操作,例如新增主鍵約束或者非空約束 也可以在建表後進行新增約束和刪除約束的操作。下面本篇文章就來帶大家具體了解一下,希望對大家有所幫助。什麼是約束?約束實際上就是表中資料的限制條件 目的是為了保證表中的記錄完整和有效。常用的約束有 1 非空約束...