MySQL 表的約束

2021-08-28 14:57:04 字數 1604 閱讀 6486

為了防止錯誤資料的產生,在mysql中定義了一些維護資料庫完整性的規則即表的約束,

如下表所示:

表的約束

約束條件

說明primary key

主鍵約束,用於標識唯一對應的記錄(例如賬號)

foreign key

外來鍵約束

not null

非空約束

unique

唯一性約束

default

預設值約束

在mysql中為了快速找到某條資訊,可以通過設定主鍵來實現

主鍵分為兩種  1.單字段主鍵    2.多欄位主鍵

單字段主鍵指的是由乙個字段構成的主鍵,其格式如下:

欄位名 資料型別 primary key
建立乙個新的ex01表,並設定id為主鍵  sql語句如下所示:

create table ex01(id int primary key,

name varchar(20),

grade float);

多欄位主鍵是指多個字段組合而成的主鍵,其最基本的語法為:

primary key(欄位名1,欄位名2,,,,,欄位名n)
例如建立乙個ex01資料表,在表中將stu_id和course_id兩個字段共同作為主鍵,語句如下:

create table ex02(stu_id int,

course_id int,

name varchar(20),

primary key(stu_id,course_id)

);

非空約束指的是字段的值不能為null,其基本語法如下:

欄位名 資料型別 not null;
例如建立乙個ex04表,將表中name欄位設定為非空約束sql語句如下:

create table ex04(id int,

name varchar(20) not null,

grade float);

唯一約束用於保證資料表中字段的唯一性,及表中字段的之不能重複出現,其基本格式如下:

欄位名 資料型別 unique
例如建立乙個ex05表,將表中stu_id設定成唯一約束,sql語句如下所示:

create table ex05(stu_id int unique,

id int primary key,

name varchar(20) not null

);

預設約束用於設定表中字段的指定預設值,基本語法如下所示:

欄位名 資料型別 defaulf 預設值;
例如建立乙個ex06表,將表中的grade欄位設定為預設為一,其sql語句如下所示:

create table ex06(id int primary key auto_increment,

stu_id int unique,

grade float default 0);

Mysql 表的約束

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

MySQL 表的約束

create table tt6 age tinyint not null,name varchar 5 not null,char 2 default 男 建立乙個名為tt6的字段,age欄位為tinyint型,不可為空,name欄位為varchar 5 不可為空,欄位為char 2 型別,預設值...

MySQL表的約束

為了保證資料的合法性,也可以說是資料的正確性,需要在屬性上加一些約束,在表的角度下屬性就是乙個列的屬性。1.空屬性 在乙個表中,有些屬性是不能為空的,如乙個學生資訊表中,學生姓名 學號等不能為空。空屬性有兩個值 null 預設的 和not null 不為空 在前面建立表時,屬性都是預設空的,因此我們...