MySQL多表的關(guān)系是什么,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
福安網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),福安網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為福安成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的福安做網(wǎng)站的公司定做!
表與表之間的關(guān)系,說的就是表與表之間數(shù)據(jù)的關(guān)系。
一對(duì)一關(guān)系
在實(shí)際工作中,一對(duì)一在開發(fā)中應(yīng)用不多,因?yàn)橐粚?duì)一完全可以創(chuàng)建成一張表
案例:一個(gè)丈夫只能有一個(gè)妻子
一對(duì)多關(guān)系
案例:一個(gè)分類對(duì)應(yīng)多個(gè)商品
總結(jié):有外鍵的就是多的一方。
1.注意事項(xiàng):
一對(duì)多關(guān)系和一對(duì)一關(guān)系的創(chuàng)建很類似,唯一區(qū)別就是外鍵不唯一。
2.一對(duì)多關(guān)系創(chuàng)建:
添加外鍵列
添加外鍵約束
3.注意事項(xiàng):
?需要中間表去完成多對(duì)多關(guān)系的創(chuàng)建
?多對(duì)多關(guān)系其實(shí)就是兩個(gè)一對(duì)多關(guān)系的組合
多對(duì)多關(guān)系創(chuàng)建:
?創(chuàng)建中間表,并在其中創(chuàng)建多對(duì)多關(guān)系中兩張表的外鍵列
?在中間表中添加外鍵約束
?在中間表中添加聯(lián)合主鍵約束
6.1
交叉連接的關(guān)鍵字:CROSSJOIN
1.隱式交叉連接
SELECT*FROMA,B
2.顯式交叉連接
SELECT*FROMACROSSJOINB
內(nèi)連接
內(nèi)連接的關(guān)鍵字:INNERJOIN
內(nèi)連接也叫等值連接,內(nèi)聯(lián)接使用比較運(yùn)算符根據(jù)每個(gè)表共有的列的值匹配兩個(gè)表中的行。
1.隱式內(nèi)連接
SELECT*FROMA,BWHEREA.id=B.id
2.顯式內(nèi)連接
SELECT*FROMAINNERJOINBONA.id=B.id
外連接
外聯(lián)接可以是左向外聯(lián)接、右向外聯(lián)接或完整外部聯(lián)接。也就是說外連接又分為:左外連接、右外連接、全外連接
外連接需要有主表或者保留表的概念。
在FROM子句中指定外聯(lián)接時(shí),可以由下列幾組關(guān)鍵字中的一組指定:
1.左外連接:LEFTJOIN或者LEFTOUTERJOIN
SELECT*FROMALEFTJOINBONA.id=B.id
2.右外連接::RIGHTJOIN或者RIGHTOUTERJOIN
SELECT*FROMARIGHTJOINBONA.id=B.id
3.全外連接(MySQL不支持):FULLJOIN或FULLOUTERJOIN
SELECT*FROMAFULLJOINBONA.id=B.id
外連接總結(jié):
l通過業(yè)務(wù)需求,分析主從表
l如果使用LEFTJOIN,則主表在它左邊
l如果使用RIGHTJOIN,則主表在它右邊
查詢結(jié)果以主表為主,從表記錄匹配不到,則補(bǔ)null
分頁查詢
MySQL的分頁關(guān)鍵字是:LIMIT
格式:
SELECT*FROMtableLIMIT[offset,]rows
子查詢
定義:
子查詢?cè)试S把一個(gè)查詢嵌套在另一個(gè)查詢當(dāng)中。
子查詢,又叫內(nèi)部查詢,相對(duì)于內(nèi)部查詢,包含內(nèi)部查詢的就稱為外部查詢。
子查詢可以包含普通select可以包括的任何子句,比如:distinct、groupby、orderby、limit、join和union等;
但是對(duì)應(yīng)的外部查詢必須是以下語句之一:select、insert、update、delete。
位置:
select中、from后、where中.
groupby和orderby中無實(shí)用意義。
MySQL事務(wù)主要用于處理操作量大,復(fù)雜度高的數(shù)據(jù)。
?在MySQL中只有使用了Innodb數(shù)據(jù)庫引擎的數(shù)據(jù)庫或表才支持事務(wù)。
?事務(wù)處理可以用來維護(hù)數(shù)據(jù)庫的完整性,保證成批的SQL語句要么全部執(zhí)行,要么全部不執(zhí)行。
?事務(wù)用來管理DML操作,比如insert,update,delete語句
一般來說,事務(wù)是必須滿足4個(gè)條件(ACID):
Atomicity(原子性)
構(gòu)成事務(wù)的的所有操作必須是一個(gè)邏輯單元,要么全部執(zhí)行,要么全部不執(zhí)行。
Consistency(穩(wěn)定性)
數(shù)據(jù)庫在事務(wù)執(zhí)行前后狀態(tài)都必須是穩(wěn)定的。
Isolation(隔離性)
事務(wù)之間不會(huì)相互影響。
Durability(可靠性)
事務(wù)執(zhí)行成功后必須全部寫入磁盤。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。