实验SQL高级查询.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验SQL高级查询

Oracle系统应用 - 实验课件 广州大学华软软件学院 软件工程系 Oracle系统应用 - 实验课件 广州大学华软软件学院 软件工程系 实验五 SQL高级查询 实验目的: 本次实验旨在使学生熟练掌握与运用连接查询与子查询。 实验要求: 理解数据库设计的三个范式的意义; 理解连接的基本意义: 通过联接,可以从两个或多个表中根据各个表之间的逻辑关系来检索数据。 联接通过以下方式定义两个表在查询中的关联方式: (1)指定每个表中要用于联接的列。 (典型的联接条件在一个表中指定一个外键,而在另一个表中指定与其关联的键。) (2)指定用于比较各列的值的比较运算符(如 = 或 ) (3)当2个表的连接条件所涉及的属性一致时可使用自然连接 理解和掌握集合的操作。 子查询是一种SELECT语句的使用方法,它嵌套在SELECT、UPDATE、DELETE、INSERT语句或其他的子查询语句中。 使用子查询是因为DML的操作依赖于子查询的结果。 实验环境: Oracle 10g 实验步骤: 使用scott模式登录数据库 查询所有员工及其所在部门的信息(emp,dept) 使用左外连接查询部门及其部门所拥有的员工的信息(emp,dept) 分别使用右外连接、外连接和交叉连接进行操作。 查询员工姓名、部门、工资、工资级别等信息,员工的工资级别必须处于工资水平级别最低等级1。 查询高于平均工资的员工信息。 查询高于平均工资的员工及其部门信息。 查询尚没有员工的部门信息。 查询所有员工的工资等级 。 查询和SCOTT同一个职位(job)的所有员工的员工名、部门名和工资等级 实际操作: Conn scott/tiger@orcl (或conn scott/tiger) 这是不同的连接方式,前面是使用网络服务名 (连接名)进行连接,这种连接是通过internet进行连接的,所以该网络服务名所指向的数据库的监听器必须启动并监听,后一种连接方式是连接由oracle_sid 指定的例程名,不是使用网络连接而是本地连接(通过Oracle Net的支持),所以监听器是否启动都不受影响。 Select * from emp inner join dept on emp.deptno = dept.deptno; 自然连接: Select * from emp natural join dept; 内连接表的结果集与查询表、连接表的次序无关,请同学们验证。 输入并执行语句:Set linesize 200; 再执行查询语句,观察输出的结果格式的区别。 Select * from dept left outer join emp on emp.deptno = dept.deptno; 同学们再执行一次右外连接查询,仔细观察两个结果集的区别; 同学们自己动手 Select e.ename,d.dname,e.sal,s.grade from emp e inner join dept d on e.deptno = d.deptno inner join salgrade s on (e.sal between s.losal and s.hisal) and s.grade = 1; select * from emp where sal select avg(sal) from emp select * from emp join dept on emp.deptno = dept.deptno where sal (select avg(sal) from emp); select * from dept where deptno not in (select deptno from emp) select e.ename,g.grade from emp e join salgrade g??on e.sal between g.losal and g.hisal select e.ename,d.dname,g.grade from emp e join dept d ???on e.deptno=d.deptno ???join salgrade g ???on e.sal between g.losal and g.hisal ???where job=(select job from emp where ename=SCOTT) Oralce一些特殊用法: select e.ename,d.dname from emp e join dept d using(deptno) = select e.ename,d.dname from emp e join dept d on e.deptno = d.deptno; 使

文档评论(0)

33qwer + 关注
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档