MySQL基礎,主鍵,外鍵,唯一鍵

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 的外鍵

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