更新時間:2021-08-16 10:48:23 來源:動力節(jié)點 瀏覽1278次



要求主鍵列的數(shù)據(jù)唯一,且不允許為空。主鍵能夠唯一的標識表中的每一條記錄,可以結(jié)合外鍵來定義不同數(shù)據(jù)表之間的關(guān)系,并且可以加快數(shù)據(jù)庫查詢的速度。
主鍵分為:單字段主鍵和多字段聯(lián)合主鍵。
(1)單字段主鍵
1)定義方式一:在定義列的同時指定主鍵

2)定義方式二:在定義完所有的列之后指定主鍵

(2)多字段聯(lián)合主鍵

外鍵用來在兩個表之間建立連接,可以是一列或多列。一個表的外鍵可以是空值,若不為空值,則每一個外鍵值必須等于另一個表中主鍵的某個值。
外鍵可以不是本表的主鍵,但對應(yīng)另外一個表的主鍵。作用是保證數(shù)據(jù)的完整性和一致性。
主表:相關(guān)聯(lián)字段中主鍵所在的那個表即是主表
從表:相關(guān)聯(lián)字段中外鍵所在的那個表即是從表
創(chuàng)建一個部門表作為主表,讓其主鍵作為外鍵關(guān)聯(lián)到員工表的主鍵id

在表tb_emp5上添加了名稱為fk_emp_dept1的外鍵約束,外鍵名稱為deptId,其依賴于表tb_dept1的主鍵id
Not Null Constraint,指字段的值不能為空。對于使用了非空約束的字段,如果用戶在添加數(shù)據(jù)時沒有指定值,數(shù)據(jù)庫會報錯
指定員工姓名不能為空

Unique Constraint,要求該列唯一,允許為空,但只能出現(xiàn)一個空值,唯一約束可以保證一列或幾列不出現(xiàn)重復(fù)值
(1)定義方式一:在定義完列之后直接指定唯一約束
指定部門名稱唯一

(2)定義方式二:在定義完所有的列之后指定唯一約束

唯一約束和主鍵的區(qū)別:
一個表中有多個字段可以聲明為UNIQUE,但只能聲明一個PRIMARY KEY,主鍵的列不能有空值,但聲明UNIQUE的列可以允許空值的存在
如果插入一條新的記錄時沒有為這個字段賦值,那么系統(tǒng)會自動為這個字段賦值為默認值
指定員工的部門編號默認為1111

為主鍵添加AUTO_INCREMENT關(guān)鍵字來實現(xiàn),讓主鍵自增,默認的初始值是1
一個表只有一個字段只用此約束,且該字段必須為主鍵的某一列,可以是任何整數(shù)類型(tinyint/smallint/int/bigint)
指定員工的編號自動遞增,每次新添加一條記錄,該值自動加1

新增加三條數(shù)據(jù)測試

使用select命令查看記錄,得到主鍵值是依次遞增的

以上就是動力節(jié)點小編介紹的"SQL創(chuàng)建數(shù)據(jù)庫表",希望對大家有幫助,想了解更多可查看數(shù)據(jù)庫教程。動力節(jié)點在線學(xué)習(xí)教程,針對沒有任何Java基礎(chǔ)的讀者學(xué)習(xí),讓你從入門到精通,主要介紹了一些Java基礎(chǔ)的核心知識,讓同學(xué)們更好更方便的學(xué)習(xí)和了解Java編程,感興趣的同學(xué)可以關(guān)注一下。