MySQL的學習入門四

一、SQL註釋

  1. 單行註釋
    -- 註釋說明 或 # 註釋說明
  2. 多行註釋
    /* */

在這裏插入圖片描述

二、數據完整性

  1. 實體完整性:
    • 主鍵約束
    • 唯一約束
    • 標識列
  2. 域完整性:
    • 數據類型約束
    • 非空約束
    • 默認值約束
  3. 引用完整性
    • 主外鍵約束
  4. 自定義完整性
    • 存儲過程
    • 觸發器

三、主表和從表

  1. 主表中沒有的,從表不允許插入。
  2. 從表中有的,主表中不允許刪除。
  3. 刪除主表中,先刪從表。

四、外鍵

外鍵只有在nnodb引擎才能支持外鍵。外鍵是從表中的公共字段。

  1. 創建主表:
    在這裏插入圖片描述

  2. 創建從表:
    在這裏插入圖片描述
    主表中沒有的,從表不允許插入:
    在這裏插入圖片描述
    先插入主表的數據,再插入從表數據:
    在這裏插入圖片描述
    從表中有的,主表中不允許刪除(要先刪從表再刪主表):
    在這裏插入圖片描述
    通過修改表的時候添加外鍵:
    alter table 從表名 add foreign key(公共字段) references 主表名(公共字段)

    刪除外鍵,通過外鍵的名字刪除外鍵:
    在這裏插入圖片描述

4.1 三種外鍵操作

4.1.1 嚴格限制

  1. 主表中沒有的,從表不允許插入。
  2. 從表中有的,主表中不允許刪除。
  3. 刪除主表中,先刪從表。

4.1.2 置空操作(set null)

如果主表記錄刪除,或關聯字段更新,則從表外鍵字段被設置爲null。

4.1.3 級聯操作(cascade)

如果主表記錄刪除,則從表記錄也被刪除,主表更新,從表外鍵字段也更新。
語法: foreign key(外鍵字段) references 主表名 (關聯字段) [主表記錄刪除時的動作] [主表記錄更新時的動作]
一般說刪除時置空,更新時級聯。

4.1.4 例題與小結

  1. 例題
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    現在來試試主表刪除和更新,從表是否也會刪除和更新:
    更新:
    在這裏插入圖片描述
    刪除:
    在這裏插入圖片描述

  2. 小結
    置空級聯操作中外鍵不能是從表的主鍵。

4.2 解決插入數據時主鍵衝突

創建表:

create table ct(
	id char(4) primary key,
	name varchar(20)
	) engine=innodb;

在這裏插入圖片描述

插入數據:

insert into ct values ('ct01', 'jack');

在這裏插入圖片描述
當再次插入數據:
在這裏插入圖片描述
如果插入的主鍵重複就會報錯。

  1. 解決方法一:如果插入的主鍵重複就執行替換。
    語法: replace into 表名 values ()
    在這裏插入圖片描述
    使用此語法如果數據不存在,可以直接插入:
    在這裏插入圖片描述
  2. 解決方法二:
    語法:on duplicate key update
    當插入的值與主鍵或唯一鍵有衝突執行update的操作:
    在這裏插入圖片描述
    推薦使用方法二。

在學習的MySQL的路上,如果你覺得本文對你有所幫助的話,那就請關注點贊評論三連吧,謝謝,你的肯定是我寫博的另一個支持。

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