目錄
前言
连接简介
实例
1. 内连接
2. 外连接之左外连接
3.外连接之右外连接
4.全外连接
5.自身连接
6.交叉连接
总结
首頁 資料庫 mysql教程 数据库之查询的连接方式

数据库之查询的连接方式

Jun 07, 2016 pm 03:55 PM
前言 開頭 資料庫 方式 查詢 連接

前言 在写开头的时候我想到了两个开始,比较一下 第一个开头:sql几种常见的查询连接方式 第二个开头:sql(结构化查询语言)有数据定义功能,数据查询功能,数据操作功能,数据控制功能。我们平常所说的增删改查就是sql这些功能的更加简洁的说法。现在就查

前言

在写开头的时候我想到了两个开始,比较一下

第一个开头:sql几种常见的查询连接方式
第二个开头:sql(结构化查询语言)有数据定义功能,数据查询功能,数据操作功能,数据控制功能。我们平常所说的增删改查就是sql这些功能的更加简洁的说法。现在就"查"来介绍几种常用的连接方式。
哪一种更好?我个人更加倾向于第二种。原因是第二种让我明确了我现在总结的知识在我的知识网中处于什么地方。让我的知识很有归属感。至于我为什么会想到第二种写法就要源于一趟课了。

在准备写这篇博客的过程中米老师给我们上了一堂课叫做“再谈编织知识网”。这堂课的中心思想我总结了两个方面。

第一个:学习新东西的时候要联系我们以前的东西。

第二个:全局观,"不谋万世者,不足谋一时;不谋全局者,不足谋一域。"对于我来说最大的收获不是老师讲的这两点,而是老师在讲第二点的时候无意之间提到的一句话,原话记不清出了大概的意思是:一定要有全局观,这样子才可以找到新东西里哪是你以前学习过的旧知识。这样子你的学习会轻松快乐的很多。
这句话对我有这么深的感触是因为我以前只是听老师讲全局观,但是自己对他的感觉其实是"熟悉的陌生人"。我从来不知道如何才算是有了全局观,还有全局观对我到底有何好处。但是老师说的"找到",让我一下子清楚过来了,全局观也算是刚刚开始认识了吧!现在想起来,全局观还会让我找到新知识的重点是什么。让我快速的了解他的全貌,这就为我下一步如何走奠定了基础。好处多多以后要多多题型着自己一点了。

好了现在开始进入正题,查询的几种连接方法。

连接简介

SQL提供了多种类型的连接方式,它们之间的区别在于:从相互交叠的不同数据集合中选择用于连接的行时所采用的方法不同。

我们最常用的连接方式有三种,分别是内连接,外连接;外连接又细分为左外连接,右外连接。除了这三种还有三种连接方式,分别是:全外连接,自身连接和交叉连接。

这几种连接方式的定义就简单的了解写一下吧

inner join(内连接):只返回两个表中联结字段相等的行

left outer join(左外连接):返回包括左表中的所有记录和右表中联结字段相等的记录

right outer join(右外连接):返回包括右表中的所有记录和左表中联结字段相等的记录

full outer(全外连接):返回左表和右表中全部的记录

自身连接:同一个表自己与自己连接。

cross join(交叉连接):交叉连接返回左表中的所有行,左表中的每一行与右表中的所有行组合

光看这些定义可以会有一种讲的都是什么的感觉,下面就用一种图形将它们简单的介绍一下,然后再通过具体的实例进行测试。

下图中一个圆圈代表一个表,其中蓝色的代表左表,白色的代表右表

\

从图上再来看几种连接就会清楚很多。

内连接:就是图中的C部分

左外连接:就是图中的A+C部分

右外联结:就是图中的B+C部分

实例

建立两种表分别是Table_a Table_b,在表中添加几条记录;如下图

\

\

1. 内连接

--内连接(inner) 可以省略inner
select a_UserID,b_StudentID from Table_a
inner join Table_b on a_UserID = b_StudentID  
登入後複製
结果

\

2. 外连接之左外连接

--外连接之左连接 也可以写成left join(省略outer)
select a_UserID,b_StudentID from Table_a
left outer join Table_b on a_UserID = b_StudentID 
登入後複製

结果

\

3.外连接之右外连接

--外连接之右连接 也可以写成 right join(省略outer)
select a_UserID,b_StudentID from Table_a
right outer join Table_b on a_UserID = b_StudentID

结果

\

4.全外连接

--全外连接
select a_UserID , b_StudentID from Table_a
full outer join Table_b on a_UserID=b_StudentID
登入後複製
结果

\

5.自身连接

--自身连接
select s.a_ID , s.a_UserName, i.a_UserID, i.a_UserName from Table_a i
join Table_a s on i.a_UserID = s.a_ID
登入後複製
结果

\

6.交叉连接

--交叉连接
select i.a_UserID,t.b_StudentID from Table_a i cross join Table_b t
select count(*) from Table_a i cross join Table_b t
登入後複製

结果

\

 

总结

这篇文章介绍常用的查询方法的使用方法,通过图形将它的定义图形化,使得理解起来更加的简单。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

12306怎麼查詢歷史購票紀錄 查看歷史購票紀錄的方法 12306怎麼查詢歷史購票紀錄 查看歷史購票紀錄的方法 Mar 28, 2024 pm 03:11 PM

12306訂票app下載最新版是一款大家非常滿意的出行購票軟體,想去哪裡就去那裡非常方便,軟體內提供的票源非常多,只需要通過實名認證就能在線購票,所有用戶的出行車票機票都可以輕鬆買到,享受不同的優惠折扣。還能提前開啟預約搶票,預約飯店、專車接送都是可以的,有了它想去哪裡就去那裡一鍵購票,出行更加簡單方便,讓大家的出行體驗更舒服,現在小編在線詳細為12306用戶帶來查看歷史購票記錄的方法。  1.打開鐵路12306,點擊右下角我的,點擊我的訂單  2.在訂單頁面點擊已支付。  3.在已支付頁

學信網如何查詢自己的學歷 學信網如何查詢自己的學歷 Mar 28, 2024 pm 04:31 PM

學信網如何查詢自己的學歷?在學信網中是可以查詢到自己的學歷,很多用戶都不知道如何在學信網中查詢到自己的學歷,接下來就是小編為用戶帶來的學信網查詢自己學歷方法圖文教程,感興趣的用戶快來一起看看吧!學信網使用教程學信網如何查詢自己的學歷一、學信網入口:https://www.chsi.com.cn/二、網站查詢:第一步:點選上方學信網位址,進入首頁點選【學歷查詢】;第二步:在最新的網頁中點選如下圖箭頭所示的【查詢】;第三步:之後在新頁面點選【的登陸學信檔案】;第四步:在登陸頁面輸入資料點選【登陸】;

Go語言如何實作資料庫的增刪改查操作? Go語言如何實作資料庫的增刪改查操作? Mar 27, 2024 pm 09:39 PM

Go語言是一種高效、簡潔且易於學習的程式語言,因其在並發程式設計和網路程式設計方面的優勢而備受開發者青睞。在實際開發中,資料庫操作是不可或缺的一部分,本文將介紹如何使用Go語言實作資料庫的增刪改查操作。在Go語言中,我們通常會使用第三方函式庫來操作資料庫,例如常用的sql套件、gorm等。這裡以sql包為例介紹如何實作資料庫的增刪改查操作。假設我們使用的是MySQL資料庫。

Hibernate 如何實作多型映射? Hibernate 如何實作多型映射? Apr 17, 2024 pm 12:09 PM

Hibernate多態映射可映射繼承類別到資料庫,提供以下映射類型:joined-subclass:為子類別建立單獨表,包含父類別所有欄位。 table-per-class:為子類別建立單獨資料表,僅包含子類別特有列。 union-subclass:類似joined-subclass,但父類別表聯合所有子類別列。

iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 Jul 18, 2024 am 05:48 AM

蘋果公司最新發布的iOS18、iPadOS18以及macOSSequoia系統為Photos應用程式增添了一項重要功能,旨在幫助用戶輕鬆恢復因各種原因遺失或損壞的照片和影片。這項新功能在Photos應用的"工具"部分引入了一個名為"已恢復"的相冊,當用戶設備中存在未納入其照片庫的圖片或影片時,該相冊將自動顯示。 "已恢復"相簿的出現為因資料庫損壞、相機應用未正確保存至照片庫或第三方應用管理照片庫時照片和視頻丟失提供了解決方案。使用者只需簡單幾步

深入解析HTML如何讀取資料庫 深入解析HTML如何讀取資料庫 Apr 09, 2024 pm 12:36 PM

HTML無法直接讀取資料庫,但可以透過JavaScript和AJAX實作。其步驟包括建立資料庫連線、發送查詢、處理回應和更新頁面。本文提供了利用JavaScript、AJAX和PHP來從MySQL資料庫讀取資料的實戰範例,展示如何在HTML頁面中動態顯示查詢結果。此範例使用XMLHttpRequest建立資料庫連接,發送查詢並處理回應,從而將資料填入頁面元素中,實現了HTML讀取資料庫的功能。

如何在PHP中處理資料庫連線錯誤 如何在PHP中處理資料庫連線錯誤 Jun 05, 2024 pm 02:16 PM

PHP處理資料庫連線報錯,可以使用下列步驟:使用mysqli_connect_errno()取得錯誤代碼。使用mysqli_connect_error()取得錯誤訊息。透過擷取並記錄這些錯誤訊息,可以輕鬆識別並解決資料庫連接問題,確保應用程式的順暢運作。

在PHP中使用MySQLi建立資料庫連線的詳盡教學 在PHP中使用MySQLi建立資料庫連線的詳盡教學 Jun 04, 2024 pm 01:42 PM

如何在PHP中使用MySQLi建立資料庫連線:包含MySQLi擴充(require_once)建立連線函數(functionconnect_to_db)呼叫連線函數($conn=connect_to_db())執行查詢($result=$conn->query())關閉連線( $conn->close())

See all articles