您好,登錄后才能下訂單哦!
MySQL多表的關系是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
表與表之間的關系,說的就是表與表之間數據的關系。
一對一關系
在實際工作中,一對一在開發中應用不多,因為一對一完全可以創建成一張表
案例:一個丈夫只能有一個妻子
一對多關系
案例:一個分類對應多個商品
總結:有外鍵的就是多的一方。
1.注意事項:
一對多關系和一對一關系的創建很類似,唯一區別就是外鍵不唯一。
2.一對多關系創建:
添加外鍵列
添加外鍵約束
3.注意事項:
?需要中間表去完成多對多關系的創建
?多對多關系其實就是兩個一對多關系的組合
多對多關系創建:
?創建中間表,并在其中創建多對多關系中兩張表的外鍵列
?在中間表中添加外鍵約束
?在中間表中添加聯合主鍵約束
6.1
交叉連接的關鍵字:CROSSJOIN
1.隱式交叉連接
SELECT*FROMA,B
2.顯式交叉連接
SELECT*FROMACROSSJOINB
內連接
內連接的關鍵字:INNERJOIN
內連接也叫等值連接,內聯接使用比較運算符根據每個表共有的列的值匹配兩個表中的行。
1.隱式內連接
SELECT*FROMA,BWHEREA.id=B.id
2.顯式內連接
SELECT*FROMAINNERJOINBONA.id=B.id
外連接
外聯接可以是左向外聯接、右向外聯接或完整外部聯接。也就是說外連接又分為:左外連接、右外連接、全外連接
外連接需要有主表或者保留表的概念。
在FROM子句中指定外聯接時,可以由下列幾組關鍵字中的一組指定:
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
外連接總結:
l通過業務需求,分析主從表
l如果使用LEFTJOIN,則主表在它左邊
l如果使用RIGHTJOIN,則主表在它右邊
查詢結果以主表為主,從表記錄匹配不到,則補null
分頁查詢
MySQL的分頁關鍵字是:LIMIT
格式:
SELECT*FROMtableLIMIT[offset,]rows
子查詢
定義:
子查詢允許把一個查詢嵌套在另一個查詢當中。
子查詢,又叫內部查詢,相對于內部查詢,包含內部查詢的就稱為外部查詢。
子查詢可以包含普通select可以包括的任何子句,比如:distinct、groupby、orderby、limit、join和union等;
但是對應的外部查詢必須是以下語句之一:select、insert、update、delete。
位置:
select中、from后、where中.
groupby和orderby中無實用意義。
MySQL事務主要用于處理操作量大,復雜度高的數據。
?在MySQL中只有使用了Innodb數據庫引擎的數據庫或表才支持事務。
?事務處理可以用來維護數據庫的完整性,保證成批的SQL語句要么全部執行,要么全部不執行。
?事務用來管理DML操作,比如insert,update,delete語句
一般來說,事務是必須滿足4個條件(ACID):
Atomicity(原子性)
構成事務的的所有操作必須是一個邏輯單元,要么全部執行,要么全部不執行。
Consistency(穩定性)
數據庫在事務執行前后狀態都必須是穩定的。
Isolation(隔離性)
事務之間不會相互影響。
Durability(可靠性)
事務執行成功后必須全部寫入磁盤。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。