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 数据库,sa用户被锁定的问题
Jun 11 SQL Server
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
Jun 30 SQL Server
sql通过日期判断年龄函数的示例代码
Jul 16 SQL Server
万能密码的SQL注入漏洞其PHP环境搭建及防御手段
Sep 04 SQL Server
SQL Server中常用截取字符串函数介绍
Mar 16 SQL Server
sqlserver连接错误之SQL评估期已过的问题解决
Mar 23 SQL Server
SQL Server内存机制浅探
Apr 06 SQL Server
SQL Server中锁的用法
May 20 SQL Server
SQL Server使用T-SQL语句批处理
May 20 SQL Server
SQL Server中搜索特定的对象
May 25 SQL Server
SQL Server删除表中的重复数据
May 25 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 上传功能实例代码
2010/04/13 PHP
设置php页面编码的两种方法示例介绍
2014/03/03 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
2018/04/20 PHP
刷新时清空文本框内容的js代码
2007/04/23 Javascript
Javascript 中的 call 和 apply使用介绍
2012/02/22 Javascript
巧用jquery解决下拉菜单被Div遮挡的相关问题
2014/02/13 Javascript
2014最热门的JavaScript代码高亮插件推荐
2014/11/25 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
js实现select选择框效果及美化
2016/08/19 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
JavaScript Uploadify文件上传实例
2017/02/28 Javascript
使用travis-ci如何持续部署node.js应用详解
2017/07/30 Javascript
js表单序列化判断空值的实例
2017/09/22 Javascript
微信小程序仿美团城市选择
2018/06/06 Javascript
在vue中给后台接口传的值为数组的格式代码
2020/11/12 Javascript
Django1.3添加app提示模块不存在的解决方法
2014/08/26 Python
Python之两种模式的生产者消费者模型详解
2018/10/26 Python
对python 自定义协议的方法详解
2019/02/13 Python
NumPy 基本切片和索引的具体使用方法
2019/04/24 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
Python虚拟环境库virtualenvwrapper安装及使用
2020/06/17 Python
基于Python模拟浏览器发送http请求
2020/11/06 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
HTML5 Web 存储详解
2016/09/16 HTML / CSS
瑜伽国际:Yoga International
2018/04/18 全球购物
大学生自我鉴定
2013/12/16 职场文书
产品售后服务承诺书
2014/05/21 职场文书
中学生自我评价2015
2015/03/03 职场文书
2015年学校保卫部工作总结
2015/05/11 职场文书
2016年校园植树节广播稿
2015/12/17 职场文书
浅谈golang 中time.After释放的问题
2021/05/05 Golang
SQL之各种join小结详细讲解
2021/08/04 MySQL