第四章 数据库的视图二.ppt

上传人:99****p 文档编号:1441659 上传时间:2019-02-27 格式:PPT 页数:54 大小:2.45MB
下载 相关 举报
第四章  数据库的视图二.ppt_第1页
第1页 / 共54页
第四章  数据库的视图二.ppt_第2页
第2页 / 共54页
第四章  数据库的视图二.ppt_第3页
第3页 / 共54页
第四章  数据库的视图二.ppt_第4页
第4页 / 共54页
第四章  数据库的视图二.ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

1、4.3 数据库视图4.4 格式化输出结果Select * from xsbwhere not exists ( select * from kcb cWhere not exists (select * from cjbwhere xsb.xh=xh and kch=c.kch);Select * from xsbWhere xh not in (select s.xhFrom xsb s,kcb cWhere(s.xh,c.kch) not in(select xh,kch from cjb) ;select xh,kch from cjb返回所有 有效的(学号,课程号)组合;中间的子查询使

2、用了学生表和课程表的笛卡尔积, 除掉 有效的(学号,课程号)组合,剩下虚构的(学号,课程号)组合;最外层的查询从表中返回:学号不属于中间子查询返回的值在子查询中 ,NOT IN子句将执行一个内部的排序和合并 ,无论哪种情况下 ,都低效 .因为要全表遍历 .建议改成外连接或NOT EXISTS.若 NOT IN后面的列表小 ,还是可以使用 NOT IN子查询的 .窗口函数的调用格式 :count(*) over().对于查询返回的每一行,它返回了表中所有行的计数。窗口函数都是最后一步执行,仅位于 ORDERBY子句之前。分区子句的结果是为每个学生执行count,同一分区(同个学生)的每门课程的个

3、数相同。分区的优点是同一个 select中,一个窗口函数的计算独立于其他窗口函数的计算Partition by :定义行的分区或组,以完成聚集计算。类似GROUPBY。请问表示什么含义?select xh,xmFrom(select s.xh,s.xm,count(t.kch) over (partition by s.xh) as cnt,count(distinct c.kcm)over() as total,row_number() over(partition by s.xh order by c.kch) as rnfrom kcb cleft join cjb t on(c.kch=t.kch)left join xsb s on(t.xh=s.xh) xwhere cnt=total and rn=1;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。