資料庫常見的約束

2021-09-21 13:29:17 字數 3937 閱讀 8822

約束分為字段級別約束表級別約束

字段級約束:只為單個字段新增約束;表級約束:為乙個或多個字段新增約束 

primary key(不重複且不為null),not null,unique(不重複但是可以有多個null),auto_incremenrt,foreign key(name)reference table_ame(name)等

建立乙個資料庫表

create table user_info(

id char(36) primary key comment'主鍵',

user_name varchar(30) unique comment'唯一的',

password varchar(30) not null

)

指定主鍵。該約束強制欄位或字段組合必須具有唯一性且每個字段不能為空。可以為字段級別約束,也可以為表級別約束。

當新增的資料的id和資料庫中的一致,則會報錯,行使了主鍵的作用:

當新增的資料的id為空字串能新增成功:

當新增的資料的id為空null,則會報錯,行使了主鍵的作用:

指定字段不能為空,只能定義為字段級約束;

這兩條的password都不屬於空,可以新增成功到資料庫中,而下面的則不行:

指定欄位的值(或字段組合的值)對於表中所有的行必須是唯一的。對於無非空約束的字段,唯一鍵約束允許輸入空值,且包含空值的行可以有多個。可以為字段級別約束,也可以為表級別約束,表級約束時可以定義復合唯一鍵。新增兩條資料,user_name的值都是999,會報錯,unique行使了作用

新增兩條資料,user_name的值都是空字串,會報錯,unique行使了作用

包含空值的行可以有多個 ,user_name的值都是空null,正常執行

設定預設值

將下列資料庫表中的性別***列中設定預設值為0

create table user(

id char(36) primary key comment '主鍵',

user_name varchar(17) unique comment '使用者名稱',

password varchar(15) comment '密碼',

*** char(2) default 0 comment '性別'

)

當 新增資料時沒有新增***列的值時,但由於有預設值則資料庫中的***列中有預設值資料,如果沒有預設值新增相同的語句則***列為null

insert into user_m(id,user_name,password) values ('00023000-027a-42b8-8a76-ce03d411bd5d','000','000');

指定列值必須滿足check中條件,否則無法進行新增或修改;乙個字段可以定義多個check約束。注意:mysql資料庫不支援該約束!

資料庫學習 14 常見約束

一種限制,用於限制表中的資料,為了保證表中的資料的準確和可靠性。六大約束 1.建立表時 2.修改表時 1.列級約束 約束只能應用於一列上,六大約束語法上都支援,但外來鍵約束沒有效果 2.表級約束 可以應用於一列上,也可以應用在乙個表中的多個列上,除了非空 預設,其他的都支援 create table...

MySQL資料庫 常見約束詳解

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

資料庫的約束

資料庫的約束條件 新增約束 alter table 表名 add constraint 約束名 約束型別 具體說明 學生編號,主鍵約束 add constraint pk stuno primary key stuno 學生身份證號,唯一約束 add constraint uq stuid uniq...