MySQL - 表的創建_列的完整性約束_主鍵約束

設置表字段的主鍵約束(PRIMARY KEY,PK)

主鍵是表的一個特殊字段,能唯一標識該表中的每條信息。主鍵和記錄的關係,如同身份證和人的關係。主鍵用來標識每個記錄,每個記錄的主鍵值都不同。身份證用來表明人的身份,每個人都具有唯一的身份證號。設置表的主鍵是指在創建表時設置表的某個字段爲該表的主鍵。

主鍵的主要目的是幫助數據庫管理系統以最快的速度查找到表的某一條信息。主鍵必須滿足的條件就是主鍵必須是唯一的,表中任意兩條記錄的主鍵字段的值不能相同,並且是非空值。主鍵可以是單一的字段,也可以是多個字段的組合。

1. 單字段主鍵

單字段主鍵的語法規則如下:
CREATE TABLE tablename(
propName propType PRIMARY KEY, …
);

CREATE TABLE tablename(
propName propType , …
PRIMARY KEY(propType)
);

創建表school,設置id字段爲PK約束,再查看class表信息,SQL語句如下

mysql> create database school;   #創建數據庫school
mysql> use school;   #選擇數據庫school 
mysql> create table class(id int PRIMARY KEY, name varchar(128), teacher varchar(64));         #創建表class
mysql> desc class ;  #查詢表class 的定義, describe class 效果等同
mysql> show create table class ;  #同樣可以實現查詢表class 的定義
mysql> insert into class VALUES(1,'一班','martin');  #插入成功
mysql> insert into class VALUES(1,'二班','rock');    #因主鍵約束,插入失敗

具體操作如下

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
Mysql 支持給主鍵設置名字:
CREATE TABLE tablename(
propName propType , …
CONSTRAINT pk_name PRIMARY KEY(propType)
);

給id字段的PK約束設置一個名字,可以執行SQL語句CONSTRAINT。創建表class:

mysql> create database school;   #創建數據庫school
mysql> use school;   #選擇數據庫school 
mysql> create table class(id int , name varchar(128), teacher varchar(64), CONSTRAINT id_pk PRIMARY KEY (id));         #創建表class
mysql> desc class ;  #查詢表class 的定義, describe class 效果等同
mysql> show create table class ;  #同樣可以實現查詢表class 的定義
mysql> insert into class VALUES(1,'一班','martin');  #插入成功
mysql> insert into class VALUES(1,'二班','rock');    #因主鍵約束,插入失敗

具體操作如下

在這裏插入圖片描述

2.多字段主鍵

主鍵是由多個屬性組合而成時,在屬性定義完之後統一設置主鍵。語法規則如下:
CREATE TABLE tablename(
propName1 propType ,
propName2 propType ,

[CONSTRAINT pk_name]PRIMARY KEY(propName1, propName2)
);

多字段主鍵的設置。

mysql> create database school;   #創建數據庫school
mysql> use school;   #選擇數據庫school 
mysql> create table class3(id int, name varchar(128), teacher varchar(64), CONSTRAINT id_pk PRIMARY KEY(id,name));         #創建表class3,設置聯合主鍵
mysql> desc class3 ;  #查詢表class3 的定義, describe class3 效果等同
mysql> insert into class VALUES(1,'一班','martin');  #插入成功
mysql> insert into class VALUES(1,'一班','rock');    #因聯合主鍵約束,插入失敗

具體操作

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

結語:

這時間高考下午, 考數學.

時間: 2020-07-07

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章