最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【D1n910】(15/42) C++語言程序設(shè)計 - MySQL數(shù)據(jù)庫學(xué)習(xí)筆記 表連接

2023-04-03 13:28 作者:愛交作業(yè)的D1N910  | 我要投稿

正常操作,正常分析,大家好,我是D1N910,這是我觀看【MySQL數(shù)據(jù)庫】C++語言程序設(shè)計 - MySQL數(shù)據(jù)庫從而整理的學(xué)習(xí)筆記。我會繼續(xù)努力的。

本篇 D1n910】(13/42)學(xué)習(xí)【MySQL數(shù)據(jù)庫】C++語言程序設(shè)計 - MySQL數(shù)據(jù)庫的筆記

的主要內(nèi)容是 表連接!多張表的數(shù)據(jù)展示!

如果你沒看過之前的專欄內(nèi)容,那么強(qiáng)烈建議一定要先看看再繼續(xù)往下看


Unit08 表連接

  1. 表連接的類型

  2. 內(nèi)連接

  3. 外連接

有關(guān)于表連接的需求需求:列出學(xué)生的信息,包括學(xué)號、姓名和班級名稱

student:?student_no、student_name

classes:?class_name

數(shù)據(jù)在兩個不同的表,那么就需要把兩個表變成一個大表,然后從這個大表中進(jìn)行數(shù)據(jù)的檢索。

1.表連接的類型

· 內(nèi)連接

????符合關(guān)聯(lián)條件的記錄被檢索出來,不符合條件的被過濾掉

·?外連接

????外連接的結(jié)果集 = 內(nèi)連接的結(jié)果集 + 匹配不上的記錄


2.內(nèi)連接

????語法

????????> select 字段列表

示例

》列出學(xué)生及其所在班級的信息,包括學(xué)號、姓名和班級名稱

inner 可寫可不寫


》向班級表和學(xué)生表中分別插入測試數(shù)據(jù),再次執(zhí)行查詢語句

可以看出剛剛新插入的測試輸入,其中張三豐是沒有綁定班級的

再次執(zhí)行查詢語句發(fā)現(xiàn)沒有查出

匹配不上的數(shù)據(jù)不會出現(xiàn)在結(jié)果集中,只有使得連接成立的才會出現(xiàn)在結(jié)果集中。


*表的別名

剛才我們學(xué)習(xí)過表頭的別名,這里我們還可以弄表的別名,剛剛說過inner可以省略,那么我們這里省略,然后和表頭一樣,表名空格然后名字。

下面可以看出信息是和剛剛保持一致的


備注1:表名起別名后,不能再用原表名了,否則會報錯。

備注2:若表A中的字段名在表B中未出現(xiàn),則可省略表A名or表A別名。表B同理。

執(zhí)行結(jié)果

不過不太建議,因為如果沒有指定表名的話,會所有的表都找,導(dǎo)致效率低。


三表內(nèi)連接(后面4表、5表都一樣的)

語法

直接用join進(jìn)行連接即可。

關(guān)聯(lián)條件的數(shù)量是連接條件的數(shù)量? - 1。超過兩張表以后,表的關(guān)聯(lián)條件不是完全無需的。至少要和前面出現(xiàn)的表有關(guān)系。


回憶我們數(shù)據(jù)庫模型圖,想要測試三表連接的例子,那么肯定要用上 choose 表。

這里插入的時候可能會遇到報錯,我自己碰到以下兩種

1、choose 有外鍵限制,如果插入的數(shù)據(jù)對應(yīng)主表的數(shù)據(jù)不一致,那么就插入失敗;

2、插入時的內(nèi)容不是時間格式或者有其他錯誤,也會插入失敗,注意細(xì)節(jié)。


按照老師的視頻,在把一些之前的表清理后,目前有七個表。


根據(jù)我們之前的數(shù)據(jù)庫模型圖,我們一共有三種不同的三表。

  1. couse、choose和student

  2. couse、choose和teacher

  3. student、choose和teacher

現(xiàn)在用 couse、choose和student 這三張表

任務(wù):列出學(xué)生及其選課的信息,包括學(xué)號、姓名、選修的課程名和成績

student: student_no、student_name

choose: score

course: course_name

關(guān)聯(lián)條件1: student.student_no = choose.student_no

關(guān)聯(lián)條件2: course.course_no = choose.course_no

1.寫出框架

2.寫上表以及關(guān)系(注意順序)

3.寫上表名

運(yùn)行結(jié)果

* 如果學(xué)生沒有選任何一門課,那么就不會在結(jié)果中出現(xiàn)


3.外連接

類型

????>左外連接

????????左外連接的結(jié)果集 = 內(nèi)連接的結(jié)果集 + 左表中匹配不上的記錄

? ?> 右外連接

???????右外連接的結(jié)果集 =內(nèi)連接的結(jié)果集 +右表中匹配不上的記錄

語法

????>左外連接

????>右外連接

注意1:outer? 可以省略。

注意2:和內(nèi)連接不同,這里的 join 左右兩張表的順序會影響結(jié)果。


任務(wù)1 :左連接示例,列出全部學(xué)生的學(xué)號、姓名和所在班級名稱(沒有班級的學(xué)生也列出)

student: student_no, student_name

classes: class_name

關(guān)聯(lián)條件:s.class_no == c.class_no;

SQL語句

運(yùn)行結(jié)果,匹配不上班級的張三豐也出來了,只是班級名稱用 NULL 填上


任務(wù)2:右連接示例,列出全部班級的學(xué)生學(xué)號、姓名和所在班級名稱(沒有學(xué)生的班級也列出)

student: student_no, student_name

classes: class_name

關(guān)聯(lián)條件:s.class_no == c.class_no;

SQL語句

運(yùn)行結(jié)果,匹配不上學(xué)生的2018電子信息1班也出來了,只是學(xué)號和姓名用 NULL 填上

恭喜你,掌握了數(shù)據(jù)庫表的設(shè)計

你的學(xué)習(xí)進(jìn)度為 15/42!

未完待續(xù)!


【D1n910】(15/42) C++語言程序設(shè)計 - MySQL數(shù)據(jù)庫學(xué)習(xí)筆記 表連接的評論 (共 條)

分享到微博請遵守國家法律
自贡市| 贵定县| 会宁县| 团风县| 扎兰屯市| 广西| 定日县| 凤冈县| 茂名市| 上栗县| 平果县| 涞源县| 兰溪市| 博爱县| 东丰县| 云和县| 万全县| 锦州市| 石狮市| 达拉特旗| 临邑县| 北安市| 科技| 黔南| 东兰县| 西乌珠穆沁旗| 黄骅市| 浮山县| 怀仁县| 桓仁| 西峡县| 垫江县| 阳城县| 灯塔市| 台中县| 长乐市| 三穗县| 汽车| 阿合奇县| 赣州市| 上杭县|