一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫(kù)技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫(kù) - Mysql - MySQL數(shù)據(jù)庫(kù)如何給表設(shè)置約束詳解

MySQL數(shù)據(jù)庫(kù)如何給表設(shè)置約束詳解

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

約束主要完成對(duì)數(shù)據(jù)的檢驗(yàn),保證數(shù)據(jù)庫(kù)數(shù)據(jù)的完整性;如果有相互依賴數(shù)據(jù),保證該數(shù)據(jù)不被刪除,本篇文章教你如何給表設(shè)置約束

一、PK(主鍵約束)

1、什么是主鍵?

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

注意:關(guān)鍵字不一定是主鍵,主鍵一定是關(guān)鍵字

特點(diǎn):主鍵不能為空,具有唯一性不能重復(fù)。一個(gè)表要么只有一個(gè)主鍵,要么沒(méi)有主鍵,不可以有多個(gè)主鍵。

2、怎么設(shè)置主鍵?

方法一:在創(chuàng)建表時(shí)設(shè)置主鍵

?
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),
-- 在這里設(shè)置id為主鍵
PRIMARY KEY(User_id)
)
?
1
2
3
4
5
6
CREATE TABLE Users(
-- 也可以在字段中直接設(shè)置主鍵
User_id int NOT NULL PRIMARY KEY,
User_name VARCHAR(20),
User_pwd VARCHAR(18)
)

以上兩種方式都可以創(chuàng)建主鍵,效果一樣。

方法二:創(chuàng)建表時(shí)沒(méi)有設(shè)置主鍵,后續(xù)在表中設(shè)置主鍵

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

原理是向創(chuàng)建表時(shí)的代碼中添加 PRIMARY KEY(User_id)
跟方法一中的第一個(gè)原理一樣

?
1
ALTER TABLE user ADD PRIMARY KEY(User_id)

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

?
1
ALTER TABLE users MODIFY User_id INT PRIMARY KEY;

二、FK(外鍵約束)

1、什么是外鍵

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

注意:一個(gè)表中的外鍵可以有多個(gè),也可以沒(méi)有。

2、怎么設(shè)置外鍵

方法一:創(chuàng)建表時(shí)設(shè)置外鍵約束

在前面設(shè)置主鍵的基礎(chǔ)上來(lái)舉例,前面創(chuàng)建了一個(gè)用戶表,那么現(xiàn)在創(chuàng)建一個(gè)訂單表。

?
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,
-- 設(shè)置約束關(guān)系,dingdan表中的User_id 與 user表中的User_id表示的是同一個(gè)數(shù)據(jù)
constraint fk FOREIGN KEY(User_id) REFERENCES user(User_id)
)

方法二:創(chuàng)建表時(shí)沒(méi)有設(shè)置主鍵,后續(xù)在表中設(shè)置主鍵

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

注意:建立了主外鍵關(guān)系后,主表中的數(shù)據(jù)不能隨意刪除。比如訂單中有一條數(shù)據(jù)包含了某個(gè)用戶,那么用戶表中就不能把該用戶的信息刪除,否則會(huì)報(bào)錯(cuò)。

三、unique(唯一約束)

1、什么是唯一約束?

某個(gè)字段如果設(shè)置了唯一約束,那么該字段要么不寫,要寫就不能重復(fù)。

2、如何設(shè)置唯一約束

還是創(chuàng)建一個(gè)用戶表,這次表中多了郵箱字段。設(shè)置郵箱不能重復(fù)

?
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(非空)

意思就是這個(gè)字段不能為空

接著上面唯一約束來(lái)寫,這里規(guī)定郵箱不僅不能重復(fù)而且不能為空

?
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(默認(rèn)值)

意思就是這個(gè)字段如果你不寫,那么會(huì)默認(rèn)給你一個(gè)值繼續(xù)上面的User表來(lái)寫,在這里添加一個(gè)性別字段,如果你不寫性別那么默認(rèn)為男

?
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(自增)

自增就是自動(dòng)遞增,也就是說(shuō)如果你在這個(gè)字段沒(méi)有填寫數(shù)據(jù),系統(tǒng)會(huì)自動(dòng)根據(jù)上一條數(shù)據(jù)加1

一般用在ID,編號(hào)

將用戶表中的ID設(shè)為自增

?
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 '男'
)

注意:第一個(gè)數(shù)據(jù)如果不填,默認(rèn)會(huì)給一個(gè)值。所以即便ID是主鍵,也可以不填數(shù)據(jù)

到此這篇關(guān)于MySQL數(shù)據(jù)庫(kù)如何給表設(shè)置約束詳解的文章就介紹到這了,更多相關(guān)MySQL 設(shè)置約束內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: asian4you裸模 | 九九热这里只有精品视频免费 | 91麻豆精东果冻天美传媒老狼 | 视频在线观看高清免费 | 亚洲高清在线视频 | 色综合久久夜色精品国产 | 韩国三级视频网站 | v视界影院_vsjla | 欧美日韩不卡视频 | 国产精品视频一区二区三区经 | 草草国产成人免费视频 | 情缘1完整版在线观看 | 免费在线看| 欧美xxxbrazzers| 国产精品天天看天天爽 | 天天澡夜夜澡狠狠澡 | 国产一级真人毛爱做毛片 | 国内体内she精视频免费 | 日韩香蕉视频 | 精品久久久久亚洲 | 亚洲天堂在线视频播放 | 国产在线观看人成激情视频 | 免费国产成人高清视频网站 | 白丝美女用胸伺候主人 | 羞羞色男人的天堂伊人久久 | 日本手机在线视频 | japan日韩xxxx69hd japanese在线观看 | 国产成人亚洲精品一区二区在线看 | 好男人资源免费播放在线观看 | 日剧整部剧护妻狂魔免费观看全集 | 九九久久国产 | 精品女同同性视频很黄很色 | 久久精品久久久 | 亚洲成年网站在线777 | 欧美日韩国产一区二区三区在线观看 | 精品国产91高清在线观看 | 无遮挡激情 | 暖暖免费观看高清在线 | 色综合 成人 | 国产精品毛片高清在线完整版 | 国产美女亚洲精品久久久久久 |