MySQL
MySQL基礎
上一篇MySQL基礎語法
MySQL簡介以及MySQL中InnoDB 與 MyISAM 引擎的區別
主鍵
-
格式: primary key 用來約束該字段中數據(是唯一的),不能重複,不能爲空,一張表中只能有一個主鍵,主鍵所在的列通常是整數類型。
-
具體的使用:
(auto_increment) 這是自增,使用之後插入數據可以不用去特意朝 good_id 中插入,會自動生成數字從1.開始的序號,但是不負責重置
專業解釋:
auto_increment:當對應的字段,不給值,會自動的被系統觸發,系統會從當前字段中已經有的最大值+1操作,得到一個新的不同的值。通常和主鍵搭配使用,作爲邏輯主鍵。 -
自增長的特點:
- 任何一個字段要做自增長,前提是本身是一個索引(key一欄有值)
- 自增長字段必須是整數
- 一張表最多只能有一個自增長
create table goods(
goods_id int primary key auto_increment comment '商品id',
goods_name varchar(60) comment '商品名稱',
unitprice float(7,2) comment '單價',
category varchar(20) comment '商品類別',
provider varchar(32) comment '供應商'
);
-- 表創建之後追加主鍵
alter table goods add primary key good_id;
-- 刪除主鍵
alter table goods drop primary key;
MySQL兩種註釋格式:
--- MySQL
/*
MySQL
*/
設置唯一鍵
- 根據現實生活中許多數據都只能是唯一的,比如一個人的身份證號碼,因此數據庫中設置這樣的特殊字使得數據變得唯一
這個特殊字是: unique。 - 唯一鍵可以允許爲空
- 唯一鍵可以有多個
- 代碼演示:
create table customer(
customer_id int primary key auto_increment comment '客戶編號',
customer_name varchar(20) comment '客戶姓名',
address varchar(60) comment '地址',
Email varchar(60) unique comment '郵箱',
gender enum('男','女') not null comment '性別',
crad_id char(18) unique comment '身份證號'
);
- 這個表將身份證號與郵箱設置爲唯一鍵,這意味其他的客戶不能使用同一個身份證號
- 這裏還有一個關鍵字 enum 設置枚舉方便以後添加修改而不是直接去修改表
外鍵
-
外鍵的含義:
外鍵用於定義主表和從表之間的關係:外鍵約束主要定義在從表上,主表則必須是有主鍵約束或unique約束。當定義外鍵後,要求外鍵列數據必須在主表的主鍵列存在或爲null。 -
外鍵的語法
foreign key (字段名) references 主表(列)
外鍵實際上是將表與表之間關聯在了一起,這也符合我們的現實生活
- 設立外鍵一定要注意表的創建順序
1.首先要創建主表:
create table customer(
customer_id int primary key auto_increment comment '客戶編號',
customer_name varchar(20) comment '客戶姓名',
address varchar(60) comment '地址',
Email varchar(60) unique comment '郵箱',
gender enum('男','女') not null comment '性別',
crad_id char(18) unique comment '身份證號'
);
2.在創建從表:
create table purchase(
order_id int primary key auto_increment comment '訂單編號',
customer_id int comment '客戶編號',
foreign key (customer_id) references customer(customer_id),
goods_id int comment '商品id',
foreign key (goods_id) references goods(goods_id),
nums int comment '購買數量'
);
這裏將customer中的customer_id設爲 purchase表中的customer_id 的外鍵