MySQL筆記 表的約束

2021-09-21 18:20:11 字數 1405 閱讀 7069

空屬性

name varchar(20) not null
預設值

age tinyint unsigned default 0
預設值生效:資料在插入的時候不給該字段賦值,就使用預設值

列描述*** char(2) default '男' comment '性別'

desc tablename    //檢視不到注釋資訊

show create table tablename    //可以看到

zerofill屬性

如果寬度小於設定的寬度,自動填充0

主鍵

id int unsigned primary key comment '學號不能為空'
create table tt14(

id int unsigned, 

course char(10) comment '課程**',

score tinyint unsigned default 60 comment '成績', 

primary key(id, course) //id和course為復合主鍵

);

這裡第二種方式還可以在表建立好以後,進行追加主鍵

alter table 表名 add primary key(字段列表)
主鍵約束:主鍵對應的字段中不能夠重複,一旦重複,操作失敗

刪除主鍵

alter table 表名 drop primary key
自增長

auto_increment:當對應的字段,不給值,會自動被系統觸發,從當前欄位中已有的最大值+1操作,得到乙個新的不同的值,通常和主鍵搭配使用,作為邏輯主鍵

id int unsigned primary key auto_increment
條件

唯一鍵

一張表中往往需要多個欄位都具有唯一性,但是主鍵只能有乙個,唯一鍵就用來解決該問題

唯一鍵允許為空,而且可以多個為空,空字段不做唯一性比較

id char(10) unique comment '學號,不能重複,但可以為空'
外來鍵

用於定義主表和從表之間的關係:外來鍵約束主要定義在從表上,主表則必須是有主鍵約束或者unique約束,當定義外來鍵後,要求外來鍵列資料必須在主表的主鍵存在或為空

foreign key (欄位名) references 主表(列)

學習筆記 MySQL 表的約束(主鍵約束)

學習筆記 一.主鍵約束 primary key 主鍵約束的字段值不能相同不能為空,效果同 not null unique 相同 但是主鍵約束後的字段有索引值 如下圖 二.兩種寫法 1.列級約束 create table t user id int 4 primary key,name varchar...

Mysql 表的約束

約束型別 說明主鍵約束 primary key 要求主鍵列資料唯一,並且不允許空。主鍵可以包含表的一列或多列,如果包含火烈,則序號在表級定義。唯一約束 unique 要求該列唯一,允許為空。檢查約束 check 某列取值範圍限制 格式等限制,如年齡的約束。非空約束 not null 某類內容不能為空...

MySQL 表的約束

為了防止錯誤資料的產生,在mysql中定義了一些維護資料庫完整性的規則即表的約束,如下表所示 表的約束 約束條件 說明primary key 主鍵約束,用於標識唯一對應的記錄 例如賬號 foreign key 外來鍵約束 not null 非空約束 unique 唯一性約束 default 預設值約...