- 1、本文档共159页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
T-SQL高级查询教学
问题 问题 分组汇总 分组查询—GROUP BY ? 分组查询—思考 分组查询—多列分组 分组查询—再看看 分组查询—多列分组 分组查询—问题 分组查询—再看看 分组查询—HAVING 分组查询—思考 小结1 以下的查询语句: Select * From A 将得到以下的查询结果: A1 B1 C1 1001 P1 70 1002 P2 60 1001 P1 100 1002 P1 80 1002 P2 90 那么,以下的查询语句将输出哪些信息? Select A1,B1,MAX(C1) FROM A 多表联结查询—问题 案例分析1—要求 在数据库表中,数据行位置并不重要,但是一个单位中要根据奇数行和偶数行的数据来汇总,在这个汇总的基础上再得到一个数值,因此,要查询数据库表的奇数行和偶数行的总数 数据库表名:TBL 字段名:A 主键字段:IDKEY(标识列,种子:1;增长量:1) 案例分析1—分析 只能依靠标识列的值来进行判断和选取 因为数据行可能存在增加、修改和删除,因此标识列的数据值并不“完全可靠”,例如标识列值为3,并不一定是第三行,因为如果第二行被删除了,它就是第二行,实际上也是偶数行 根据我们前面使用过的SELECT…INTO,可以创建一张新表,顺便创建新的标识列,再在新的标识列上执行奇偶判断 奇数判断依据:标识列值%2不等于0;偶数判断依据:标识列值%2等于0 案例分析1—T-SQL 案例分析2—要求 一家银行发行了新的信用卡,刚开始的时候推广得很好,但是逐渐废卡也越来越多(卡上的余额少于2元,并且用户长时间不使用该卡),因此银行在二月份把这些少于2元的卡从都数据库表中删除了,但是很快问题就来了,用户发现他的卡再也不能使用而投诉,因此只能再把这些卡恢复。 案例分析2—分析 这是一个数据插入的操作,因此要使用INSERT语句来进行 这种方式的数据插入,不是固定的数据项,而是从其它表中筛选数据再插入,因此要使用到INSERT INTO…SELECT结构 案例分析2—分析 插入的数据项是子表中没有的,需要找到子表中没有的这些数据,我们可以把整个语句的INSERT(前半部分)不考虑,先只考虑SELECT(后半部分),SELECT的任务就是找出两个表中不同的项 在前面的联结查询中,使用INNER JOIN…ON可以找出相同的项,编写以下T-SQL: SELECT Users.CardID,2 FROM Users INNER JOIN Account ON (Account.CardIDUsers.CardID) 案例分析2—分析 以上把“=”简单地改为“”,不能找出不同的项,所找到的项比原来的要多很多,因为两个表之间是进行“交叉”对比的,而不是一一对比,所以会对比出很多“不同”的项来;因此,这种方法不可行 考虑我们在上面的左外连接查询,能够查询出左表中存在而相关表不存在的数据项 最后,子表中不存在的数据项,可以再加WHERE条件来进行筛选,S.CardID IS NULL可以判断其是否存在子表中存在 案例分析2—T-SQL 10、在pubs数据库的titles表中,要求使用HAVING子句从按类统计价格大于10元的书籍中进行进一步筛选,以找出所有平均价格超过18元的书的种类。 11、在pubs数据库的titles表中,要求使用compute子句统计出所有书的总价格和总的预付款。 12、综合以上三个表,查询来自CA州的作家的名字、写作的书的代号以及书的销量。 * * * * * 注意:子查询一定要跟在比较符(比如“=”)之后。本例的WHERE子句不能用下面的写法: WHERE (SELECT Sdept FROM Student WHERE Sname=‘刘晨’) = Sdept; * * * 讲解要点: 实例二 用连接运算: SELECT xm FROM xs, sc WHERE xs.xh=sc.xh AND sc.kch=101; 实例三 查询没有选修04号课程的学生姓名 select xm from xs where not exists (select * from sc where xh=xs.xh and kch=‘04) 此例用连接运算难于实现 集合查询 SELECT 语句的查询结果 是元组的集合,所以多个SELECT语句的结果就可以进行集合运算。 标准的SQL中只提供了集合并操作UNION 商用数据库支持的集合操作种类有:并操作(UNION)、交操作(INTERSECT)、差操作(MINUS) 集合查询 并
您可能关注的文档
- SMT工程管理及应用--------SMT生产线的建立.ppt
- SMT回流焊表面贴装系统.ppt
- SMT实习内容简介.ppt
- SMT工艺文稿.ppt
- SMT新手培训.ppt
- SMT技术第六讲.ppt
- SMT焊接基础知识.ppt
- SMT标准基础知识.ppt
- SMT生产注意事项汇总.ppt
- SMT素质培训课程.ppt
- 2025年临沂兰陵文化旅游发展有限公司权属企业面向社会招聘戏曲演员和讲解员模拟试卷及答案详解(必威体育精装版).docx
- 2025年中山市东区街道招聘公办中小学编外合同制教师(6人)笔试备考试题(含答案详解).docx
- 2025年内江市市中区部分事业单位招聘考试(10名)笔试备考试题及答案详解(网校专用).docx
- 2025年巴林左旗林业和草原局关于国有公益林护林员招聘(66人)模拟试卷附答案详解(达标题).docx
- 2025年双鸭山市集贤县事业单位急需紧缺高层次人才引进(6人)考前自测高频考点模拟试题含答案详解(综.docx
- 2025年同江市招聘临时工作人员(12人)考前自测高频考点模拟试题及答案详解(夺冠).docx
- 2025年乐昌市北乡镇退役军人服务站招聘一名专职工作人员(1人模拟试卷及答案详解(各地真题).docx
- 2025年中山市横栏镇人民政府所属事业单位招聘事业单位人员(考前自测高频考点模拟试题含答案详解(实用.docx
- 2025年呼伦贝尔市陈巴尔虎旗事业单位引进人才(54人)模拟试卷有完整答案详解.docx
- 2025年内蒙古自治区公安厅面向社会招聘警务辅助人员(206人)模拟试卷附答案详解(预热题).docx
文档评论(0)