- 1、本文档共76页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle基础PPT课件.ppt
数据库原理与空间数据库 李伟涛 liweitao_801225@126.com * number 默认 就是它的最大范围. 并不是网上有人说的 等同于 number(38) ,而应该是: 1 = p =38, -84 = s = 127 保存数据范围:-1.0e-130 = number value 1.0e+126 保存在机器内部的范围: 1 ~ 22 bytes ■ 添加一个字段 sql alter table 表名 add (字段名 字段类型); ■ 修改字段的长度 sql alter table 表名 modify (字段名 字段类型); ■ 修改字段的类型/或是名字(不能有数据) sqlalter table 表名 modify (字段名 字段类型); ■ 删除一个字段 sqlalter table 表名 drop column 字段名; ■ 修改表的名字 sqlrename 原来表名 to 新表名; ■ 删除表 sqldrop table 表名; crud (create retrieve update delete) ORACLE中默认的日期格式DD-MON-YY dd 日子(天),mon 月份 yy 2位的年 09-6月-99 1999年6月9号 改日期的默认格式 alter session set nls_date_format = yyyy-mm-dd; 插入空值 : insert into student(xh,xm,sex,birthday) values (A004,MARTIN,男,null); select sal*13+nvl(comm,0)*13 年工资,ename,comm from emp; select ename || is a || job from emp; 第一个方法: select ename,sal,dept from emp where salany (select sal from emp where deptno=30); 第二种方法: Select ename,sal,deptno from emp where sal(select min(sal) from emp where deptno=30); oracle表复杂查询—子查询 ■ 在from子句中使用子查询 请思考:如何显示高于自己部门平均工资的员工的信息 这里要用到数据查询的小技巧,把一个子查询当作一个临时表使用 解法① select e1.*,e2.myavg from emp e1,(select avg(sal) myavg,deptno from emp group by deptno) e2 where e1.deptno=e2.deptno and e1.sale2.myavg 解法② select e1.* from emp e1 where e1.sal(select avg(sal) from emp where deptno=e1.deptno) oracle表复杂查询—子查询 ■ 在from子句中使用子查询 请思考:查找每个部门工资最高的人的详细资料 解法① 解法② 思路:得到所有的员工,进行筛选,每拿到一个员工,判断该员工的工资是否是他们部门的最高工资。 select * from emp e where sal=(select max(sal) from emp where deptno=e.deptno); oracle表复杂查询—子查询 ■ 在from子句中使用子查询 请思考:显示每个部门的信息和人员数量 解法① 自己完成… 解法② 查询获得所有的部门信息,每获得一个部门,我们就查询该部门的人数,保存为一个新的列。 select d.*,(select count(*) from emp where deptno=d.deptno) allnum from dept d; oracle表复杂查询—子查询 ■ 在from子句中使用子查询 这里需要说明的当在from子句中使用子查询时 ,该子查询会被作为一个临时表来对待, 当在from子句中使用子查询时,必须给子查询 指定别名. oracle表复杂查询—子查询 ■ 分页查询 按雇员的id号升序取出。 oracle表复杂查询—子查询 ■ 用查询结果创建新表 这个命令是一种快捷的建表方法. create table mytable (id,name,sal,job,deptno) as select empno,ename,sal,job,deptno from emp; ■ 自我复制数据(蠕虫复制) 有时,为了对某个sql语句进行效率测试,我们需要海量数据时,可以使用
文档评论(0)