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 相关文章推荐
SQL Server连接查询的实用教程
Apr 07 SQL Server
SQL写法--行行比较
Aug 23 SQL Server
sql server 累计求和实现代码
Feb 28 SQL Server
使用SQL实现车流量的计算的示例代码
Feb 28 SQL Server
SQLServer RANK() 排名函数的使用
Mar 23 SQL Server
SQLServer权限之只开启创建表权限
Apr 12 SQL Server
Sql Server 行数据的某列值想作为字段列显示的方法
Apr 20 SQL Server
SQL Server中的游标介绍
May 20 SQL Server
SQL Server中锁的用法
May 20 SQL Server
SQL SERVER中的流程控制语句
May 25 SQL Server
SQL Server2019安装的详细步骤实战记录(亲测可用)
Jun 10 SQL Server
SQL Server数据库备份和恢复数据库的全过程
Jun 14 SQL Server
SqlServer: 如何更改表的文件组?(进而改变存储位置)
【HBU】数据库第四周 单表查询
Sql-Server数据库单表查询 4.3实验课
SQL Server 数据库实验课第五周——常用查询条件
SQL Server基本使用和简单的CRUD操作
SQL Server数据定义——模式与基本表操作
2021-4-5课程——SQL Server查询【3】
You might like
PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
2010/07/09 PHP
php数组合并与拆分实例分析
2015/06/12 PHP
php生成过去100年下拉列表的方法
2015/07/20 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
2017/07/03 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
Jquery Validation插件防止重复提交表单的解决方法
2010/03/05 Javascript
js中事件的处理与浏览器对象示例介绍
2013/11/29 Javascript
用IE重起计算机或者关机的示例代码
2014/03/10 Javascript
JavaScript分秒倒计时器实现方法
2015/02/02 Javascript
jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法
2016/08/06 Javascript
JS实现图片放大缩小的方法
2017/02/15 Javascript
javascript将url解析为json格式的两种方法
2017/08/18 Javascript
浅谈vue-router 路由传参的方法
2017/12/27 Javascript
微信小程序学习笔记之获取位置信息操作图文详解
2019/03/29 Javascript
vue router总结 $router和$route及router与 router与route区别
2019/07/05 Javascript
js实现文章目录索引导航(table of content)
2020/05/10 Javascript
python 回调函数和回调方法的实现分析
2016/03/23 Python
Python数据分析之获取双色球历史信息的方法示例
2018/02/03 Python
Python 运行 shell 获取输出结果的实例
2019/01/07 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
自定义django admin model表单提交的例子
2019/08/23 Python
Python3 pandas 操作列表实例详解
2019/09/23 Python
浅析python内置模块collections
2019/11/15 Python
将matplotlib绘图嵌入pyqt的方法示例
2020/01/08 Python
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
Casetify官网:自制专属手机壳、iPad护壳和Apple Watch手表带
2018/05/09 全球购物
Carrs Silver官网:英国著名的银器品牌
2020/08/29 全球购物
十佳青年个人事迹材料
2014/01/28 职场文书
酒店副总经理岗位职责范本
2014/02/04 职场文书
劲霸男装广告词
2014/03/21 职场文书
医疗器械售后服务承诺书
2014/05/21 职场文书
企业年度评优方案
2014/06/02 职场文书
2015新学期校长寄语(3篇)
2015/03/25 职场文书
关于Python OS模块常用文件/目录函数详解
2021/07/01 Python
字节飞书面试promise.all实现示例
2022/06/16 Javascript
pnpm对npm及yarn降维打击详解
2022/08/05 Javascript