這章接上一章數據表的基本操作,因爲我也是剛開始學習,只有自己學懂了纔敢寫博客,再加上自己比較笨,所以更新比較慢
爲了防止數據表中插入錯誤的數據,在 MySQL 中,定義了一些維護數據庫完整性的規則,唔 就是表的約束,先看下面的
在mysql中有五種約束:
主鍵
爲了快速查找表中的某條信息,可以通過設置主鍵來實現。主鍵約束是通過PRIMATY KEY 定義的,它可以唯一標識表中的記錄
在 mysql中,主鍵約束分爲兩種
注意:每個數據表中最多只能有一個主鍵約束,定義爲 PRIMATY KEY的字段不能有重複值 且不能爲 NULL值
單字段主鍵:
單字段主鍵指的是由一個字段構成的主鍵: 語法如下:
字段名 數據類型 PRIMATY KEY
列如:
多字段主鍵:
多字段主鍵指的是多個字段組合而成的主鍵
語法如下:
PRIMARY KEY (字段名 1,字段名 2,…,字段名 n)
列如:
創建一個數據表student在表中將id 和name 兩個字段共同作爲主鍵,
SQL 語句如下:
CREATE TABLE student(
id INT,
name char,
grade FLOAT,
PRIMARY KEY(id,name)
);
非空約束
非空約束指的是字段的值不能爲 NULL ,在 MYSQL中,非空約束是通過 NOT NULL 定義的,
基本的語法格式:
字段名 數據類型 NOT NULL;
在這裏需要注意的是:在同一個數據表中可以定義多個非空字段。
例如:
創建一個數據表student在表中將id 設爲主鍵約束,將name設爲非空約束
CREATE TABLE sutdent(
id INT PRIMARY KEY, #主鍵約束
name char(10) NOT NULL #非空約束
);
唯一約束
唯一約束用於保證數據表中字段的唯一性,即表中字段的值不能重複出現。
比如我們的身份證號,就是唯一的,唯一約束是通過UNIQUE 定義的語法如下
字段名 數據類型 UNIQUE
列如:
創建一個數據表 test1,將表中的id設置爲唯一約束,
SQL 語句如下:
CREATE TABLE test1 (
id INT PRIMARY KEY,
id INT UNIQUE,
name VARCHAR(20) NOT NULL
);
默認約束
默認約束用於給數據表中的字段指定默認值,也就是說當在表中插入一條新記錄時,如果沒有給這個字段賦值,那麼,數據庫系統會自動爲這個字段插入默認值。默認值是通過DEFAULT 關鍵字定義的,
其基本的語法格式如下所示:
字段名 數據類型 DEFAULT 默認值
創建一個數據表 test2,將表中的 age字段的默認值設置爲18`,
SQL 語句如下:
CREATE TABLE test2 (
id INT PRIMARY KEY,
name char(10),
age int DEFAULT 18
);
設置表的字段值自動增加
在數據表中,若想爲表中插入的新記錄自動生成唯一的 ID ,可以使用AUTO_INCREMENT約束來實現。 這個就類似我們數據表的序號,每添加一條
記錄,序號就自動+1,AUTO_INCREMENT 約束的字段可以是任何整數類型
語法;
字段名 數據類型 AUTO_INCREMENT
例如:
創建一個數據表test3,將表中的id字段設置爲自動增加,
sql語句如下:
CREATE TABLE test3 (
id INT PRIMARY KEY AUTO_INCREMENT ,
name INT UNIQUE,
grade FLOAT
);