[工学]3 SQL 语言基础.ppt

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

其他函数 大家知道,NULL值表示一个未知数据或者一个空值,算术操作符的任何一个操作数为NULL值,结果均为NULL值,这个规则也适合很多函数,但是在数据库查询中如果查询的结果为NULL,就无法参与运算了。如:300+NULL,这是非法的。怎么办呢? 函数NVL专门处理空值NULL。 格式为:NVL(x1,x2) 其中x1和x2都是表达式,当x1不为null时返回x1,否则返回x2。参数x1和x2可以是任意数据类型,但必须匹配。 例:select ename,sal,comm,sal+nvl(comm,0) from emp where deptno=30 order by ename; NVL2(x1,x2,x3) 其中x1、x2和x3都是表达式。当x1不为null时返回x2,否则返回x3。参数x1可以是任意数据类型,但参数x2和x3不能是long数据类型,而且二者必须与x1匹配。 例:select ename,sal,comm,NVL2(comm,sal+comm,sal) from emp where deptno=20 order by ename; 上机练习 打开SQL*PLUS,进行下述练习: 1请从表EMP中查找工种是职员CLERK或经理MANAGER的雇员姓名、工资。 2请在EMP表中查找部门号在10-30之间的雇员的姓名、部门号、工资、工作。 3请从表EMP中查找姓名以J开头所有雇员的姓名、工资、职位。 4请从表EMP中查找工资低于2000的雇员的姓名、工作、工资,并按工资降序排列。 5请从表中查询工作是CLERK的所有人的姓名、工资、部门号、部门名称以及部门地址的信息。 6查询表EMP中所有的工资大于等于2000的雇员姓名和他的经理的名字。 7在表EMP中查询所有工资高于JONES的所有雇员姓名、工作和工资。 7列出没有对应部门表信息的所有雇员的姓名、工作以及部门号。 8雇员中谁的工资最高。 9查询所有81年7月1日以前来的员工姓名、工资、所属部门的名字。 10查询各部门中81年1月1日以后来的员工数。 11建立一个表(my_emp),表结构与EMP相同,并将emp表中的记录插入到该表中。 12将my_emp中与员工SCOTT工资相同的员工的工资都增加300元。 13练习课本上事务控制的例子。 2 在DELETE子句中使用子查询 删除ACCOUNTIBG部门的员工信息。然后确认删除的结果。 delete from emp1 where deptno=(select deptno from dept1 where dname=ACCOUNTING); select ename,job,deptno from emp1 where deptno=(select deptno from dept1 where dname=ACCOUNTING); 3在INSERT子句中使用子查询。 将emp表中ACCOUNTING部门的雇员信息插入到emp表中,然后确认插入的结果。 insert into emp1 select * from emp where deptno=(select deptno from dept where dname=ACCOUNTING); select * from emp1 where deptno=(select deptno from dept1 where dname=ACCOUNTING); 连接查询 用户在前面所作的查询大多是对单个表进行的查询,而在数据库的应用中,经常需要从多个相关的表中查询数据,这就需要使用连接查询。 由于连接涉及多个表及其之间的引用,所以列的引用均必须明确,对于重复的列名必须用表名限定。 在Oracle系统中,为了从多个表中检索数据,可以使用下面的语法格式: select table1.column, table2.column from table1, table2 where table1.column1 = table2.column2 笛卡尔乘积 连接查询的理论基础是笛卡尔乘积。也就是说,连接运算建立在笛卡尔乘积的基础上,所有连接运算的结果都是笛卡尔乘积的子集。 笛卡尔乘积是指两个或两个以上的表进行相乘运算,结果是这些表中所有行的任意组合。 例如,emp表中有14行数据,dept表中有4行数据,其结果中有56行数据。 连接类型 在连接运算中,根据指定的连接条件,可以把连接查询划分成3种类型,即 内连接 外连接 交叉连接 内连接 内连接是组合两个表的常用方法,它将两个表中的列进行比较,将两个表中满足连接条件的行组合起来,作为结果。 内连接主要有两种形式,相等连接和不等连接。 相等连接就是在连接列相等的条件下

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档