数据库系列之查询(5)
内连接 1 语法 SELECT 列名 FROM 表1 INNER JOIN 表2 ON 表1.列名 条件运算符 表2.列名 [WHERE 条件] [ORDER BY 排序列] 其中ON 表1.列名 条件运算符 表2.列名 中,条件运算符常用的是:=、。 表1.列名和表2.列名,分别是两个表的公共列。 内连接查询出的是两
内连接
1 语法
SELECT
FROM 表1
INNER JOIN 表2 ON 表1.列名 条件运算符 表2.列名
[WHERE 条件]
[ORDER BY 排序列]
其中“ON 表1.列名 条件运算符 表2.列名” 中,条件运算符常用的是:=、。
表1.列名和表2.列名,分别是两个表的公共列。
内连接查询出的是两个表公共列共有的记录。
2 示例
(1)Books与Authors内连接SQL语句
<span>SELECT</span> b.BookCode <span>as</span> 图书编号, b.BookName <span>as</span> 图书名称, a.AuthorName <span>as</span><span> 作者姓名 </span><span>FROM</span> Books <span>as</span><span> b </span><span>INNER</span> <span>JOIN</span> Authors <span>as</span> a <span>ON</span> b.AuthorID <span>=</span> a.AuthorID
(2)内连接另外一种写法
<span>SQL Server2005还兼容以前版本的内连接语法,即使用WHERE子句进行内连接。 </span><span>SELECT</span> b.BookCode <span>as</span> 图书编号, b.BookName <span>as</span> 图书名称, a.AuthorName <span>as</span><span> 作者姓名 </span><span>FROM</span><span> Books b, Authors a </span><span>WHERE</span> b.AuthorID <span>=</span> a.AuthorID
3 多表内连接语法
SELECT
FROM 表1
INNER JOIN 表2 ON 表1.列名 条件运算符 表2.列名
INNER JOIN 表3 ON 表1.列名 条件运算符 表3.列名
……
[WHERE 条件]
[ORDER BY 排序列]
4 示例
<span>SELECT</span> b.BookCode <span>as</span> 图书编号, c.PublisherName <span>as</span><span> 出版商名, b.BookName </span><span>as</span> 图书名称,a.AuthorName <span>as</span><span> 作者姓名 </span><span>FROM</span> Books b <span>INNER</span> <span>JOIN</span> Authors a <span>ON</span> b.AuthorID<span>=</span><span>a.AuthorID </span><span>INNER</span> <span>JOIN</span> Publisher c <span>ON</span> b.PublisherID<span>=</span>c.PublisherID
外连接
左外连接语法
SELECT
FROM 左表
LEFT [OUTER] JOIN 右表 ON 左表.列名 条件运算符 右表.列名
[WHERE 条件]
[ORDER BY 排序列]
示例
使用左外连接查询Books与Authors表中的数据
<span>SELECT</span> b.BookCode <span>as</span> 图书编号, b.BookName <span>as</span> 图书名称, a.AuthorName <span>as</span><span> 作者姓名 </span><span>FROM</span><span> Books b </span><span>LEFT</span> <span>JOIN</span> Authors a <span>ON</span> b.AuthorID<span>=</span>a.AuthorID
左外连接是以左表为主表,去关联右表(从表),结果集中包含主表所有数据行,如果主表的某行在从表中没有匹配行时,则从表的选择列为NULL值。
右外连接语法
SELECT
FROM 左表 RIGHT [OUTER] JOIN 右表
ON 左表.列名 条件运算符 右表.列名
[WHERE 条件]
[ORDER BY 排序列]
示例
使用右外连接查询Books与Authors表中的数据
SELECT b.BookCode as 图书编号, b.BookName as 图书名称, a.AuthorName as 作者姓名
FROM Books b
RIGHT JOIN Authors a ON b.AuthorID=a.AuthorID
右外连接是以右表为主表,去关联左表(从表),结果集中包含主表所有数据行,如果主表的某行在从表中没有匹配行时,则从表的选择列为NULL值。
完全连接
语法
SELECT
FROM 左表
FULL [OUTER] JOIN 右表 ON 左表.列名 条件运算符 右表.列名
[WHERE 条件]
[ORDER BY 排序列]
完全连接左表和右表中所有行,当某行数据在另一个表中没有匹配时,则另一个表的选择列值为NULL
示例
使用完全连接查询Books与Authors表中的数据
<span>SELECT</span> b.BookCode <span>as</span> 图书编号, b.BookName <span>as</span> 图书名称, a.AuthorName <span>as</span><span> 作者姓名 </span><span>FROM</span><span> Books b </span><span>FULL</span> <span>JOIN</span> Authors a <span>ON</span> b.AuthorID<span>=</span>a.AuthorID
交叉联接
概念:没有用where子句的交叉连接将产生连接所涉及的笛卡尔积第一个表的行数乘以第二个表的行数等于笛卡尔积和结果集的大小
交叉连接: Cross join(不带条件where,如果带返回或显示的是匹配的行数)
SQL语法:select * from Books cross join Books
如果有条件(<span>where</span><span>) </span><span>select</span> <span>*</span> <span>from</span> Books <span>cross</span> <span>join</span> Authors <span>where</span> Books.AuthorID<span>=</span><span> Authors.AuthorID 等价于 </span><span>select</span> <span>*</span> <span>from</span> Books ,Authors <span>--</span><span>(不带where)</span>

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

小米15系列預計10月正式發布,其全系列代號已在外媒MiCode程式碼庫曝光。其中,旗艦級小米15Ultra代號為"Xuanyuan"(意為"軒轅"),此名源自中國神話中的黃帝,象徵尊貴。小米15的代號為"Dada",而小米15Pro則以"Haotian"(意為"昊天")為名。小米15SPro內部代號為"dijun",暗指《山海經》創世神帝俊。小米15Ultra系列涵蓋

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

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

自去年华为Mate60系列开售以来,我个人就一直将Mate60Pro作为主力机使用。在将近一年的时间里,华为Mate60Pro经过多次OTA升级,综合体验有了显著提升,给人一种常用常新的感觉。比如近期,华为Mate60系列就再度迎来了影像功能的重磅升级。首先是新增AI消除功能,可以智能消除路人、杂物并对空白部分进行自动补充;其次是主摄色准、长焦清晰度均有明显升级。考虑到现在是开学季,华为Mate60系列还推出了秋日礼遇活动:购机可享至高800元优惠,入手价低至4999元。常用常新的产品力加上超值

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

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

Lambda表達式是無名稱的匿名函數,其語法為:(parameter_list)->expression。它們具有匿名性、多樣性、柯里化和閉包等特徵。在實際應用中,Lambda表達式可用於簡潔地定義函數,如求和函數sum_lambda=lambdax,y:x+y,並透過map()函數應用於列表來進行求和操作。

透過Go標準庫database/sql包,可以連接到MySQL、PostgreSQL或SQLite等遠端資料庫:建立包含資料庫連接資訊的連接字串。使用sql.Open()函數開啟資料庫連線。執行SQL查詢和插入操作等資料庫操作。使用defer關閉資料庫連線以釋放資源。
