為了防止錯誤資料的產生,在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 不為空 在前面建立表時,屬性都是預設空的,因此我們...