在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)系型數(shù)據(jù)庫最難的地方,就是建模

電子工程師 ? 來源:lp ? 2019-04-04 14:29 ? 次閱讀

關(guān)系型數(shù)據(jù)庫最難的地方,就是建模(model)。

錯(cuò)綜復(fù)雜的數(shù)據(jù),需要建立模型,才能儲(chǔ)存在數(shù)據(jù)庫。所謂"模型"就是兩樣?xùn)|西:實(shí)體(entity)+ 關(guān)系(relationship)。

實(shí)體指的是那些實(shí)際的對(duì)象,帶有自己的屬性,可以理解成一組相關(guān)屬性的容器。關(guān)系就是實(shí)體之間的聯(lián)系,通常可以分成"一對(duì)一"、"一對(duì)多"和"多對(duì)多"等類型。

在關(guān)系型數(shù)據(jù)庫里面,每個(gè)實(shí)體有自己的一張表(table),所有屬性都是這張表的字段(field),表與表之間根據(jù)關(guān)聯(lián)字段"連接"(join)在一起。所以,表的連接是關(guān)系型數(shù)據(jù)庫的核心問題。

表的連接分成好幾種類型。

內(nèi)連接(inner join)

外連接(outer join)

左連接(left join)

右連接(right join)

全連接(full join)

以前,很多文章采用維恩圖(兩個(gè)圓的集合運(yùn)算),解釋不同連接的差異。

上周,我讀到一篇文章,認(rèn)為還有比維恩圖更好的解釋方式。我發(fā)現(xiàn)確實(shí)如此,換一個(gè)角度解釋,更容易懂。

所謂"連接",就是兩張表根據(jù)關(guān)聯(lián)字段,組合成一個(gè)數(shù)據(jù)集。問題是,兩張表的關(guān)聯(lián)字段的值往往是不一致的,如果關(guān)聯(lián)字段不匹配,怎么處理?比如,表 A 包含張三和李四,表 B 包含李四和王五,匹配的只有李四這一條記錄。

很容易看出,一共有四種處理方法。

只返回兩張表匹配的記錄,這叫內(nèi)連接(inner join)。

返回匹配的記錄,以及表 A 多余的記錄,這叫左連接(left join)。

返回匹配的記錄,以及表 B 多余的記錄,這叫右連接(right join)。

返回匹配的記錄,以及表 A 和表 B 各自的多余記錄,這叫全連接(full join)。

下圖就是四種連接的圖示。我覺得,這張圖比維恩圖更易懂,也更準(zhǔn)確。

上圖中,表 A 的記錄是 123,表 B 的記錄是 ABC,顏色表示匹配關(guān)系。返回結(jié)果中,如果另一張表沒有匹配的記錄,則用 null 填充。

這四種連接,又可以分成兩大類:內(nèi)連接(inner join)表示只包含匹配的記錄,外連接(outer join)表示還包含不匹配的記錄。所以,左連接、右連接、全連接都屬于外連接。

這四種連接的 SQL 語句如下。

SELECT*FROMAINNERJOINBONA.book_id=B.book_id;SELECT*FROMALEFTJOINBONA.book_id=B.book_id;SELECT*FROMARIGHTJOINBONA.book_id=B.book_id;SELECT*FROMAFULLJOINBONA.book_id=B.book_id;

上面的 SQL 語句還可以加上where條件從句,對(duì)記錄進(jìn)行篩選,比如只返回表 A 里面不匹配表 B 的記錄。

SELECT*FROMALEFTJOINBONA.book_id=B.book_idWHEREB.idISnull;

另一個(gè)例子,返回表 A 或表 B 所有不匹配的記錄。

SELECT*FROMAFULLJOINBONA.book_id=B.book_idWHEREA.idISnullORB.idISnull;

此外,還存在一種特殊的連接,叫做"交叉連接"(cross join),指的是表 A 和表 B 不存在關(guān)聯(lián)字段,這時(shí)表 A(共有 n 條記錄)與表 B (共有 m 條記錄)連接后,會(huì)產(chǎn)生一張包含 n x m 條記錄的新表(見下圖)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    775

    瀏覽量

    44272
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3852

    瀏覽量

    64727
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1209

    瀏覽量

    24848

原文標(biāo)題:數(shù)據(jù)庫表連接的簡(jiǎn)單解釋

文章出處:【微信號(hào):DBDevs,微信公眾號(hào):數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    HarmonyOS開發(fā)案例:【關(guān)系數(shù)據(jù)庫

    使用關(guān)系數(shù)據(jù)庫的相關(guān)接口實(shí)現(xiàn)了對(duì)賬單的增、刪、改、查操作。
    的頭像 發(fā)表于 04-22 14:58 ?707次閱讀
    HarmonyOS開發(fā)案例:【<b class='flag-5'>關(guān)系</b><b class='flag-5'>型</b><b class='flag-5'>數(shù)據(jù)庫</b>】

    HarmonyOS開發(fā)案例:【搭建關(guān)系數(shù)據(jù)庫】(4)

    本節(jié)將介紹如何調(diào)用關(guān)系數(shù)據(jù)庫接口在本地搭建數(shù)據(jù)庫,并讀寫相應(yīng)的用戶數(shù)據(jù)
    的頭像 發(fā)表于 05-11 10:27 ?1009次閱讀
    HarmonyOS開發(fā)案例:【搭建<b class='flag-5'>關(guān)系</b><b class='flag-5'>型</b><b class='flag-5'>數(shù)據(jù)庫</b>】(4)

    關(guān)系數(shù)據(jù)庫與非關(guān)系數(shù)據(jù)庫的區(qū)別淺析

    關(guān)系數(shù)據(jù)庫的一個(gè)劣勢(shì)就是 阻抗失諧(impedance mismatch):關(guān)系模型和內(nèi)存中的數(shù)據(jù)
    發(fā)表于 06-03 06:03

    HarmonyOS關(guān)系數(shù)據(jù)庫和對(duì)象關(guān)系數(shù)據(jù)庫的使用方法

    容易就上手的知識(shí)。本篇速成教程直接使用最精準(zhǔn)和簡(jiǎn)短的文字,再配上講解代碼,讓我們能在10分鐘左右就能掌握最基本的數(shù)據(jù)庫使用方法。數(shù)據(jù)庫的三大要素:數(shù)據(jù)庫、表、字段,接下來為大家介紹關(guān)系
    發(fā)表于 03-29 14:10

    什么是關(guān)系數(shù)據(jù)庫

    什么是關(guān)系數(shù)據(jù)庫 關(guān)系數(shù)據(jù)庫簡(jiǎn)介   關(guān)系
    發(fā)表于 06-17 07:38 ?9130次閱讀

    什么是非關(guān)系數(shù)據(jù)庫

    什么是非關(guān)系數(shù)據(jù)庫 談到非關(guān)系數(shù)據(jù)庫設(shè)計(jì)的難點(diǎn),朱海峰說:“我們可以從一些場(chǎng)景來看這個(gè)問題
    發(fā)表于 06-17 15:49 ?3153次閱讀

    hbase和關(guān)系數(shù)據(jù)庫的區(qū)別

    hbase和關(guān)系數(shù)據(jù)庫的區(qū)別就是對(duì)于傳統(tǒng)數(shù)據(jù)庫,增加列對(duì)于一個(gè)項(xiàng)目來講,改變是非常大的。但是對(duì)于nosql,插入列和刪除列,跟傳統(tǒng)
    發(fā)表于 12-27 15:51 ?1.1w次閱讀
    hbase和<b class='flag-5'>關(guān)系</b><b class='flag-5'>型</b><b class='flag-5'>數(shù)據(jù)庫</b>的區(qū)別

    關(guān)系數(shù)據(jù)庫表結(jié)構(gòu)的設(shè)計(jì)有什么技巧??jī)蓚€(gè)設(shè)計(jì)技巧詳細(xì)說明

    關(guān)系數(shù)據(jù)庫表結(jié)構(gòu)的設(shè)計(jì),有下面兩個(gè)設(shè)計(jì)技巧: 物理主鍵作為關(guān)聯(lián)的外鍵 關(guān)系數(shù)據(jù)庫,由多個(gè)
    發(fā)表于 10-16 10:33 ?13次下載

    基于SQLite的鴻蒙的關(guān)系數(shù)據(jù)庫使用

    HarmonyOS關(guān)系數(shù)據(jù)庫基于SQLite組件提供了一套完整的對(duì)本地數(shù)據(jù)庫進(jìn)行管理的機(jī)制,對(duì)外提供了一系列的增、刪、改、查接口,也可以直接運(yùn)行用戶輸入的SQL語句來滿足復(fù)雜的場(chǎng)景需
    的頭像 發(fā)表于 01-20 11:48 ?4306次閱讀
    基于SQLite的鴻蒙的<b class='flag-5'>關(guān)系</b><b class='flag-5'>型</b><b class='flag-5'>數(shù)據(jù)庫</b>使用

    輕松設(shè)計(jì)關(guān)系數(shù)據(jù)庫教程

    本文討論關(guān)系數(shù)據(jù)庫設(shè)計(jì)相關(guān)的一些內(nèi)容,涉及關(guān)系模型,表結(jié)構(gòu)設(shè)計(jì)等內(nèi)容,以學(xué)生選修課程講述設(shè)計(jì)過程,在盡量講清楚設(shè)計(jì)要領(lǐng)的前提下,簡(jiǎn)化設(shè)計(jì)內(nèi)容。 本文基于MySQL數(shù)據(jù)庫為基礎(chǔ),適合有一定關(guān)系
    的頭像 發(fā)表于 07-13 09:13 ?1818次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)】MySQL數(shù)據(jù)庫Delete誤刪除的數(shù)據(jù)恢復(fù)案例

    MySQL數(shù)據(jù)庫屬于關(guān)系數(shù)據(jù)庫。SQL是一種用于操作關(guān)系
    的頭像 發(fā)表于 12-07 11:49 ?3466次閱讀
    【<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)】MySQL<b class='flag-5'>數(shù)據(jù)庫</b>Delete誤刪除的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    OpenHarmony關(guān)系數(shù)據(jù)庫概述

    關(guān)系數(shù)據(jù)庫(Relational Database, 以下簡(jiǎn)稱RDB)是一種基于關(guān)系模型來管理數(shù)據(jù)數(shù)
    的頭像 發(fā)表于 03-28 18:08 ?1131次閱讀
    OpenHarmony<b class='flag-5'>關(guān)系</b><b class='flag-5'>型</b><b class='flag-5'>數(shù)據(jù)庫</b>概述

    關(guān)系數(shù)據(jù)庫的基本原理(什么是關(guān)系數(shù)據(jù)庫

    組成。關(guān)系數(shù)據(jù)庫是基于實(shí)用和可重復(fù)使用的概念,是支持高性能交互查詢、交易處理能力、安全性和靈活性的關(guān)鍵數(shù)據(jù)存儲(chǔ)和維護(hù)方法。關(guān)系數(shù)據(jù)庫的概念
    的頭像 發(fā)表于 07-10 09:06 ?1497次閱讀

    常見的存儲(chǔ)Idea數(shù)據(jù)庫地方

    Idea的數(shù)據(jù)庫被存儲(chǔ)在許多不同的地方,取決于應(yīng)用程序和使用的技術(shù)。下面將詳細(xì)描述一些常見的存儲(chǔ)Idea數(shù)據(jù)庫地方關(guān)系
    的頭像 發(fā)表于 12-06 14:15 ?1063次閱讀

    關(guān)系數(shù)據(jù)庫和非關(guān)系區(qū)別

    關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫在多個(gè)方面存在顯著差異,主機(jī)推薦小編為您整理發(fā)布
    的頭像 發(fā)表于 01-10 09:58 ?137次閱讀
    主站蜘蛛池模板: 日本三级黄在线观看 | 天天视频一区二区三区 | 4438x成人全国最大 | 黄色欧美| 被公侵犯肉体中文字幕一区二区 | 日本特级黄录像片 | 亚洲va中文字幕 | 欧美日韩亚洲国内综合网俺 | 久久成人亚洲 | 四虎影视最新地址 | 亚洲人成影网站~色 | 欧美午夜视频一区二区 | 国产女人在线视频 | 亚洲色图欧美在线 | 四虎国产精品永久在线播放 | 亚洲狠狠婷婷综合久久久图片 | 丁香综合激情 | 日韩免费视频一区二区 | 亚洲一级香蕉视频 | 亚洲成av人影片在线观看 | 好吊日在线 | 女人张腿让男桶免费视频网站 | 亚洲一区二区三区四区五区六区 | 91在线免费看| 嫩草影院网站入口 | 黑人40厘米全进去xxxx猛交 | 一级毛片无毒不卡直接观看 | 色偷偷成人 | 在线视频黄色 | 乱子伦xxx欧美 | 在线免费观看91 | 色婷婷视频在线观看 | 国产黄色网页 | 亚洲免费一级视频 | 一级片在线免费观看 | 最好看的最新中文字幕2018免费视频 | 天天操天天透 | 天堂社区在线视频 | 夜夜爽天天狠狠九月婷婷 | 国产精品久久国产三级国不卡顿 | 午夜美女网站 |