## 主鍵
顧名思義:主要的鍵,primary key,在一張表中,有且只有一個字段,里面的值具有唯一性.
系統提供了兩種增加主鍵的方式:
隨表創建 :
1. 方案1:直接在需要當做主鍵的字段之后,增加primary key屬性來確定主鍵.
~~~
create table 表名(
id int primary key
);
~~~
2. 方案2:在所有字段之后增加primary key選項:primary key(字段信息).
~~~
create table 表名(
id int,
primary key(id)
);
~~~
表后創建 :
~~~
alter table 表名 add primary key(字段);
~~~
#### 刪除主鍵
~~~
alter table 表名 drop primary key;
~~~
#### 復合主鍵
場景 :有一張學生選修課表:一個學生可以選修多個選修課,一個選修課也可以由多個學生來選:但是一個學生在一個選修課中只有一個成績.
~~~
create table class(
name varchar(20) not null,
score tinyint unsigned,
primary key(name,score)
);
效果:
+-------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------------+------+-----+---------+-------+
| name | varchar(20) | NO | PRI | NULL | |
| score | tinyint(3) unsigned | NO | PRI | NULL | |
+-------+---------------------+------+-----+---------+-------+
~~~
#### 主鍵約束
主鍵一旦增加,那么對對應的字段有數據要求:
1. 當前字段對應的數據不能為空.
2. 當前字段對應的數據不能有任何重復.
#### 主鍵分類
主鍵分類采用的是主鍵所對應的字段的業務意義分類 :
1. 業務主鍵:主鍵所在的字段,具有業務意義(學生ID,課程ID).
2. 邏輯主鍵:自然增長的整型(應用廣泛).
- 數據庫介紹
- 數據庫基本概念
- SQL介紹
- MySQL服務端架構
- 庫操作
- 表操作
- 字段類型
- 整數類型
- 小數類型
- 字符串類型
- 日期/時間類型
- json類型
- 字段屬性
- Null
- 默認值
- 列描述
- 主鍵
- 自動增長
- 唯一鍵
- 數據庫基礎操作
- 增
- 刪
- 改
- 查
- 運算符
- 算術運算符
- 比較運算符
- 邏輯運算符
- in運算符
- is運算符
- like運算符
- 高級查詢
- 聯合查詢
- 連接查詢
- 交叉連接
- 內連接
- 外連接
- Using關鍵字
- 子查詢
- 標量子查詢
- 列子查詢
- 行子查詢
- 表子查詢
- exists子查詢
- 子查詢特定關鍵字
- 用戶權限管理
- 用戶管理
- 權限管理
- 外鍵
- 外鍵操作
- 外鍵基本要求
- 約束
- 視圖
- 事務安全
- 自動事務
- 手動事務
- 事務特點
- 變量
- 系統變量
- 會話變量
- 局部變量
- 流程結構
- if分支
- while循環
- 函數
- 內置函數
- 字符串函數
- 時間函數
- 數學函數
- 其他函數
- 存儲過程
- 與函數的區別
- 存儲過程操作
- 存儲過程的形參類型
- 觸發器
- 觸發器概念
- 觸發器操作