更新時間:2021-08-16 10:48:23 來源:動力節點 瀏覽1065次
要求主鍵列的數據唯一,且不允許為空。主鍵能夠唯一的標識表中的每一條記錄,可以結合外鍵來定義不同數據表之間的關系,并且可以加快數據庫查詢的速度。
主鍵分為:單字段主鍵和多字段聯合主鍵。
(1)單字段主鍵
1)定義方式一:在定義列的同時指定主鍵
2)定義方式二:在定義完所有的列之后指定主鍵
(2)多字段聯合主鍵
外鍵用來在兩個表之間建立連接,可以是一列或多列。一個表的外鍵可以是空值,若不為空值,則每一個外鍵值必須等于另一個表中主鍵的某個值。
外鍵可以不是本表的主鍵,但對應另外一個表的主鍵。作用是保證數據的完整性和一致性。
主表:相關聯字段中主鍵所在的那個表即是主表
從表:相關聯字段中外鍵所在的那個表即是從表
創建一個部門表作為主表,讓其主鍵作為外鍵關聯到員工表的主鍵id
在表tb_emp5上添加了名稱為fk_emp_dept1的外鍵約束,外鍵名稱為deptId,其依賴于表tb_dept1的主鍵id
Not Null Constraint,指字段的值不能為空。對于使用了非空約束的字段,如果用戶在添加數據時沒有指定值,數據庫會報錯
指定員工姓名不能為空
Unique Constraint,要求該列唯一,允許為空,但只能出現一個空值,唯一約束可以保證一列或幾列不出現重復值
(1)定義方式一:在定義完列之后直接指定唯一約束
指定部門名稱唯一
(2)定義方式二:在定義完所有的列之后指定唯一約束
唯一約束和主鍵的區別:
一個表中有多個字段可以聲明為UNIQUE,但只能聲明一個PRIMARY KEY,主鍵的列不能有空值,但聲明UNIQUE的列可以允許空值的存在
如果插入一條新的記錄時沒有為這個字段賦值,那么系統會自動為這個字段賦值為默認值
指定員工的部門編號默認為1111
為主鍵添加AUTO_INCREMENT關鍵字來實現,讓主鍵自增,默認的初始值是1
一個表只有一個字段只用此約束,且該字段必須為主鍵的某一列,可以是任何整數類型(tinyint/smallint/int/bigint)
指定員工的編號自動遞增,每次新添加一條記錄,該值自動加1
新增加三條數據測試
使用select命令查看記錄,得到主鍵值是依次遞增的
以上就是動力節點小編介紹的"SQL創建數據庫表",希望對大家有幫助,想了解更多可查看數據庫教程。動力節點在線學習教程,針對沒有任何Java基礎的讀者學習,讓你從入門到精通,主要介紹了一些Java基礎的核心知識,讓同學們更好更方便的學習和了解Java編程,感興趣的同學可以關注一下。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習