SQLServer 学习笔记之超详细基础SQL语句 Part 3

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
简介: SQLServer 学习笔记之超详细基础SQL语句 Part 3

Sqlserver学习笔记


-----------------------接Part 2-------------------

13.使用compute对查询结果集中的所有记录进行汇总统计,并显示所有参加汇总的记录的详细信息。

格式:

COMPUTE聚合函数[列名]  --聚合函数,例如SUM(),AVG(),COUNT()

结合GROUP BY使用

示例:

SELECT*FROM std_table

GROUP BY专业方向

COMPUTESUM(高考分数)

 

 

SELECT专业方向,COUNT(*)系部总人数

FROMstd_table

GROUPBY专业方向

COMPUTECOUNT(专业方向)

 

 

SELECT专业方向,COUNT(*)系部总人数

FROMstd_table

GROUPBY专业方向

COMPUTESUM(COUNT(*))

 

 

SELECT专业方向,AVG(高考分数)高考平均分

FROMstd_table

GROUPBY专业方向

COMPUTEAVG(AVG(高考分数))

 


 

EXECSP_RENAME'专业.系部名称','系部代码'

 

 

14. UNION操作

UNION操作符用于合并两个或多个SELECT语句的结果集。

请注意,UNION内部的SELECT语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条SELECT语句中的列的顺序必须相同。【原因:sql union只是将两个结果联结起来一起显示,并不是联结两个表】

注释:默认地,UNION操作符选取不重复的记录。如果允许重复的值,请使用UNION ALL

另外,UNION结果集中的列名总是等于UNION中第一个SELECT语句中的列名

--UNIONNNION ALL

--UNION操作符用于合并两个或多个SELECT语句的结果集

SELECT学号FROM学生

UNION

SELECT专业代码FROM专业

 

 

SELECT学号FROM学生

UNION ALL

SELECT专业代码FROM专业

 

 

--对比:NNION ALL保留了重复值

SELECT专业代码FROM专业

UNION ALL

SELECT学号FROM学生

 

 

15复合连接条件查询(多表查询)

SELECT学生.学号,学生.姓名,班级.班级名称

FROM学生

JOIN班级ON学生.班级代码=班级.班级代码

 

SELECT学生.学号,学生.姓名,班级.班级名称,专业.专业名称,系部.系部名称

FROM学生

JOIN班级ON学生.班级代码=班级.班级代码

JOIN专业ON学生.专业代码=班级.专业代码

JOIN系部ON系部.系部代码=班级.系部代码

 

--先建立如下表

CREATETABLE person

(

   id INTPRIMARYKEY,

   lastNAME VARCHAR(10)NOTNULL,

   firstName VARCHAR(10)NOTNULL,

   addr VARCHAR(20)NOTNULL,

   city VARCHAR(10)

)

 

CREATETABLE orders

(

   id INTPRIMARYKEY,

   orderNo CHAR(6)NOTNULL,

   idP INTFOREIGNKEYREFERENCES person(id)

)

 

INSERTINTO person

VALUES(1,'Lai','fy','none','none')

INSERTINTO person

VALUES(2,'Lai','ll','none','none')

INSERTINTO person

VALUES(3,'Lai','zy','none','none')

INSERTINTO person

VALUES(4,'Lai','fj','none','none')

 

INSERTINTO orders

VALUES(1,'111', 1)

INSERTINTO orders

VALUES(2,'zzz', 2)

INSERTINTO orders

VALUES(3,'zzz',NULL)

INSERTINTO orders

VALUES(4,'zzz',NULL)

 

--给上述两个表中插入数据后,做如下查询语句

--left join可以写成left outer join,,,其它的以此类推

 

--列出所有人的订购(INNER JOIN --->内连接)

SELECTperson.lastName, person.firstName, orders.orderNo

FROMperson

INNERJOIN orders

ONperson.id = orders.idp

ORDERBY person.lastName

 

 

--:INNER JOINJOIN效果一样,只要表中有一个匹配,则返回记录行

 

--列出所有的人,以及他们的订购,如果有的话(LEFT OUTER JOIN-->左外连接)

SELECTperson.lastName, person.firstName, orders.orderNo

FROMperson

LEFTOUTERJOIN orders

ONperson.id = orders.idp

 

--注:LEFT OUTER JOIN会返回左表所有的行,即使在右表中没有匹配值的行


 

--列出所有的订单,以及订购他们的人,如果有的话(RIGHT OUTER JOIN-->右外连接)

SELECTperson.lastName, person.firstName, orders.orderNo

FROMperson

RIGHTOUTERJOIN orders

ONperson.id = orders.idp

 

 

--注:RIGHT OUTER JOIN会返回右表所有的行,即使在左表中没有匹配值的行

 

--列出所有的人,以及他们的定单;同时列出所有的定单,以及定购它们的人(FULL JOIN--->完全连接)

SELECTperson.lastName, person.firstName, orders.orderNo

FROMperson

FULLJOIN orders

ONperson.id = orders.idp

 

 

 

16嵌套查询

SELECT*FROM学生

WHERE班级代码IN

(

   SELECT班级代码FROM班级WHERE专业代码IN

   (

       SELECT专业代码FROM专业WHERE系部代码IN

       (

           SELECT系部代码FROM系部WHERE系部代码IN(1, 2, 5)

       )

   )

)

 

目录
相关文章
|
2月前
|
SQL Web App开发 安全
SQL Server 2025 年 8 月更新 - 修复 CVE-2025-49759 SQL Server 特权提升漏洞
SQL Server 2025 年 8 月更新 - 修复 CVE-2025-49759 SQL Server 特权提升漏洞
110 2
SQL Server 2025 年 8 月更新 - 修复 CVE-2025-49759 SQL Server 特权提升漏洞
|
26天前
|
SQL Web App开发 安全
SQL Server 2025 年 9 月更新 - 修复 CVE-2025-47997 SQL Server 信息泄露漏洞
SQL Server 2025 年 9 月更新 - 修复 CVE-2025-47997 SQL Server 信息泄露漏洞
55 0
SQL Server 2025 年 9 月更新 - 修复 CVE-2025-47997 SQL Server 信息泄露漏洞
|
20天前
|
算法 数据挖掘 数据库
通过 SQL 快速使用 OceanBase 向量检索学习笔记
通过 SQL 快速使用 OceanBase 向量检索学习笔记
|
2月前
|
SQL 容灾 安全
云时代SQL Server的终极答案:阿里云 RDS SQL Server如何用异地容灾重构系统可靠性
在数字化转型的浪潮中,数据库的高可用性已成为系统稳定性的生命线。作为经历过多次生产事故的资深开发者,肯定深知传统自建SQL Server架构的脆弱性——直到遇见阿里云 RDS SQL Server,其革命性的异地容灾架构彻底改写了游戏规则。
|
26天前
|
SQL 数据库
SQL 学习笔记 - 多表关系与多表查询
数据库多表关系包括一对多、多对多和一对一,常用外键关联。多表查询方式有隐式/显式内连接、外连接、子查询等,支持别名和条件筛选。子查询分为标量、列、行、表子查询,常用于复杂查询场景。
|
3月前
|
SQL Web App开发 安全
SQL Server 2025年7月更新 - 修复 CVE-2025-49718 Microsoft SQL Server 信息泄露漏洞
SQL Server 2025年7月更新 - 修复 CVE-2025-49718 Microsoft SQL Server 信息泄露漏洞
211 0
SQL Server 2025年7月更新 - 修复 CVE-2025-49718 Microsoft SQL Server 信息泄露漏洞
|
12月前
|
SQL 数据库
执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)之解决方案
执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)之解决方案
1301 0
|
Java 应用服务中间件 Maven
从零到英雄:一步步构建你的首个 JSF 应用程序,揭开 JavaServer Faces 的神秘面纱
【8月更文挑战第31天】JavaServer Faces (JSF) 是一种强大的 Java EE 标准,用于构建企业级 Web 应用。它提供了丰富的组件库和声明式页面描述语言 Facelets,便于开发者快速开发功能完善且易于维护的 Web 应用。本文将指导你从零开始构建一个简单的 JSF 应用,包括环境搭建、依赖配置、Managed Bean 编写及 Facelets 页面设计。
263 0
|
SQL 关系型数据库 索引
PL/SQL学习笔记(索引贴)
我前段时间写了T-SQL学习笔记得到了许多朋友的支持当然也有一些朋友提出了质疑,在此一并表示感谢最近项目中用到Oracle,于是萌生了写PL/SQL学习笔记的念头。同时也希望得到大家的支持或批评。并非常希望能和朋友们一起讨论相关知识。
1235 0
|
SQL 算法 数据库
PL/SQL学习笔记-索引
一:索引描述一个索引可以由一个或多个列组成对列设置索引其实就是对列的内容按一定的方式进行排序检索数据的时候,检索排过序的数据检索到最后一个有效数据之后就跳出检索这样就不必进行全表扫描了,同时可以应用很多算法提高检索效率数据库多用二分法检索数据二:索引分类1  唯一索引(Unique)不允许列内有重复...
903 0

热门文章

最新文章