日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
深入淺出MySQL數(shù)據(jù)庫(kù)id外鍵使用技巧(mysql數(shù)據(jù)庫(kù)id外鍵)

MySQL數(shù)據(jù)庫(kù)是當(dāng)前最常用的開(kāi)源關(guān)系型數(shù)據(jù)庫(kù)之一,其中id外鍵作為常見(jiàn)的數(shù)據(jù)庫(kù)設(shè)計(jì)技巧之一,在實(shí)踐中也扮演著重要角色。本文旨在深入探討mysql數(shù)據(jù)庫(kù)id外鍵的使用技巧,幫助大家更好地理解和運(yùn)用。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、成都小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了巴彥淖爾免費(fèi)建站歡迎大家使用!

定義id外鍵

我們需要明確id外鍵的概念。id外鍵是指一個(gè)表中的字段,它保存著另一個(gè)表中某一行的主鍵值。為了確保數(shù)據(jù)的完整性和一致性,id外鍵提供了引用完整性約束,使得在關(guān)系型數(shù)據(jù)庫(kù)中,每個(gè)引用都指向一個(gè)有效的行。

在MySQL數(shù)據(jù)庫(kù)中,我們可以通過(guò)以下語(yǔ)句定義一個(gè)id外鍵:

“`sql

ALTER TABLE 子表名稱 ADD FOREIGN KEY (FK字段名稱) REFERENCES 父表名稱 (PK字段名稱);

“`

其中,子表名稱指的是需要引用父表的表名,F(xiàn)K字段名稱是該表中的字段名稱,用于引用父表中的PK字段名稱。父表名稱指的是被子表引用的表名,PK字段名稱是被引用的主鍵字段名稱。

使用id外鍵帶來(lái)的優(yōu)點(diǎn)

接下來(lái),我們來(lái)討論一下使用id外鍵的優(yōu)點(diǎn):

1. 數(shù)據(jù)完整性

id外鍵約束可以保證數(shù)據(jù)的完整性和一致性,確保所有的引用都指向有效的行,從而避免了在實(shí)際應(yīng)用中出現(xiàn)的數(shù)據(jù)不一致和錯(cuò)誤。

2. 數(shù)據(jù)一致性

id外鍵也可以幫助我們維護(hù)數(shù)據(jù)的一致性。在關(guān)系型數(shù)據(jù)庫(kù)中,數(shù)據(jù)通常被存儲(chǔ)在多個(gè)表中,每個(gè)表都有其自己的主鍵。通過(guò)定義id外鍵,可以確保表之間的一致性,避免了數(shù)據(jù)冗余和不一致。

3. 數(shù)據(jù)查詢效率

在MySQL數(shù)據(jù)庫(kù)中,id外鍵創(chuàng)建了一個(gè)有向圖,方便我們進(jìn)行表之間的查詢操作。有向圖可以讓我們按照不同關(guān)系方向進(jìn)行查詢,并且大大提高查詢效率。

4. 數(shù)據(jù)刪除

使用id外鍵可以方便有效地進(jìn)行數(shù)據(jù)刪除。在實(shí)際應(yīng)用中,有時(shí)我們需要?jiǎng)h除某個(gè)表中的數(shù)據(jù),這時(shí)如果只刪除該表中的數(shù)據(jù),則可能造成數(shù)據(jù)不一致。而通過(guò)定義id外鍵,我們可以刪除待刪除數(shù)據(jù)的引用,并且確保操作的安全和有效。

注意事項(xiàng)

除了上述的優(yōu)點(diǎn)和技巧,我們還需要注意一些使用id外鍵的常見(jiàn)注意事項(xiàng):

1. 父表必須存在主鍵,且主鍵字段不能為NULL,否則創(chuàng)建id外鍵時(shí)會(huì)報(bào)錯(cuò)。

2. 父表的主鍵類(lèi)型必須與子表中的外鍵類(lèi)型一致。

3. 子表中的外鍵必須是父表主鍵的邏輯子集,否則也會(huì)創(chuàng)建失敗。

4. 在刪除父表記錄時(shí),僅能刪除未被子表引用的記錄。

MySQL數(shù)據(jù)庫(kù)的id外鍵是一種非常實(shí)用的數(shù)據(jù)庫(kù)設(shè)計(jì)技巧,在實(shí)現(xiàn)數(shù)據(jù)一致性和完整性方面發(fā)揮了重要作用。在實(shí)踐中,我們需要充分理解id外鍵的技巧和注意事項(xiàng),并且根據(jù)具體情況進(jìn)行合理的使用和應(yīng)用。

通過(guò)對(duì)MySQL數(shù)據(jù)庫(kù)id外鍵的深入探討,相信讀者們已經(jīng)掌握了一定的知識(shí)和技巧。在實(shí)踐中,希望大家能夠充分發(fā)揚(yáng)學(xué)以致用的精神,將所學(xué)知識(shí)應(yīng)用于實(shí)際場(chǎng)景中,從而達(dá)到事半功倍的效果。

相關(guān)問(wèn)題拓展閱讀:

  • mysql外鍵求解!
  • mysql 外鍵的設(shè)置
  • MySQL里面的主鍵外鍵都是什么意思,看不太明白,誰(shuí)能通俗的說(shuō)下,謝謝~~ 怎么樣理解好。

mysql外鍵求解!

外鍵出問(wèn)題有很多種原因

先保證 主鍵跟外鍵表的引擎是否一致

在確認(rèn) 主鍵列跟外鍵列類(lèi)型,長(zhǎng)度是否一樣(在看是否加了unsigned,只要有一個(gè)加了那另外一個(gè)列也要加)

在確保你的外鍵表中是否存在主鍵里不存在的記錄,如果有 也無(wú)法它加外鍵

在修改innodb 引擎的時(shí)候 不拍兆要以為仿物

alter table 表名 type=innodb 執(zhí)行之后看到 query ok 就修改成功了。

在查看一下

show create table 表名 看引擎是否修改成功,如果修改失敗 還是 MyISAM 引擎的話

打開(kāi) 配置文件 my.ini 找到備賀液 skip-innodb 將他注釋 然后重啟數(shù)據(jù)庫(kù) 重新修改引擎。

可能是MySQL:表的類(lèi)型扮叢的關(guān)系,

MyISAM不支持外鍵

InnoDB支持外鍵消缺仿

請(qǐng)檢查一拿纖下.

mysql 外鍵的設(shè)置

肯定跟前面?zhèn)€表 有關(guān)聯(lián),所以才設(shè)置外鍵橡桐,2個(gè)表有聯(lián)系。

級(jí)連刪除禪如沖 級(jí)連更賀殲新 ,id的紀(jì)錄刪除了,那么 另一個(gè)表的內(nèi)容 也全部刪除了

MySQL里面的主鍵外鍵都是什么意思,看不太明白,誰(shuí)能通俗的說(shuō)下,謝謝~~ 怎么樣理解好。

其實(shí)不止是mysql里,所有的數(shù)據(jù)庫(kù)都有

主鍵

外鍵的概念。舉個(gè)簡(jiǎn)單的例子。

因?yàn)樵谥袊?guó)有不少人姓名相同,所以雖然在你家里能用名字做統(tǒng)一標(biāo)識(shí),但是在中國(guó)這個(gè)范圍卻不行,所以就有了身份證號(hào),這是主鍵,保證每一個(gè)人有一個(gè)。

然后你會(huì)上學(xué),上學(xué)的話就有學(xué)籍這么個(gè)東西,雖然有

學(xué)籍號(hào)

還有學(xué)籍信息,但是我現(xiàn)在想要通過(guò)身份證號(hào)知清液道你的學(xué)歷的話,在學(xué)籍這個(gè)表中,就要加入你的身份信息,這個(gè)身份信息與學(xué)籍信息當(dāng)然不是在一個(gè)表里的,最簡(jiǎn)單的方法,是把身份信息都復(fù)制到學(xué)籍信息這個(gè)表里,不過(guò)很顯然,這樣數(shù)據(jù)庫(kù)就有兩份記錄,一份在身份信息表脊橘里,一份在學(xué)籍信息表里,而且都是身答野物份信息。這叫做冗余,不但占多了空間,還不能保證修改時(shí)候的同步,而且你也許還有

社會(huì)保險(xiǎn)

啦,

駕駛證

之類(lèi)更多的信息存在,我也不可能每個(gè)表都復(fù)制身份信息過(guò)去。這時(shí)就出現(xiàn)在外鍵,我只需要在這些表中插入身份證號(hào)這個(gè)列做為外鍵,那我到時(shí)候通過(guò)這個(gè)唯一的編號(hào)去身份信息這個(gè)表里找就好了,而且修改身份信息的話也只要在身份信息這個(gè)表做就好了,很方便很簡(jiǎn)單不是嗎

廢話少說(shuō),直接進(jìn)入主題。 主鍵:指的是,唯一標(biāo)識(shí)這張表的字段,例如,書(shū)號(hào)是圖書(shū)表的主鍵

外間:指的是 可以敗明跟其他表建立關(guān)系的字段,例如 圖書(shū)表的書(shū)侍睜名 可以在 借閱信息表中出現(xiàn),這樣圖書(shū)表和借閱察談告信息表之間建立了關(guān)系。

約束的分類(lèi):

在實(shí)際中,約束主要分為以下五種約束:

主鍵約束: 主鍵表示一個(gè)唯一的標(biāo)識(shí),本身不能為空

例如:身份證編號(hào)是唯一的,不可重復(fù)的,不可為空的

唯一約束: 在一個(gè)表中只允許建立一個(gè)主鍵約束,而其他如果不希望出現(xiàn)重復(fù)的話,則

就可以使用唯一約束。

檢查約運(yùn)鉛核束: 檢查一個(gè)列的內(nèi)容是否合法

例如: 年齡,只能在0-150歲

例如: 性別,只能是男、女

非空約束: 姓名這樣的字段里面的內(nèi)容就不能為空

外鍵約束: 在兩張表中進(jìn)行約束操作

例子:

外鍵約束是對(duì)于兩張表:一張學(xué)生表student ,另一張課程表course。一門(mén)課程里面必須有一個(gè)字段屬于哪個(gè)學(xué)生

create table tb_person(

p_id int(11) ,

name varchar(50),

age varchar(2),

sex varchar(10),

address varchar(200)

);

create table tb_book(

b_id int(11) auto_increment primary key,

name varchar(100)

p_id int(11) // 表示對(duì)應(yīng)的那個(gè)人是誰(shuí) 直接指向 t_peson表的的id編號(hào)

);

首先插入:t_peson表的數(shù)據(jù)

insert into tb_peson (p_id,name,age,sex,address) values(1,’ttt’,’22’,’男’,’地球’);

再向t_book 表插入數(shù)據(jù):

insert into tb_book (b_id,name,’00000′,2); 的話就會(huì)插入成功

(如果此編號(hào)人都不存在的話,則該數(shù)據(jù)不應(yīng)該插入。解決問(wèn)題就是要使用主-外鍵關(guān)聯(lián); 關(guān)聯(lián)之后子表的數(shù)據(jù)要跟隨父表數(shù)據(jù)的內(nèi)容變動(dòng))

就好比一個(gè)兒子要有一個(gè)父親,你不能說(shuō)沒(méi)有父親突然蹦了一個(gè)兒子出來(lái),就違反常理了。

外鍵加這句內(nèi)容: constraint t_peson_book_p_id_fk foreign key(p_id) references t_person(p_id)

如下:

create table tb_book(

b_id int(11) auto_increment primary key,

name varchar(100)

p_id int(11),

constraint t_peson_book_p_id_fk foreign key(p_id) references t_person(p_id)

);

如果你不加外鍵約束的話: 就會(huì)出現(xiàn)

再插入這句就不會(huì)成功: insert into tb_book (b_id,name,’00000’旁掘,2);(違反約束條件)

這樣就狂野保證表的完整性,不會(huì)出現(xiàn)找不到對(duì)應(yīng)數(shù)據(jù)的情況

在使用主-外鍵關(guān)聯(lián)時(shí)要注意:

1、在子表中設(shè)置外鍵在激升父親中必須是主鍵

2、刪除時(shí)應(yīng)該先刪除子表,再刪除父表

mysql數(shù)據(jù)庫(kù)id外鍵的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于mysql數(shù)據(jù)庫(kù)id外鍵,深入淺出MySQL數(shù)據(jù)庫(kù)id外鍵使用技巧,mysql外鍵求解!,mysql 外鍵的設(shè)置,MySQL里面的主鍵外鍵都是什么意思,看不太明白,誰(shuí)能通俗的說(shuō)下,謝謝~~ 怎么樣理解好。的信息別忘了在本站進(jìn)行查找喔。

成都創(chuàng)新互聯(lián)科技有限公司,是一家專(zhuān)注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開(kāi)發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國(guó)云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)——四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,高電服務(wù)器托管,算力服務(wù)器租用,可選線路電信、移動(dòng)、聯(lián)通機(jī)房等。


本文名稱:深入淺出MySQL數(shù)據(jù)庫(kù)id外鍵使用技巧(mysql數(shù)據(jù)庫(kù)id外鍵)
文章分享:http://www.dlmjj.cn/article/djspghe.html