公司名稱大全兩個字引擎搜索優(yōu)化
目錄
一.創(chuàng)建一張表,包含以下所有數(shù)據(jù)類型
建表:?編輯
二.使用以下六種約束
1.非空約束
2.唯一約束
3.主鍵約束
4.外鍵約束
5.檢查約束
6.默認值約束
一.創(chuàng)建一張表,包含以下所有數(shù)據(jù)類型
Text 類型:
Number 類型:
注意:這些整數(shù)類型擁有額外的選項 UNSIGNED。通常,整數(shù)可以是負數(shù)或正數(shù)。如果添加 UNSIGNED屬性,那么范圍將從 0 開始,而不是某個負數(shù)。
Date 類型:
?
常用數(shù)據(jù)類型:
建表:
?
二.使用以下六種約束
NOT NULL非空
UNIQUE Key唯一鍵
PRIMARY KEY主鍵
FOREIGN KEY外鍵
CHECK檢查
默認值約束
表的約束示例:
1、非空約束(NOT NULL)
列級約束,只能使用列級約束語法定義。
確保字段值不允許為空
只能在字段級定義CREATE TABLE tb_student(
? ? id INT PRIMARY KEY AUTO_INCREMENT,
? ? NAME VARCHAR(18) NOT NULL
)NULL
所有數(shù)據(jù)類型的值都可以是NULL。
空字符串不等于NULL。
0也不等于NULL。
2、唯一約束
唯一性約束條件確保所在的字段或者字段組合不出現(xiàn)重復(fù)值
唯一性約束條件的字段允許出現(xiàn)多個NULL
同一張表內(nèi)可建多個唯一約束
唯一約束可由多列組合而成
建唯一約束時MySQL會為之建立對應(yīng)的索引。
如果不給唯一約束起名,該唯一約束默認與列名相同。CREATE TABLE tb_student(
? ? id INT PRIMARY KEY AUTO_INCREMENT,
? ? NAME VARCHAR(18) UNIQUE NOT NULL
)
3、主鍵約束
主鍵從功能上看相當(dāng)于非空且唯一
一個表中只允許一個主鍵
主鍵是表中唯一確定一行數(shù)據(jù)的字段
刪除表的約束
自動增長和默認值
存儲引擎
主鍵字段可以是單字段或者是多字段的組合
當(dāng)建立主鍵約束時,MySQL為主鍵創(chuàng)建對應(yīng)的索引
主鍵約束名總為PRIMARY。CREATE TABLE tb_student(
? ? id INT PRIMARY KEY AUTO_INCREMENT,
? ? NAME VARCHAR(18)
)4、外鍵約束
外鍵是構(gòu)建于一個表的兩個字段或者兩個表的兩個字段之間的關(guān)系
外鍵確保了相關(guān)的兩個字段的兩個關(guān)系:
子(從)表外鍵列的值必須在主表參照列值的范圍內(nèi),或者為空(也可以加非空約束,強制不允許為空)。
當(dāng)主表的記錄被子表參照時,主表記錄不允許被刪除。
外鍵參照的只能是主表主鍵或者唯一鍵,保證子表記錄可以準確定位到被參照的記錄。
?? ?
格式FOREIGN KEY (外鍵列名)REFERENCES 主表(參照列)CREATE TABLE tb_dept(
? ? dept_id INT PRIMARY KEY,
? ? NAME VARCHAR(18),
? ? description VARCHAR(255)
);CREATE TABLE tb_employee(
? ? employee_id INT PRIMARY KEY,
? ? NAME VARCHAR(18),
? ? gender VARCHAR(10),
? ? dept_id INT REFERENCES tb_dept(dept_id),
? ? address VARCHAR(255)
);
5.# 檢查約束# 注意檢查約束在8.0之前,MySQL默認但不會強制的遵循check約束(寫不報錯,但是不生效,需要通觸發(fā)器完成)
# 8之后就開始正式支持這個約束了。
create table t3(
? ? id int,?
? ? age int check(age > 18),
? ? gender char(1) check(gender in ('M','F'))
);
6.# 默認值
可以使用default關(guān)鍵字設(shè)置每一個字段的默認值。
-- 創(chuàng)建一張user表
CREATE TABLE `test`.`user`( ?
? `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
? `name` VARCHAR(225) COMMENT '姓名',
? `sex` TINYINT(1) DEFAULT 1 COMMENT '性別 1男 0女',
? PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
1.非空約束
2.唯一約束
3.主鍵約束
4.外鍵約束
建表,其中第二張表有一個字段與主表關(guān)聯(lián)
給主表添加一個主鍵約束
添加外鍵
?
?