SQL Server连接查询的实用教程


Posted in SQL Server onApril 07, 2021

前沿小补充

例3.48 查询平均成绩大于等于80分的学生学号和平均成绩

SELECT Sno,AVG(Grade)
FROM SC
WHERE AVG(Grade)>=80
GROUP BY Sno;
SELECT * FROM SC;

此时发现:

SQL Server连接查询的实用教程

这是因为WHERE子句中是不能用聚集函数作为条件表达式的,正确的查询语句应该是:

SELECT Sno,AVG(Grade)
FROM SC
GROUP BY Sno
HAVING AVG(Grade)>=80;
SELECT * FROM SC;

SQL Server连接查询的实用教程

总结:WHERE子句作用基本表或视图,从中选择满足条件的元组。

HAVING短语作用于组,从中选择满足条件的组

等值与非等值连接查询

连接符号是=的成为等值连接,其他的称为非等值连接

一般形式:

[<表名1>.]<列名1><比较运算符>[<表名2>.]<列名2>

例3.49 查询每个学生及其课程选秀修情况

SELECT Student.*,SC.*
FROM Student,SC
WHERE Student.Sno=SC.Sno;
SELECT * FROM SC;
SELECT * FROM Student;

SQL Server连接查询的实用教程

拓展:去掉WHERE Student.Sno=SC.Sno后发现标称笛卡尔积形式

SELECT Student.*,SC.*
FROM Student,SC

SELECT * FROM SC;
SELECT * FROM Student;

SQL Server连接查询的实用教程

例3.50 对例3.49 用自然连接完成

SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade
FROM Student,SC
WHERE Student.Sno=SC.Sno;
SELECT * FROM SC;
SELECT * FROM Student;

修改为自然连接竟然是一点一点选择可视的列来进行的,是我想不到的,以为会有专门的语句来进行呢

SQL Server连接查询的实用教程

例3.51 查询选修了2号课程且成绩大于等于90分所有学生的学号和姓名

SELECT Student.Sno,Sname 
FROM Student,SC 
WHERE Student.Sno=SC.Sno 
AND SC.Cno='2'
AND SC.Grade>=90;
SELECT * FROM SC;
SELECT * FROM Student;

一条SQL语句可以同时完成选择和连接查询,这时WHERE子句由连接谓词和选择谓词组成的复合条件

SQL Server连接查询的实用教程

自身连接

一个表与其自身进行连接,称为自身连接

例3.52 查询每一门课的间接选修课

SELECT FIRST.Cno,SECOND.Cpno
FROM Course FIRST,Course SECOND
WHERE FIRST.Cpno=SECOND.Cno;
SELECT * FROM Course;

SQL Server连接查询的实用教程

在T-SQL 语句中,外连接是存在空值的,

外连接

例如某个学生没有选课,仍把Student的悬浮元组保存在结果关系中,而在SC表的属性上填上空值NULL,这是需要使用外连接

例3.53 对Student进行左外连接SC

SELECT *
FROM Student LEFT OUTER JOIN SC ON(Student.Sno=SC.Sno);
--SELECT * FROM Course;
SELECT * FROM SC;
SELECT * FROM Student;

SQL Server连接查询的实用教程

多表连接

两个表以上的操作称为外连接

例3.54 查询每个学生的学号、姓名、选修的课程及成绩

SELECT Student.Sno,Sname,Cname,Grade
FROM Student,SC,Course
WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno;
SELECT * FROM Course;
SELECT * FROM SC;
SELECT * FROM Student;

SQL Server连接查询的实用教程

拓展:对SELECT进行*改写

SELECT *
FROM Student,SC,Course
WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno;

SQL Server连接查询的实用教程

原算法只是对数据进行了一步筛选。

总结:连接查询这部分比较简单,注意对属性的表格定位名时,不要打错了

总结

到此这篇关于SQL Server连接查询的文章就介绍到这了,更多相关SQL Server连接查询内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

SQL Server 相关文章推荐
2021-4-5课程——SQL Server查询【3】
Apr 05 SQL Server
mybatis调用sqlserver存储过程返回结果集的方法
May 08 SQL Server
在 SQL 语句中处理 NULL 值的方法
Jun 07 SQL Server
SQLServer中JSON文档型数据的查询问题解决
Jun 27 SQL Server
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
Jun 30 SQL Server
SQL Server代理:理解SQL代理错误日志处理方法
Jun 30 SQL Server
SQL中的三种去重方法小结
Nov 01 SQL Server
SQL SERVER存储过程用法详解
Feb 24 SQL Server
MSSQL基本语法操作
Apr 11 SQL Server
使用MybatisPlus打印sql语句
Apr 22 SQL Server
SQL Server删除表中的重复数据
May 25 SQL Server
在SQL Server中使用 Try Catch 处理异常的示例详解
Jul 15 SQL Server
SqlServer: 如何更改表的文件组?(进而改变存储位置)
【HBU】数据库第四周 单表查询
Sql-Server数据库单表查询 4.3实验课
SQL Server 数据库实验课第五周——常用查询条件
SQL Server基本使用和简单的CRUD操作
SQL Server数据定义——模式与基本表操作
2021-4-5课程——SQL Server查询【3】
You might like
PHPExcel在linux环境下导出报500错误的解决方法
2017/01/26 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
php7 list()、session及其他模块的修改实例分析
2020/05/25 PHP
JS 参数传递的实际应用代码分析
2009/09/13 Javascript
jQuery实现原理的模拟代码 -6 代码下载
2010/08/16 Javascript
一些实用的jQuery代码片段收集
2011/07/12 Javascript
js播放wav文件(源码)
2013/04/22 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
2014/05/12 Javascript
javascript框架设计之类工厂
2015/06/23 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
jquery+php实现滚动的数字特效
2015/11/29 Javascript
javascript HTML5文件上传FileReader API
2020/03/27 Javascript
JS沙箱模式实例分析
2017/09/04 Javascript
自定义PC微信扫码登录样式写法
2017/12/12 Javascript
Vue运用transition实现过渡动画
2019/05/06 Javascript
150行代码带你实现微信小程序中的数据侦听
2019/05/17 Javascript
JS前端基于canvas给图片添加水印
2020/11/11 Javascript
python每次处理固定个数的字符的方法总结
2013/01/29 Python
使用matplotlib画散点图的方法
2018/05/25 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
2018/10/18 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
详解Appium+Python之生成html测试报告
2019/01/04 Python
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
兰蔻美国官网:Lancome美国
2017/04/25 全球购物
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
党支部书记先进事迹
2014/01/17 职场文书
人事专员职责
2014/02/22 职场文书
幼儿园毕业典礼主持词
2014/03/21 职场文书
小学校园文化建设汇报材料
2014/08/19 职场文书
学校联谊协议书
2014/09/16 职场文书
机关作风建设自查报告及整改措施
2014/10/21 职场文书
法定代表人证明书
2014/11/28 职场文书
Innodb存储引擎中的后台线程详解
2022/04/03 MySQL
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang