MySql的連接查詢

若一個查詢同時涉及到兩個或者兩個以上的表,則稱之為連接查詢。常見的包括:等值連接查詢,自然連接查詢,非等值連接查詢,自身連接查詢,外連接查詢(左右連接)。

1.等值與非等值連接查詢(內連接)。

(等值連接的圖)

?

參考表數據庫表:

(表1與表2做了外鍵關聯)

等值連接概念:當連接運算符為=時為等值連接,相當于兩表執行笛卡爾后,取兩表連結列值相等的記錄。

查詢語句:

SELECT A.*, B.*
FROM student A INNER JOIN sc B
ON A.`sno`=B.`sno`;

另外一種寫法:

SELECT student.* ,sc.*
FROM student , sc
WHERE student.`sno` = sc.`sno`;

兩種寫法除了語法上的差別,沒有明顯差距,主要方便了解。看了大多數博客上寫的都是第一次,可能有一定優劣,有興趣的可以自己去百度下。

查詢結果都是一樣:

非等值連接概念:連接規則由等號以外的運算符組成。>,=,<,,>=,<=,<>,!=,between等。

這里只使用大于號">"比較兩個表的連接列的值,相當于兩表執行笛卡爾后,取一個表大于另一個表的連結列值的記錄。(這兩個表查詢的結果并沒有太大的意義,只是為了方便理解概念)

查詢語句:

SELECT A.*, B.*
FROM student A INNER JOIN sc B
ON A.`sno`>B.`sno`;

另外一種寫法:

SELECT student.* ,sc.*
FROM student , sc?
WHERE student.`sno` >sc.`sno`;

查詢的結果仍然一樣:

自然連接:在等值連接中把重復的屬性列去掉則為自然連接。(自然連接并不是自連接,兩者要有一定區分度)

查詢語句(仍然是兩種寫法,不過我懶的copy了 -_-):

SELECT student.* ,sc.`cno`,sc.`grade`
FROM student , sc
WHERE student.`sno` = sc.`sno`;

查詢結果:

?

2.外連接(左右連接)

左連接概念:指將左表的所有記錄與右表符合條件的記錄,返回的結果除內連接的結果,還有左表不符合條件的記錄,并在右表相應列中填NULL。

?

查詢語句:

SELECT student.*,sc.`cno`,sc.`grade`
FROM student LEFT JOIN sc
ON student.`sno`=sc.`sno`;

?

右外連接:指將右表的所有記錄與左表符合條件的記錄,返回的結果除內連接的結果,還有右表不符合條件的記錄,并在左表相應列中填NULL。(畫圖功底太low,就不多此一舉了 -_-)

查詢語句:

SELECT student.*,sc.`cno`,sc.`grade`
FROM student RIGHT JOIN sc
ON student.`sno`=sc.`sno`;

?

這里要提示一下:

on和where條件的區別如下:

1、?on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。

2、where條件是在臨時表生成好后,再對臨時表進行過濾的條件。

而inner jion(內連接)沒這個特殊性,則條件放在on中和where中,返回的結果集是相同的。

?

3.自身連接(自連接)

自身連接概述:連接操作不僅可以在兩個表之間進行,也可以是一個表與其自己進行連接,成為表的自身連接,也就是所謂的自連接。

自連接查詢其實等同于連接查詢,需要兩張表,只不過它的左表(父表)和右表(子表)都是自己。做自連接查詢的時候,是自己和自己連接,分別給父表和子表取兩個不同的別名,然后附上連接條件。

這里以一個課程的數據庫表來做實例。

查詢語句:

SELECT a.*,b.name
FROM SUBJECT a , SUBJECT b
WHERE a.`pno`=b.`cno`;

查詢結果:

有些課程沒有先行課,因此我們可以用左關聯結合自連接來查詢,便于觀察。

查詢語句:

SELECT a.*,b.name
FROM SUBJECT a LEFT JOIN SUBJECT b
ON a.`pno`=b.`cno`;

查詢結果:

?

轉載于:https://www.cnblogs.com/ITSeed/p/11167226.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277292.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277292.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277292.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux下ssh通過公鑰登錄服務器

經常會通過ssh登錄遠程服務器&#xff0c;一種是通過密碼方式登錄&#xff0c;一種是通過公鑰登錄。 如何設置通過公鑰登錄服務器 1. 首先生成自己的公鑰和私鑰 ssh-keygen 命令用來生成公鑰和私鑰-t 用來指定密鑰類型&#xff08;dsa | ecdsa | ed25519 | rsa | rsa1&#xff…

qt運行C語言后無顯示,qt designer啟動后不顯示界面問題的原因與解決辦法-站長資訊中心...

Qt 5.6.1無論是在vs里雙擊ui文件還是直接啟動designer.exe都一直無法顯示界面&#xff0c;但任務管理器中可以看到該進程是存在的。前幾天還正常的&#xff0c;但昨天加了一塊NVIDIA的顯卡(機器自帶核顯)&#xff0c;可能與此有關。幸好還可以通過QtCreator打開ui文件進行編輯。…

OpenSolaris北京用戶組的第一次活動

OpenSolaris北京用戶組的第一次活動作者: BadcoffeeEmail: blog.olivergmail.comBlog: http://blog.csdn.net/yayong2005年10月10月15號&#xff0c;OpenSolaris北京用戶組在北京西郊賓館會議廳組織了成立以來的第一次活動。盡管OpenSolaris早在2005年6月14日就正式開放源代碼&…

. SQL多條件查詢存儲過程

編輯器加SQL多條件查詢存儲過程 2010-05-13 17:06:29| 分類&#xff1a; SQL | 標簽&#xff1a; |字號大中小 訂閱 . 例一、 ALTER proc SelectProduct ProdID varchar(10), ProdName nvarchar(30), CategoryID varchar(5), MinPrice decimal(10,2), MaxPrice decimal(10,2) a…

矩陣轉置c語言的思路,矩陣轉置 (C語言代碼)

解題思路:注意事項:參考代碼:#includeint main(){int n,s[100][100];void transposition(int(*p)[100], int n);scanf("%d", &n);for (int i 0; i < n; i){for (int j 0; j < n; j)scanf("%d", *(s i) j);}transposition(s, n);return 0;}vo…

Android PermissionUtils:運行時權限工具類及申請權限的正確姿勢

Android PermissionUtils&#xff1a;運行時權限工具類及申請權限的正確姿勢 ifadai 關注 2017.06.16 16:22* 字數 318 閱讀 3637評論 1喜歡 6PermissionUtil 經常寫Android運行時權限申請代碼&#xff0c;每次都是復制過來之后&#xff0c;改一下權限字符串就用&#xff0c;把…

實現帶下拉菜單的工具欄按鈕

在工具欄中使用真彩色圖標 實現帶下拉菜單的工具欄按鈕 20050916轉載于:https://www.cnblogs.com/henryzc/archive/2005/11/08/271346.html

文件目錄管理與顯示c語言,Centos 7 文件和目錄管理

查看權限在終端輸入:ls -l xxx.xxx (xxx.xxx是文件名)那么就會出現相類似的信息&#xff0c;主要都是這些&#xff1a;-rw-rw-r--其中&#xff1a; 最前面那個 - 代表的是類型中間那三個 rw- 代表的是所有者(user)然后那三個 rw- 代表的是組群(group)最后那三個 r-- 代表的是…

Linux基礎監控小工具nmon

nmon是一種在AIX與各種Linux操作系統上廣泛使用的監控與分析工具&#xff0c; nmon所記錄的信息是比較全面的&#xff0c;它能在系統運行過程中實時地捕捉系統資源的使用情況&#xff0c;并且能輸出結果到文件中。nmon工具可以幫助在一個屏幕上顯示所有重要的性能優化信息&…

vue的配置環境篇

1.電腦已經安裝的nodejs和webpack。 2.1&#xff09;打開cmd。winr。可以直接輸入node -v查看版本。安裝淘寶鏡像 npm install -g cnpm --registryhttp://registry.npm.taobao.org &#xff0c;安裝成功可以查看下&#xff0c;cnpm -v 3.安裝vue腳手架&#xff0c;輸入命令&am…

最近比較毀硬件

上上周末公司機器主板南橋在一股青煙中壯烈犧牲……前天家里機器的GF4 Ti4600也半死不活了&#xff0c;不能裝驅動&#xff0c;只能用640x480 16色裝了驅動系統就無法啟動&#xff0c;靠靠的從肥巖那弄了塊GF FX5600XT 機器算是能亮了郁悶阿轉載于:https://www.cnblogs.com/sko…

行列式運算算法c語言,新手作品:行列式計算C語言版

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓對話 ControlHeightDecrease ShiftUp Arrow 向上調整選定的控件或對話一個對話單位對話 ControlHeightIncrease ShiftDown Arrow 向下調整選定的控件或對話一個對話單位對話 ControlMoveDown Dow…

CentOSLinux安裝Docker容器

Docker 使用 環境說明 CentOS 7.3&#xff08;不準確地說&#xff1a;要求必須是 CentOS 7 64位&#xff09;不建議在 Windows 上使用Docker 基本概念 官網&#xff1a;https://www.docker.com/宿主機&#xff1a;安裝 Docker 的那臺電腦Docker&#xff1a;一個虛擬化軟件&…

Agilent RF fundamentals (4)- Impedance match and distortions

1 Impedance match&#xff1a; 2 distortions&#xff1a; Solar radiation produces background noise 轉載于:https://www.cnblogs.com/huangbaobaoi/p/9650937.html

怎樣才能娶到比爾-蓋茨的女兒

怎樣才能娶到比爾-蓋茨的女兒 一位優秀的商人杰克&#xff0c;有一天告訴他的兒子杰克&#xff1a;我已經決定好了一個女孩子&#xff0c;我要你娶她兒子&#xff1a;我自己要娶的新娘我自己會決定杰克&#xff1a;但我說的這女孩可是比爾蓋茨的女兒喔兒子&#xff1a;哇&…

Android動態賦權限,安卓6.0以上動態添加權限超簡單模板

今天又是“咔嚓”、“窟窿”、“轟隆”&#xff0c;不曉得哪位大仙在渡劫。真的是風生水起&#xff0c;虎虎生威&#xff01;&#xff01;&#xff01;言歸正傳&#xff1a;描述&#xff1a;最近做了從服務器下載apk到手機內存&#xff0c;然后安裝打開以及 從服務器下載pdf文件…

web前端常用代碼于面試等資源

https://www.cnblogs.com/moqiutao/p/4766146.html轉載于:https://www.cnblogs.com/as3lib/p/9654925.html

html 跳轉到本頁面指定位置

1 <html xmlns"http://www.w3.org/1999/xhtml"> 2 <head> 3 </head> 4 <body> 5 <a href"#ct1">跳轉到詞條1</a> 6 7   <a href"#ct2">跳轉到詞條2</a> 8   <br> 9   <di…

事情太多了,我實在支持不住了轉載于:https://www.cnblogs.com/zjblue/archive/2005/12/03/290186.html

android論壇功能開發教程,Android教程 如何免費生成論壇App

介紹按照快速集成文檔&#xff0c;您可以很容易的把BBSSDK提供的功能集成到您的應用中&#xff0c;然后使用BBSSDK來做開發。在集成前&#xff0c;您也可以先下載示例Sample的源碼工程(包含應用內打開pdfoffice等格式文件)。使用Android Studio打開后&#xff0c;編譯出網站上提…