大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 簡述MySQL數據庫中4大約束

簡述MySQL數據庫中4大約束

更新時間:2021-01-18 17:50:01 來源:動力節點 瀏覽1139次

約束就是對表中的數據進行限定,保證數據的正確性、有效性和完整性。在MySQL數據庫中,有比較重要的4種約束,共同維護著MySQL數據庫的數據。本文我們就來一探究竟,學習MySQL數據庫中4大約束

MySQL中4大約束具體如下:

1. 主鍵約束:primary key

2. 非空約束:not null

3. 唯一約束:unique

4. 外鍵約束:foreign key

下面我們來一一講解MySQL數據庫中4大約束:

 

1.主鍵約束(PRIMARY KEY)

主鍵約束列不允許重復,即任意兩行的主鍵值都不相同;每行都具有一個主鍵值,也不允許出現空值;

單列主鍵創建有兩種方式:

一種是直接對字段加primary key關鍵字:

                   

CREATE TABLE student(

id INT PRIMARY KEY,         

name VARCHAR(20),          

 )

另外一種是通過額外加約束的方式:

                 

CREATE TABLE student(

id INT NOT NULL,         

name VARCHAR(20),

CONSTRAINT PK_STUD_ID PRIMARY KEY(id)

//PK_STUD_ID為約束的名字          

)

 

有時候一個列的字段可能有重復,可以聯合多個列設為主鍵。

聯合主鍵的語句:                        

CREATE TABLE student(       

name VARCHAR(20),

class VARCHAR(20),

CONSTRAINT PK_STUD_ID PRIMARY KEY(name,class)       

)

其它操作

//刪除主鍵約束  

ALTER TABLE 表名 DROP PRIMARY KEY;    

//添加主鍵  

ALTER TABLE 表名 ADD PRIMARY KEY(列名);    

//修改列為主鍵

ALTER TABLE 表名 MODIFY 列名 數據類型 PRIMARY KEY;

 

2.外鍵約束(FOREIGN KEY)

外鍵約束是保證一個或兩個表之間的參照完整性,保持數據一致性。表的外鍵可以是另一表的主鍵(也可以是唯一索引,詳情看這里), 外鍵可以有重復的, 可以是空值。實現一對一或一對多關系。

創建外鍵約束

                     

CREATE TABLE classes(

id INT AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(20)

 );  

//第一種:添加關鍵字

CREATE TABLE student(

          id INT AUTO_INCREMENT,         

          name VARCHAR(20),          

          CONSTRAINT PK_ID PRIMARY KEY(id),                        

          class_id INT REFERENCES classes(id)

          )

//第二種:額外聲明

CREATE TABLE student(

          id INT AUTO_INCREMENT,         

          name VARCHAR(20),          

          CONSTRAINT PK_ID PRIMARY KEY(id),                        

          class_id INT,

          CONSTRAINT fk_class_id FOREIGN KEY(classe_id) REFERENCES classes(id)

          )

外鍵約束的要求:

父表和子表必須使用相同的存儲引擎,而且禁止使用臨時表,數據表的存儲引擎只能為InnoDB,default-storage-engine-INNODB外鍵列和參照列必須具有相似的數據類型,數字的長度或是有符號位必須相同,而字符 的長度可以不同外鍵列和參照列必須創建索引,如果外鍵列不存在索引的話,MySQL將自動創建索引。設定參照列:FOREIGN KEY(id) PEFERENCES provinces(id)

外鍵約束的參照操作:

CASCADE:從父表刪除或更新且自動刪除或更新子表中匹配的行

SET NULL:從父表刪除或更新行,并設置子表中的外鍵列為NULL,如果使用該選項,必須保證子表列沒有指定NOT NULL

RESTRICT:拒絕對父表的刪除或更新操作

NO ACTION:標準SQL的關鍵字,在MySQL中與RESTRICT相同

其它操作

//刪除外鍵約束

 ALTER TABLE 表名 DROP FOREIGN KEY 外鍵約束名;

(創建外鍵的方法沒有指定約束名稱,系統會默認給外鍵約束分配外鍵約束名稱,命名為student_ibfk_n)

 

//增加外鍵約束

 ALTER TABLE 表名 ADD FOREIGN KEY 列名 REFERENCES 父表(對應列名);

 

3.唯一約束(UNIQUE)

指定表中某一列或多個列不能有相同的兩行或者兩行以上的數據存在,

唯一約束可以保證記錄的唯一性

唯一約束的字段可以為空值(允許的空值有多個,但是最終存儲的只有一個)

每張數據表可以存在多個唯一約束

UNIQUE KEY的用途:主要是用來防止數據插入的時候重復。

CREATE TABLE student

(

  name CHAR(20) UNIQUE KEY

 );                    

為表中列添加UNIQUE KEY

ALTER TABLE student MODIFY CHAR(20) UNIQUE KEY;

 

4.非空約束(NOT NULL)

輸入值必須是非空的,需要注意的是允許控制盡量不要太多,太多會更消耗數據庫性能。

CREATE TABLE student

(

  name CHAR(20) NOT NULL

 );

 

以上就是MySQL數據庫中4大約束,除此之外,其實MySQL中還存在著默認約束等其他約束,但總體而言,掌握主鍵約束、非空約束、唯一約束、外鍵約束這4種約束的使用,在MySQL數據庫中對數據的約束是綽綽有余的。當然,想要精益求精的小伙伴也可以觀看本站的MySQL教程,學習更多的MySQL的相關知識,讓自己的知識更上一層樓!

 

 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美视频成人 | 91精品国产综合久久久久 | 一区二区三区精品国产欧美 | 国产日韩欧美亚洲综合在线 | 精品亚洲在线 | 妖精视频免费在线观看 | 久久久青草青青国产亚洲免观 | 玖玖在线播放 | 亚洲综合色视频 | 毛片免费全部免费观看 | 国产日韩精品一区在线观看播放 | 在线精品欧美 | 亚州综合 | 福利视频不卡 | 激情婷婷网 | 五月伊人 | 久草免费色站 | 天天爽夜夜爽夜夜爽精品视频 | 亚洲香蕉网综合久久 | 中文字幕久精品免费视频蜜桃视频 | 国产深夜福利视频观看 | 2020国产免费久久精品99 | 国产精品久久久久久久久久久不卡 | 亚洲人成网站色7799在线观看 | 久久国产亚洲 | 99re这里有免费视频精品 | 秘密影院久久综合亚洲综合 | 末成年一级在线看片 | a免费视频 | 国产女人精品性视频 | 人人爽天天碰天天躁夜夜躁 | 色综合久久久久综合体桃花网 | 久久天天躁夜夜躁狠狠85麻豆 | 久热国产精品 | 国产日韩欧美精品一区二区三区 | 成人欧美一区二区三区视频 | 欧美成人免费mv在线播放 | 亚洲综合香蕉 | 国产高清在线91福利 | 国产伊人久久 | 欧美精品九九99久久在观看 |