sql server使用手册(SQL Server连接查询的实用教程)
类别:数据库 浏览量:2293
时间:2021-09-29 01:01:25 sql server使用手册
SQL Server连接查询的实用教程前沿小补充
例3.48 查询平均成绩大于等于80分的学生学号和平均成绩
SELECT Sno,AVG(Grade) FROM SC WHERE AVG(Grade)>=80 GROUP BY Sno; SELECT * FROM SC;
此时发现:
这是因为WHERE子句中是不能用聚集函数作为条件表达式的,正确的查询语句应该是:
SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno HAVING AVG(Grade)>=80; SELECT * FROM SC;
总结: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;
拓展:去掉WHERE Student.Sno=SC.Sno
后发现标称笛卡尔积形式
SELECT Student.*,SC.* FROM Student,SC SELECT * FROM SC; SELECT * FROM Student;
例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;
修改为自然连接竟然是一点一点选择可视的列来进行的,是我想不到的,以为会有专门的语句来进行呢
例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子句由连接谓词和选择谓词组成的复合条件
自身连接
一个表与其自身进行连接,称为自身连接
例3.52 查询每一门课的间接选修课
SELECT FIRST.Cno,SECOND.Cpno FROM Course FIRST,Course SECOND WHERE FIRST.Cpno=SECOND.Cno; SELECT * FROM Course;
在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;
多表连接
两个表以上的操作称为外连接
例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;
拓展:对SELECT进行*改写
SELECT * FROM Student,SC,Course WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno;
原算法只是对数据进行了一步筛选。
总结:连接查询这部分比较简单,注意对属性的表格定位名时,不要打错了
总结
到此这篇关于SQL Server连接查询的文章就介绍到这了,更多相关SQL Server连接查询内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- sqlserver2008数据库的备份(sql server 2008 压缩备份数据库20g)
- sqlserver2008收缩数据文件(SQL2008 详解直接将XML存入到SQL中)
- 修改sqlserver数据库所有者
- sqlserver限制windows身份登录(解决sql server 数据库,sa用户被锁定的问题)
- mysql 命令与sqlserver的区别大么(MySQL系列之执行SQL 语句时发生了什么?)
- sqlserver 添加分区(SQL Server 数据库分区分表水平分表详细步骤)
- sqlserver存储过程参数默认值(sql server使用临时存储过程实现使用参数添加文件组脚本复用)
- sqlserver语句中的temp(SQL SERVER中强制类型转换cast和convert的区别详解)
- sqlserver如何生成xml文件(实现SQL Server 原生数据从XML生成JSON数据的实例代码)
- sql server怎么导出数据库(sqlserver复制数据库的方法步骤图文)
- SqlServer GO命令循环使用实例代码(SqlServer GO命令循环使用实例代码)
- sqlserver字符串格式化(SQL server中字符串逗号分隔函数分享)
- sqlserver提供的内置函数(Sqlserver 自定义函数 Function使用介绍)
- sqlserver索引介绍(浅析SQL Server的聚焦使用索引和查询执行计划)
- sqlserver 高级查询(SQL Server2019数据库之简单子查询的具有方法)
- sqlserver2000显示无服务器(SQL SERVER 2000 9003错误的解决方法只适用于SQL2000)
- 一课译词 放鸽子(一课译词放鸽子)
- 终于来了,淘宝更改账户名测试中,快去看看你能不能修改(淘宝更改账户名测试中)
- 淘宝支持账号名修改,网友 终于可以 重新做人 了(淘宝支持账号名修改)
- 盘点那些年让人称奇的年终奖 最后一个赢辣条毫无悬念(盘点那些年让人称奇的年终奖)
- 你还没有升职吗 他竟因为几套激励理论,升职了(你还没有升职吗)
- 某知名企业绩效管理体系及薪酬分配体系操作手册(某知名企业绩效管理体系及薪酬分配体系操作手册)
热门推荐
- python默认缩进设置(不归路系列:Python入门之旅-一定要注意缩进!!!推荐)
- php 与asp对比(asp.net和php的区别点总结)
- laravel admin文档(Laravel-添加后台模板AdminLte的实现方法)
- python中怎么实现队列的创建(python 堆和优先队列的使用详解)
- 哪款香港云服务器好(选择香港云服务器租用商一般看哪几个方面?)
- css display属性
- python字典的值排序(python 对字典按照value进行排序的方法)
- python3正则表达式详解(Python正则表达式和re库知识点总结)
- css中position用法(详解CSS中position属性介绍新增sticky)
- iis7安全设置(IIS7 IIS8 http自动跳转到HTTPS80端口跳转443端口)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9