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代理:理解SQL代理错误日志处理方法
Jun 30 SQL Server
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
Jul 07 SQL Server
使用SQL实现车流量的计算的示例代码
Feb 28 SQL Server
详解在SQLPlus中实现上下键翻查历史命令的功能
Mar 18 SQL Server
SQLServer RANK() 排名函数的使用
Mar 23 SQL Server
sqlserver连接错误之SQL评估期已过的问题解决
Mar 23 SQL Server
SQL Server数据库查询出现阻塞之性能调优
Apr 10 SQL Server
使用MybatisPlus打印sql语句
Apr 22 SQL Server
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
Apr 22 SQL Server
SQL Server 中的事务介绍
May 20 SQL Server
详解SQL报错盲注
Jul 23 SQL Server
SqlServer: 如何更改表的文件组?(进而改变存储位置)
【HBU】数据库第四周 单表查询
Sql-Server数据库单表查询 4.3实验课
SQL Server 数据库实验课第五周——常用查询条件
SQL Server基本使用和简单的CRUD操作
SQL Server数据定义——模式与基本表操作
2021-4-5课程——SQL Server查询【3】
You might like
论坛头像随机变换代码
2006/10/09 PHP
php在线生成ico文件的代码
2007/10/09 PHP
php smarty 二级分类代码和模版循环例子
2011/06/01 PHP
php简单的留言板与回复功能具体实现
2014/02/19 PHP
PHP两种快速排序算法实例
2015/02/15 PHP
PHP实现的memcache环形队列类实例
2015/07/28 PHP
Laravel5.5以下版本中如何自定义日志行为详解
2018/08/01 PHP
手机端网页点击链接触发自动拨打或保存电话的示例代码
2014/08/15 Javascript
JavaScript修改浏览器tab标题小技巧
2015/01/06 Javascript
jQuery实现设置、移除文本框默认值功能
2015/01/13 Javascript
Angularjs 实现一个幻灯片示例代码
2016/09/08 Javascript
jquery.tableSort.js表格排序插件使用方法详解
2020/08/12 Javascript
AngularJS之页面跳转Route实例代码
2017/03/10 Javascript
vue实现动态数据绑定
2017/04/28 Javascript
深入理解JavaScript 参数按值传递
2017/05/24 Javascript
javaScript 连接打印机,打印小票的实例
2017/12/29 Javascript
Vue中render方法的使用详解
2018/01/26 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
2018/10/19 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
Ajax请求时无法重定向的问题解决代码详解
2019/06/21 Javascript
微信小程序实现转盘抽奖
2020/09/21 Javascript
keep-alive保持组件状态的方法
2020/12/02 Javascript
Python操作Access数据库基本步骤分析
2016/09/19 Python
Python实现冒泡排序的简单应用示例
2017/12/11 Python
Django自定义用户认证示例详解
2018/03/14 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
2019/05/10 Python
详解python uiautomator2 watcher的使用方法
2019/09/09 Python
python线程定时器Timer实现原理解析
2019/11/30 Python
django的autoreload机制实现
2020/06/03 Python
opencv 图像轮廓的实现示例
2020/07/08 Python
伦敦一家非常流行的时尚精品店:Oxygen Boutique
2017/01/15 全球购物
2014年感恩母亲演讲稿
2014/05/27 职场文书
售房协议书
2014/08/19 职场文书
Python Numpy库的超详细教程
2022/04/06 Python
教你使用RustDesk 搭建一个自己的远程桌面中继服务器
2022/08/14 Servers