网易首页 > 网易号 > 正文 申请入驻

SQL Server 联接概述

0
分享至

每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。

在本文中,我们将学习 SQL 连接。我将解释 Devart SQL Complete 的工作原理以及它对编写 SQL 查询的开发人员有何帮助。

在本文中,我们将学习 SQL 连接。此外,我们还将了解SQL IntelliSence功能及其用途。此外,我将解释Devart SQL Complete 的工作原理以及它对编写 SQL 查询的开发人员有何用处。

SQL 连接通过使用公共列连接它们来填充来自不同表的数据。有四种类型的连接。

  1. 内部联接
  2. 左连接或左外连接
  3. 右连接或右外连接
  4. 全连接

为了演示,我创建了一个名为 demodatabase 的数据库,其中包含三个表。创建表的脚本如下:

USE [demodatabase]
GO
CREATE TABLE [dbo].[tblStudent](
[student_code] [varchar](10) NULL,
[student_name] [varchar](500) NULL,
[ADDRESS] [varchar](5000) NULL,
[School_ID] INT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[tblSchool](
[School_Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](50) NULL,
[Category_ID] int
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[tblSchoolCategory](
[Category_Id] [int] IDENTITY(1,1) NOT NULL,
[Category_Name] [varchar](50) NULL
) ON [PRIMARY]
GO

插入数据的脚本如下:

INSERT INTO [tblStudent] (student_code, student_name, ADDRESS, School_ID) VALUES
('STUD0001', ' Kayla Woodcock', ' K201 PRAMUKH GLORY SARGASAN', 1),
('STUD0002', ' Hudson Onslow', ' K205 PRAMUKH GLORY SARGASAN', 1),
('STUD0003', ' Isabella Rupp', ' G201 PRAMUKH LOTUS SARGASAN', 2),
('STUD0004', ' Eva Muirden', ' A205 PRAMUKH NAGAR SARGASAN', 4),
('STUD0005', ' Sophia Hinton', ' A205 PRAMUKH NAGAR SARGASAN', 2),
('STUD0006', ' Amy Trefl', ' A205 PRAMUKH NAGAR SARGASAN', 1)
GO
INSERT INTO tblSchool(Name,Category_ID) VALUES
('NALANDA SCHOOL',1),
('BN HIGH SCHOOL',1),
('Sarvajanik School',2),
('LP Sawani School',NULL),
('Karvy School',NULL),
('S V Shah Vidhya vihar',NULL)
INSERT INTO tblSchoolCategory(Category_Name) VALUES
('A'),
('B'),
('C')

现在,让我们了解 SQL Join 的工作原理。

内部联接

当您合并两个表的记录并仅填充来自两个表的匹配数据时,将使用内部联接。INNER JOIN 的语法如下:

SELECT ,… FROM INNER JOIN ON .=.

例如,我们要显示学生名单和他们就读的学校名称。查询如下:

SELECT s.student_code,s.student_name,s.ADDRESS,T.Name FROM tblSchool t
Inner JOIN tblStudent s ON s.School_ID=T.School_Id

查询输出:

左连接或左外连接

当您想要合并两个表的记录、填充两个表中的匹配记录以及左表中的所有记录时,使用左连接。如果右表没有匹配的记录,查询将返回NULL。LEFT JOIN 的语法如下:

SELECT ,… FROM LEFT JOIN ON .=.

例如,我们想要生成一个包含学校名称和在校学生总数的学校列表。显示学生总数和学校名称的查询如下:

SELECT T.Name SchoolName ,COUNT(s.student_code)TotalStudent FROM tblSchool t LEFT JOIN tblStudent s ON s.School_ID=T.School_Id GROUP BY t.Name

查询输出:

如您所见,查询返回了所有学校的学生人数。我们使用带有聚合函数的左连接来显示学生数为零的学校。

右连接或右外连接

当您想要合并两个表的记录、填充右表中的所有数据并匹配两个表的数据时,使用内连接。如果左表没有匹配的记录,则查询将返回 NULL。RIGHT JOIN 的语法如下:

SELECT ,… FROM RIGHT JOIN ON .=.

例如,我们想要生成一个类别列表和属于该类别的学校数量。

SELECT sc.Category_Name,COUNT(s.Name) FROM tblSchoolCategory sc RIGHT JOIN tblSchool s ON s.Category_ID=sc.Category_Id GROUP BY sc.Category_Name

查询输出:

如您所见,查询返回了所有类别以及属于该类别的学校数量。

全连接

FULL JOIN 是 LEFT JOIN 和 RIGHT JOIN 的组合。FULL JOIN 生成的结果包含两个表中的所有记录。FULL JOIN 的语法如下:

SELECT ,… FROM ,

例如,我们想用匹配和不匹配的记录填充 tblSchool 和 tblSchoolCategory 表中的记录。

SELECT * FROM tblSchoolCategory sc , tblSchool s

查询输出:

现在,让我们看看 SQL Server IntelliSense 如何通过减少输入工作量来帮助提高编码速度。

SQL 智能感知

SQL Intellisense 是 SQL Server 2008 中引入的一项功能。它会自动收集 SQL Server 实例的对象列表和元数据。SQL IntelliSense 提供以下好处:

  1. 它显示名称以键入的关键字开头的数据库对象列表。
  2. 它提供有关用T-SQL 代码编写的对象的快速信息。当您将光标悬停在对象名称上时,SQL Server IntelliSense 会显示其信息。
  3. 它显示指定系统和用户存储过程和函数的输入参数列表。
  4. 它有另一个名为INSERT SNIPPET的选项,这是一个脚本模板。假设您正在编写一个脚本来在表上创建索引。您可以使用 INSERT SNIPPET 选项轻松生成创建索引模板。您可以输入所需的详细信息。

要启用或禁用 SQL IntelliSense,请选择工具-->选项--> 展开文本编辑器--> 展开Transact-SQL-->IntelliSense--> 选择启用 IntelliSense。

您可以参考 SQL Server IntelliSense 和自动完成文章以了解有关 SQL Server IntelliSense 的更多信息。现在,让我们看看 Devart SQL Complete 如何成为 SQL IntelliSense 的良好替代品。

Devart SQL Complete 概述

Devart SQL Complete 是一个类似于 SQL Server IntelliSense 的 SQL 插件,但它还有许多其他功能可以提高 SQL 开发人员或 DBA 的工作效率。在本文中,我将展示 Devart 自动完成功能如何帮助使用 OUTER Join 编写 SQL 查询。例如,我们要填充所有学校和在这些学校学习的所有学生的列表。我已将整个查询编写过程拆分为多个图像以了解SQL Complete 的功能。

图片 1:由 Devart SQL Complete IntelliSense 填充的 SQL 命令列表。

图片 2:Devart SQL Complete 通过键入 USE 语句自动填充 SQL 数据库列表。如下图所示,显示了在名为Nisag-PC的 SQL 实例中创建的数据库列表。

图片 3:DevartSQL Complete 通过键入 SELECT 语句自动填充表列表。下面的屏幕截图显示DevartSQL Complete 提供了DemoDatabase数据库中的表列表。您可以从列表中选择多个表,然后通过按 TAB 键将它们添加到查询编辑器中。

图 4: Devart SQL Complete 通过键入SELECT * FROM填充表列表、列列表及其选定列的数据类型和选定表中的总行。如下图所示,我选择了tblStudent表,Devart SQL complete 显示了列列表、它们的数据类型以及tblStudent表的估计行数。

图 5:当我们在 T-SQL 查询中使用 SQL 连接时,Devart SQL complete 会在INNER JOIN / LEFT JOIN / RIGHT JOIN关键字后显示匹配列的列表。正如您在下图中看到的,当我添加LEFT JOIN关键字并指定第二个表的名称时,Devart SQL Complete 填充了来自tblStudenttblSchool表的匹配列列表。

所述特征提高了编码速度,因为开发者不需要参考第二表的列。

图 6:当我们在 T-SQL 查询中使用 SQL 连接并添加WHERE子句时,Devart SQL Complete 会填充两个表的列列表,这有助于选择适当的列。

正如您在下面的屏幕截图中看到的,当我添加WHERE子句时,Devart SQL Complete 填充了tblStudenttblSchool表的列列表。所述特征提高了编码速度,因为开发者不需要参考第二表的列。

在我们的例子中,我们用 NULL 值填充记录,所以我没有在查询中使用 WHERE 子句。下面是最终查询:

USE demodatabase
go
SELECT * FROM tblSchool s LEFT JOIN tblStudent s1 ON s.School_Id=s1.School_ID

查询输出:

上面的示例表明使用 Devart SQL Complete 查询编写变得更加容易。

概括

本文通过一个简单示例解释了 T-SQL 连接及其类型。本文还介绍了 SQL IntelliSense 和 Devart SQL Complete。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
“等生了孩子”“等还完房贷”,网友质疑!最新:广告已换下

“等生了孩子”“等还完房贷”,网友质疑!最新:广告已换下

南方都市报
2026-01-14 09:18:34
被吐槽的平庸之王:为何满身瑕疵的F-35,目前依然能统治全球天空

被吐槽的平庸之王:为何满身瑕疵的F-35,目前依然能统治全球天空

形上谓道
2026-01-12 10:25:18
51票对50票!美国参议院否决限制特朗普战争权议案

51票对50票!美国参议院否决限制特朗普战争权议案

澎湃新闻
2026-01-15 08:21:37
要引狼入室?柬埔寨副首相呼吁减少对中国的依赖,欢迎美军舰来访

要引狼入室?柬埔寨副首相呼吁减少对中国的依赖,欢迎美军舰来访

时时有聊
2026-01-15 10:29:54
2-3!1.5亿巨头失单刀,皇马爆出惊天大冷,被西乙保级队淘汰

2-3!1.5亿巨头失单刀,皇马爆出惊天大冷,被西乙保级队淘汰

我的护球最独特
2026-01-15 06:13:13
央媒曝光!你买的儿童电话手表,正在悄悄毁掉你的孩子!

央媒曝光!你买的儿童电话手表,正在悄悄毁掉你的孩子!

徐德文科学频道
2026-01-14 15:09:47
美媒:美国将暂停对75个国家的所有签证

美媒:美国将暂停对75个国家的所有签证

新华社
2026-01-14 22:40:07
携程踩了哪些“红线”?

携程踩了哪些“红线”?

经济观察报
2026-01-15 01:50:05
痛心!贺娇龙抢救无效离世,同学透露遗体已回昭苏,最后朋友圈曝光

痛心!贺娇龙抢救无效离世,同学透露遗体已回昭苏,最后朋友圈曝光

派大星纪录片
2026-01-15 08:25:49
5行代码,逼疯整个硅谷!澳洲放羊大叔,捅开AI编程奇点

5行代码,逼疯整个硅谷!澳洲放羊大叔,捅开AI编程奇点

新智元
2026-01-14 17:38:10
贺娇龙遗体已回到新疆昭苏!生前“策马雪原”带动当地文旅

贺娇龙遗体已回到新疆昭苏!生前“策马雪原”带动当地文旅

南方都市报
2026-01-15 10:50:06
纪实:南京杀妻案吉星鹏被判处死刑,临刑前全身抽搐流泪不止

纪实:南京杀妻案吉星鹏被判处死刑,临刑前全身抽搐流泪不止

谈史论天地
2026-01-14 12:55:03
刘强东没想到,离过年不到2月,章泽天走上了和田朴珺一样的路

刘强东没想到,离过年不到2月,章泽天走上了和田朴珺一样的路

查尔菲的笔记
2026-01-14 21:39:35
高市早苗对华正式“宣战”!中国两邻居站队日本,特朗普告示全球

高市早苗对华正式“宣战”!中国两邻居站队日本,特朗普告示全球

闻识
2026-01-14 11:38:46
闫学晶被举报偷税后:官方评论区被冲,海南税务受牵连,网友炸锅

闫学晶被举报偷税后:官方评论区被冲,海南税务受牵连,网友炸锅

天天热点见闻
2026-01-15 07:00:55
江西一狱警被蒙面男子当街捅死,凶手:你知道这6年我怎么过的吗

江西一狱警被蒙面男子当街捅死,凶手:你知道这6年我怎么过的吗

万年历史老号
2026-01-15 01:55:52
狂赚7亿也不给面子!合川文旅正面“刚”流量,太解气!

狂赚7亿也不给面子!合川文旅正面“刚”流量,太解气!

以茶带书
2026-01-14 21:53:18
2-1绝杀!亚洲杯神剧情:4分钟从出局到出线,中国队第一变为第二

2-1绝杀!亚洲杯神剧情:4分钟从出局到出线,中国队第一变为第二

侃球熊弟
2026-01-14 22:21:14
“秦岚”也太凡尔赛了吧!穿一身瑜伽服凹凸有致,巴掌腰太抢镜

“秦岚”也太凡尔赛了吧!穿一身瑜伽服凹凸有致,巴掌腰太抢镜

巧手晓厨娘
2025-12-30 18:59:18
德国、法国、瑞典、挪威宣布派兵

德国、法国、瑞典、挪威宣布派兵

第一财经资讯
2026-01-15 08:11:20
2026-01-15 11:35:00
墨谈科技 incentive-icons
墨谈科技
业务数码玩家.无聊的博主
5676文章数 611关注度
往期回顾 全部

科技要闻

反垄断大棒,为何砸向了携程

头条要闻

聂卫平女儿:父亲明明恢复好了 为什么上天这样无情

头条要闻

聂卫平女儿:父亲明明恢复好了 为什么上天这样无情

体育要闻

你是个好球员,我们就拿你交易吧

娱乐要闻

赵又廷高圆圆婚后11年谈夫妻生活

财经要闻

“疯狂的白银”,还能走多远?

汽车要闻

曝Model Y或降到20万以内!

态度原创

旅游
艺术
数码
公开课
军事航空

旅游要闻

2026年大别山温泉滑雪促消费体验季启动

艺术要闻

历代书家集字春联大集合

数码要闻

内存市场彻底乱套!DDR3主板销量疯涨2-3倍:离DDR2不远了

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

中东气氛愈发紧张 伊朗处于最高战备状态

无障碍浏览 进入关怀版