国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - MySQL數據庫如何給表設置約束詳解

MySQL數據庫如何給表設置約束詳解

2022-03-09 22:34桃花鍵神 Mysql

約束主要完成對數據的檢驗,保證數據庫數據的完整性;如果有相互依賴數據,保證該數據不被刪除,本篇文章教你如何給表設置約束

一、PK(主鍵約束)

1、什么是主鍵?

  • 在了解主鍵之前,先了解一下什么是關鍵字
  • 關鍵字:在表中具有唯一性的字段,比如一個人的身份證號,學號。一個表中可以有多個關鍵字。
  • 主鍵也叫主關鍵字,就是由一個或多個關鍵字組成的,并且可以通過主鍵獲得整個表的信息。比如訂單表,通過訂單編號可以獲取到訂單中的姓名,商品,價格等信息。

注意:關鍵字不一定是主鍵,主鍵一定是關鍵字

特點:主鍵不能為空,具有唯一性不能重復。一個表要么只有一個主鍵,要么沒有主鍵,不可以有多個主鍵。

2、怎么設置主鍵?

方法一:在創建表時設置主鍵

?
1
2
3
4
5
6
7
8
-- 建立User表
CREATE TABLE User(
User_id int NOT NULL,
User_name VARCHAR(20),
User_pwd VARCHAR(18),
-- 在這里設置id為主鍵
PRIMARY KEY(User_id)
)
?
1
2
3
4
5
6
CREATE TABLE Users(
-- 也可以在字段中直接設置主鍵
User_id int NOT NULL PRIMARY KEY,
User_name VARCHAR(20),
User_pwd VARCHAR(18)
)

以上兩種方式都可以創建主鍵,效果一樣。

方法二:創建表時沒有設置主鍵,后續在表中設置主鍵

  • 首先建一個沒有設置主鍵的表
?
1
2
3
4
5
CREATE TABLE User(
User_id int NOT NULL,
User_name VARCHAR(20),
User_pwd VARCHAR(18)
)
  • 然后再設置主鍵

原理是向創建表時的代碼中添加 PRIMARY KEY(User_id)
跟方法一中的第一個原理一樣

?
1
ALTER TABLE user ADD PRIMARY KEY(User_id)

原理是向User_id 字段中添加 PRIMARY KEY
跟方法一中的第二個原理一樣

?
1
ALTER TABLE users MODIFY User_id INT PRIMARY KEY;

二、FK(外鍵約束)

1、什么是外鍵

  • 外鍵又叫外關鍵字,代表兩個表直接的聯系。一張表的外鍵一定是另一張表的主鍵,以另一個關系的外鍵作主關鍵字的表被稱為主表,具有此外鍵的表被稱為主表的從表。
  • 比如訂單表中包含了商品ID,用戶ID兩個外鍵。其中商品ID是商品信息表的主鍵,用戶ID是用戶表的主鍵。

注意:一個表中的外鍵可以有多個,也可以沒有。

2、怎么設置外鍵

方法一:創建表時設置外鍵約束

在前面設置主鍵的基礎上來舉例,前面創建了一個用戶表,那么現在創建一個訂單表。

?
1
2
3
4
5
6
7
CREATE TABLE dingdan(
DDid INT PRIMARY KEY NOT NULL,
User_id INT NOT null,
DDname VARCHAR(20) NOT NULL,
-- 設置約束關系,dingdan表中的User_id 與 user表中的User_id表示的是同一個數據
constraint fk FOREIGN KEY(User_id) REFERENCES user(User_id)
)

方法二:創建表時沒有設置主鍵,后續在表中設置主鍵

?
1
alter table student add constraint stfk foreign key(stid) references teacher(tid)

注意:建立了主外鍵關系后,主表中的數據不能隨意刪除。比如訂單中有一條數據包含了某個用戶,那么用戶表中就不能把該用戶的信息刪除,否則會報錯。

三、unique(唯一約束)

1、什么是唯一約束?

某個字段如果設置了唯一約束,那么該字段要么不寫,要寫就不能重復。

2、如何設置唯一約束

還是創建一個用戶表,這次表中多了郵箱字段。設置郵箱不能重復

?
1
2
3
4
5
6
CREATE TABLE User(
User_id int NOT NULL,
User_name VARCHAR(20),
User_pwd VARCHAR(18),
User_Email VARCHAR(40) UNIQUE
)

四、not null(非空)

意思就是這個字段不能為空

接著上面唯一約束來寫,這里規定郵箱不僅不能重復而且不能為空

?
1
2
3
4
5
6
CREATE TABLE User(
User_id int NOT NULL,
User_name VARCHAR(20),
User_pwd VARCHAR(18),
User_Email VARCHAR(40) UNIQUE not null
)

五、default(默認值)

意思就是這個字段如果你不寫,那么會默認給你一個值繼續上面的User表來寫,在這里添加一個性別字段,如果你不寫性別那么默認為男

?
1
2
3
4
5
6
CREATE TABLE User(
User_id int NOT NULL,
User_name VARCHAR(20),
User_pwd VARCHAR(18),
User_gender enum('男','女') default '男'
)

六、auto_increment(自增)

自增就是自動遞增,也就是說如果你在這個字段沒有填寫數據,系統會自動根據上一條數據加1

一般用在ID,編號

將用戶表中的ID設為自增

?
1
2
3
4
5
6
CREATE TABLE User(
User_id int auto_increment,
User_name VARCHAR(20),
User_pwd VARCHAR(18),
User_gender enum('男','女') default '男'
)

注意:第一個數據如果不填,默認會給一個值。所以即便ID是主鍵,也可以不填數據

到此這篇關于MySQL數據庫如何給表設置約束詳解的文章就介紹到這了,更多相關MySQL 設置約束內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_50843918/article/details/122990087

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久久久久免费 | 综合婷婷 | 伊人无码高清 | 91精品国产综合久久久久久 | 日本成人一区 | 亚洲美女久久 | 免费一级a毛片免费观看 | 国产日韩一区二区三区 | 亚洲欧美日韩精品久久亚洲区 | 久久99精品视频 | 日本一区二区在线视频 | 欧美在线a | 欧美日韩一区二区三区在线观看 | 日韩高清一区 | 久久久久久亚洲一区二区三区蜜臀 | 亚洲三级在线观看 | 激情总合网 | 免费一级毛片在线观看 | 欧美成年黄网站色视频 | 免费成人在线观看视频 | 国产一区免费视频 | 国产色秀视频在线观看 | 久久久91精品国产一区二区三区 | 中文字幕视频一区 | 91欧美激情一区二区三区成人 | av资源在线 | 久久久.com | 国产高清视频一区 | 国产亚洲精品久久久456 | 在线中文视频 | 久久一精品 | 日韩视频区 | 亚洲一区二区三区在线播放 | 国产精品不卡一区二区三区 | 福利片网站 | av中文字幕在线播放 | 大乳videos巨大吃奶 | 69久久久 | 在线毛片网 | 欧美一级一区 | 欧美一级免费看 |