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 相关文章推荐
mybatis调用sqlserver存储过程返回结果集的方法
May 08 SQL Server
sql查询结果列拼接成逗号分隔的字符串方法
May 25 SQL Server
数据库之SQL技巧整理案例
Jul 07 SQL Server
sql通过日期判断年龄函数的示例代码
Jul 16 SQL Server
万能密码的SQL注入漏洞其PHP环境搭建及防御手段
Sep 04 SQL Server
SQL Server表分区删除详情
Oct 16 SQL Server
SQL CASE 表达式的具体使用
Mar 21 SQL Server
SQL Server的存储过程与触发器以及系统函数和自定义函数
Apr 10 SQL Server
使用MybatisPlus打印sql语句
Apr 22 SQL Server
SQL Server使用PIVOT与unPIVOT实现行列转换
May 25 SQL Server
SQL使用复合索引实现数据库查询的优化
May 25 SQL Server
SQL bool盲注和时间盲注详解
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
CI框架文件上传类及图像处理类用法分析
2016/05/18 PHP
PHP实现抽奖功能实例代码
2020/06/30 PHP
JavaScript 序列化对象实现代码
2009/12/18 Javascript
javascript 定义新对象方法
2010/02/20 Javascript
js清空form表单中的内容示例
2014/05/20 Javascript
jQuery修改CSS伪元素属性的方法
2014/07/30 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
2015/12/30 Javascript
window.onerror()的用法与实例分析
2016/01/27 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
2016/06/06 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
使用伪命名空间封装保护独自创建的对象方法
2016/08/04 Javascript
node.js 和HTML5开发本地桌面应用程序
2016/12/13 Javascript
gulp解决跨域的配置文件问题
2017/06/08 Javascript
ionic3 懒加载
2017/08/16 Javascript
vue-router跳转时打开新页面的两种方法
2019/07/29 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
2019/08/07 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
pyqt5中QThread在使用时出现重复emit的实例
2019/06/21 Python
Python中断多重循环的几种方式详解
2020/02/10 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
python绘制趋势图的示例
2020/09/17 Python
Python模拟键盘输入自动登录TGP
2020/11/27 Python
详解淘宝H5 sign加密算法
2020/08/25 HTML / CSS
应届毕业生求职信
2013/11/30 职场文书
大学生自我鉴定
2013/12/16 职场文书
优秀毕业生自我鉴定
2014/02/11 职场文书
让子弹飞观后感
2015/06/11 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书
青年文明号创建口号大全
2015/12/25 职场文书
财务人员廉洁自律心得体会
2016/01/13 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书
使用logback实现按自己的需求打印日志到自定义的文件里
2021/08/30 Java/Android