MySQL中數據庫的約束,表的設計和CRUD的一些進階操作

1.數據庫的約束

約束:數據庫針對數據進行一系列的校驗,如果發現數據不符合約束中描述的校驗規則,就會插入失敗,主要是爲了提高數據的正確性。

約束類型:

1》NOT NULL - 指示某列不能存儲 NULL 值。
在這裏插入圖片描述
在這裏插入圖片描述
2》 UNIQUE - 保證某列的每行必須有唯一的值。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
3》 DEFAULT - 規定沒有給列賦值時的默認值。
在這裏插入圖片描述
在這裏插入圖片描述
4》 PRIMARY KEY - NOT NULL 和 UNIQUE 的結合。確保某列(或兩個列多個列的結合)有唯一標 識,有助於更容易更快速地找到表中的一個特定的記錄。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
保證主鍵不重複,可以藉助數據庫自動生成“auto_increment"。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
建議直接把自增部分寫爲null,若表中沒有任何記錄,會從1開始,若存在,會從上一條記錄開始自動增加。
在這裏插入圖片描述

注意,如果把之前某個數據刪除了,再次插入,剛纔刪除掉的自增主鍵的值不會被重複利用。
在這裏插入圖片描述

5》 FOREIGN KEY - 保證一個表中的數據匹配另一個表中的值的參照完整性。

有時插入的數據並不合理,但也能插入成功。
在這裏插入圖片描述
在這裏插入圖片描述

加入外鍵後,這樣再往student 裏面插入數據時,MySQL就會自動檢查classId裏面的字段值是否再class中的id列出現過,如果沒有,就會插入失敗。
在這裏插入圖片描述
在這裏插入圖片描述
由於這個外鍵,直接刪除class是不行的,因爲他被其他表關聯着。
在這裏插入圖片描述

6》 CHECK - 保證列中的值符合指定的條件。對於MySQL數據庫,對CHECK子句進行分析,但是忽略 CHECK子句

2.表的設計

MySQL中是不存在數組類型的

1》一對一

2》一對多

3》多對多

這裏的studentId和courseId最好設置成外鍵。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

3.進階CRUD操作

1》新增
查詢結果可作爲被插入的對象插入到表中(查詢得到的列的數目,順序,類型需要和被插入的表的列的數目,順序,類型一樣)
在這裏插入圖片描述
2》查詢
聚合查詢(一般需要搭配MySQL中的一些內置函數)

count:計算結果的行數
(是不算null的個數的)
在這裏插入圖片描述
在這裏插入圖片描述

聚合函數:

COUNT([DISTINCT] expr) 返回查詢到的數據的 數量
SUM([DISTINCT] expr) 返回查詢到的數據的 總和,不是數字沒有意義
在這裏插入圖片描述
AVG([DISTINCT] expr) 返回查詢到的數據的 平均值,不是數字沒有意義
在這裏插入圖片描述
MAX([DISTINCT] expr) 返回查詢到的數據的 最大值,不是數字沒有意義
在這裏插入圖片描述
MIN([DISTINCT] expr) 返回查詢到的數據的 最小值,不是數字沒有意義
在這裏插入圖片描述

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