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连接查询内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- sqlserver使用简介(SQL Server Page结构深入分析)
- sqlserver日志被删除(sql server日志处理不当造成的隐患详解)
- sqlserver分页数据重复(SQL Server 在分页获取数据的同时获取到总记录数)
- sqlserver如何生成xml文件(实现SQL Server 原生数据从XML生成JSON数据的实例代码)
- sqlserver自增长id重置(SQL server 自增ID--序号自动增加的字段操作)
- sqlserver查询表结构(sql server递归子节点、父节点sql查询表结构的实例)
- sqlserver备份还原地址(SqlServer高版本数据备份还原到低版本)
- sqlserver 存储过程参数类型(详解SQL Server表和索引存储结构)
- sqlserver分页查询sql语句(sql server实现分页的方法实例分析)
- sqlserverdatetime时区(解析SQL Server中datetimeset转换datetime类型问题)
- sqlserver数据库如何设置循环日志(sqlserver 实现收缩数据库日志操作)
- docker启动sqlserver(用docker运行postgreSQL的方法步骤)
- sqlserver如何查找值为null的数据(SQL Server中NULL的正确使用与空间占用)
- SQLServer中JSON文档型数据的查询问题解决(SQLServer中JSON文档型数据的查询问题解决)
- SqlServer 按时间段查询问题(SqlServer 按时间段查询问题)
- python2.7连接sqlserver数据库(Python使用sqlalchemy模块连接数据库操作示例)
- 云南旅游攻略(云南旅游攻略5天攻略)
- 收藏 春节假期,这些景区巨划算(收藏春节假期这些景区巨划算)
- 景区游玩,这些安全知识要牢记(这些安全知识要牢记)
- 各地出招烘 热 旅游(各地出招烘热旅游)
- 2021款起亚霸锐到店了 更换车标,竞争宝马X5有戏吗(2021款起亚霸锐到店了)
- 新款起亚霸锐实拍,比普拉多气派,配3.0T V6,引入国内或许能大卖(新款起亚霸锐实拍)
热门推荐
- python列表切片和分片(Python列表切片操作实例总结)
- 设置mysql字符集语句(MySQL修改字符集的实战教程)
- laravel5.2模型返回数组(解决Laravel5.5下的toArray问题)
- nginx中https配置(Nginx配置同一个域名同时支持http与https两种方式访问实现)
- sql server 函数参数表(SQL Server 实现数字辅助表实例代码)
- 如何判别云服务器的优劣(选用云服务器的这四大风险必须知道)
- html5中怎么做圆形框架(HTML5 层的叠加的实现)
- ASP.NET URLRewriter伪静态
- web服务器搭建自己的网站(单台web服务器如何尽可能的提高网站性能)
- phpweb应用技术开发与数据库教程(IIS8 使用FastCGI配置PHP环境图文教程)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9