最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2022年03月09日 17:29:49   作者:桃花鍵神  
約束主要完成對數(shù)據(jù)的檢驗(yàn),保證數(shù)據(jù)庫數(shù)據(jù)的完整性;如果有相互依賴數(shù)據(jù),保證該數(shù)據(jù)不被刪除,本篇文章教你如何給表設(shè)置約束

一、PK(主鍵約束)

1、什么是主鍵?

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

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

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

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

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

-- 建立User表
CREATE TABLE User(
User_id int NOT NULL,
User_name VARCHAR(20),
User_pwd VARCHAR(18),
-- 在這里設(shè)置id為主鍵
PRIMARY KEY(User_id)
)
CREATE TABLE Users(
-- 也可以在字段中直接設(shè)置主鍵
User_id int NOT NULL PRIMARY KEY,
User_name VARCHAR(20),
User_pwd VARCHAR(18)
)

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

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

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

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

ALTER TABLE user ADD PRIMARY KEY(User_id)

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

ALTER TABLE users MODIFY User_id INT PRIMARY KEY;

二、FK(外鍵約束)

1、什么是外鍵

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

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

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

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

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

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表示的是同一個數(shù)據(jù)
constraint fk FOREIGN KEY(User_id) REFERENCES user(User_id)
)

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

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

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

三、unique(唯一約束)

1、什么是唯一約束?

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

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

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

CREATE TABLE User(
User_id int NOT NULL,
User_name VARCHAR(20),
User_pwd VARCHAR(18),
User_Email VARCHAR(40) UNIQUE
)

四、not null(非空)

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

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

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)值)

意思就是這個字段如果你不寫,那么會默認(rèn)給你一個值

繼續(xù)上面的User表來寫,在這里添加一個性別字段,如果你不寫性別那么默認(rèn)為男

CREATE TABLE User(
User_id int NOT NULL,
User_name VARCHAR(20),
User_pwd VARCHAR(18),
User_gender enum('男','女') default '男'
)

六、auto_increment(自增)

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

一般用在ID,編號

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

CREATE TABLE User(
User_id int auto_increment,
User_name VARCHAR(20),
User_pwd VARCHAR(18),
User_gender enum('男','女') default '男'
)

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

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

相關(guān)文章

  • MySQL五步走JDBC編程全解讀

    MySQL五步走JDBC編程全解讀

    JDBC是指Java數(shù)據(jù)庫連接,是一種標(biāo)準(zhǔn)Java應(yīng)用編程接口(?JAVA?API),用來連接?Java?編程語言和廣泛的數(shù)據(jù)庫。從根本上來說,JDBC?是一種規(guī)范,它提供了一套完整的接口,允許便攜式訪問到底層數(shù)據(jù)庫,本篇文章我們來了解MySQL連接JDBC的五步走流程方法
    2022-01-01
  • 詳解MySQL的內(nèi)連接和外連接

    詳解MySQL的內(nèi)連接和外連接

    這篇文章主要介紹了詳解MySQL的內(nèi)連接和外連接,mySQL包含兩種聯(lián)接,分別是內(nèi)連接(inner join)和外連接(out join),但我們又同時聽說過左連接,交叉連接等術(shù)語,本文就帶大家來了解一下,需要的朋友可以參考下
    2023-05-05
  • MySQL獲取二維數(shù)組字符串的最后一個值的實(shí)現(xiàn)代碼

    MySQL獲取二維數(shù)組字符串的最后一個值的實(shí)現(xiàn)代碼

    這篇文章主要介紹了MySQL獲取二維數(shù)組字符串的最后一個值的實(shí)現(xiàn),文中有詳細(xì)的代碼示例供大家參考,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-04-04
  • MySQL基本運(yùn)維命令詳解

    MySQL基本運(yùn)維命令詳解

    這篇文章主要介紹了MySQL基本運(yùn)維命令,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • 遠(yuǎn)程登錄MySQL服務(wù)(小白入門篇)

    遠(yuǎn)程登錄MySQL服務(wù)(小白入門篇)

    這篇文章主要為大家介紹了遠(yuǎn)程登錄MySQL服務(wù)(小白入門篇)
    2023-05-05
  • Ubuntu安裝Mysql+啟用遠(yuǎn)程連接的完整過程

    Ubuntu安裝Mysql+啟用遠(yuǎn)程連接的完整過程

    這篇文章主要介紹了Ubuntu如何安裝Mysql+啟用遠(yuǎn)程連接,用ssh客戶端或者云服務(wù)器廠家提供的網(wǎng)頁版控制臺都行,只要你能連上服務(wù)器就行,需要的朋友可以參考下
    2022-06-06
  • Mysql自連接查詢實(shí)例詳解

    Mysql自連接查詢實(shí)例詳解

    這篇文章主要介紹了Mysql自連接查詢,結(jié)合實(shí)例形式分析了MySQL自連接查詢的應(yīng)用場景、原理及相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • mysql之臟讀、不可重復(fù)讀、幻讀的區(qū)別及說明

    mysql之臟讀、不可重復(fù)讀、幻讀的區(qū)別及說明

    這篇文章主要介紹了mysql之臟讀、不可重復(fù)讀、幻讀的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • MySQL中LIKE運(yùn)算符的多種使用方式及示例演示

    MySQL中LIKE運(yùn)算符的多種使用方式及示例演示

    無論是簡單的模式匹配還是復(fù)雜的模式匹配,LIKE運(yùn)算符都提供了強(qiáng)大的功能來滿足不同的匹配需求,通過本文的介紹,我們詳細(xì)了解了在MySQL數(shù)據(jù)庫中使用LIKE運(yùn)算符進(jìn)行模糊匹配的多種方式,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • MySQL數(shù)據(jù)表基本操作實(shí)例詳解

    MySQL數(shù)據(jù)表基本操作實(shí)例詳解

    這篇文章主要介紹了MySQL數(shù)據(jù)表基本操作,結(jié)合實(shí)例形式較為詳細(xì)的分析了MySQL針對數(shù)據(jù)表的基本創(chuàng)建、表結(jié)構(gòu)查看、修改、刪除等相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06

最新評論

齐河县| 兴和县| 湘潭县| 肃北| 辰溪县| 阿克陶县| 封开县| 大足县| 吉隆县| 平罗县| 上虞市| 石首市| 鹰潭市| 安塞县| 沙河市| 大港区| 马鞍山市| 宣威市| 奉新县| 扎赉特旗| 大荔县| 房山区| 邵阳市| 宁蒗| 东山县| 曲麻莱县| 华宁县| 福泉市| 富锦市| 武平县| 吴旗县| 克什克腾旗| 博罗县| 东乌珠穆沁旗| 上思县| 肥乡县| 辽中县| 临汾市| 饶平县| 东莞市| 绍兴县|