ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:291.43KB ,
资源ID:7964849      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7964849.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(玩转oracle实战教程个人笔记Word文档下载推荐.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

玩转oracle实战教程个人笔记Word文档下载推荐.docx

1、Drop profile lockma cascade;清屏操作:clearDisconnect: 断开与当前数据库的连接Password: 修改密码,如果要修改其他用户密码,需要用sys/system登录Show user: 查看当前连接用户Exit: 断开与数据库连接,同时会退出sql*plusStart和: 运行sql脚本,如: d:a.sql 或者start d:a.sqlEdit: 编辑指定的脚本 如:edit d:Spool:可以将sql*plus屏幕上的内容输出到知道的文件中去,如:sqlspool d:b.sql; 然后所有的操作及结果都会输出到文件,最后输入sqlspoolo

2、ff结束Oracle表的管理Oracle表名和列的命名规则:必须以字母开头长度不能超过30个字符不能使用oracle的保留字只能使用如下字符 A-Z,a-z,0-9,$,#等Oracle支持的数据类型:字符型char:定长,最大2000字符,对于长度变化不大的变量,查询速度很快。如身份证id。varchar2:变长,最大4000字符。节省空间。clob(character large object):字符串大对象,最大4G数字型number 可以表示整数也可以表示小数number(5,2)表示有5位有效数字,2位小数,-999.99999.99number(5)表示一个5位整数,-999999

3、9999日期型date 包括年月日和时分秒timestamp oracle对date数据类型的扩展图片blob 二进制数据,可以存放图片/声音 4G创建表:DDL数据描述语言,包括create drop alterDML数据操作语言,包括select insert delete updateDCL数据控制语言,包括grant revokecreate table student( 2 no number(10), 3 name varchar2(10), 4 sex char(2), 5 birthday date, 6 sal number(7,2) 7 );添加一个字段:alter tab

4、le student add classid number(2);修改字段长度:alter table student modify name varchar(30);修改字段类型或字段名字(不能有数据):alter table student modify name char(20);删除一个字段:alter table student drop column sal;修改表的名字:rename student to stud;删除表:drop table student;插入数据:insert into stud values (1,马杰,男16-11月-1988,12);其中日期的格式,

5、oracle默认的是:dd-mon-yy, 而且月份必须有月字。可以修改oracle的默认值:alter session set nls_date_format=yyyy-mm-dd;然后再插入数据:insert into stud values (2,张三1988-11-1SQL select * from stud; NO NAME SEX BIRTHDAY CLASSID- - - - - 1 马杰 男 1988-11-16 12 2 张三 男 1988-11-1 12修改no字段非空:alter table stud modify no not null;alter table stu

6、d modify name not null;alter table stud modify sex not null;alter table stud modify classid not null;insert into stud (no,name,sex,birthday,classid) values(3,李四,null,10);查询空的记录:select * from stud where birthday is null; select * from stud where birthday is null; 3 李四 男 10修改多列:update stud set name=李斯

7、, sex=女,birthday=1988-11-05 where no=3 select * from stud where no = 3 李斯 女 1988-11-5 10还原点的作用,在还原点里进行的操作可以rollback回去:savepoint bb; savepoint bb;Savepoint created delete from stud;3 rows deleted NO NAME SEX BIRTHDAY CLASSID SAL- - - - - - rollback to bb;Rollback complete SQL 1 马杰 男 1988-11-16 12 100

8、.00 2 张三 男 1988-11-1 12 200.00 3 李四 男 10 300.00关于多个还原点: savepoint a1;Savepoint created update stud set sal = 110 where no =1;1 row updated savepoint a2; update stud set sal = 220 where no =2; 1 马杰 男 1988-11-16 12 110.00 2 张三 男 1988-11-1 12 220.00 rollback to a1; 1 马杰 男 1988-11-16 12 100.00如果rollback

9、 to a2的话,就只有第二条记录会被还原。如果还原点内任何位置进行了commit操作,则还原点被删除: update stud set sal = 110 where no =1; commit;Commit completerollback to a1ORA-01086: 从未创建保存点 A1 1 马杰 男 1988-11-16 12 110.00特殊的删除表数据:truncate table stud;删除表中的所有记录,表结构还在,删除操作不写日志,无法找回删除的记录,但是速度很快。可以用于数据表非常庞大的时候进行删除。Oracle表的查询简单查询:查询scott的emp表,计算年工资

10、(包括奖金):select sal*12+comm*12 工资, ename from emp;结果为,没有奖金的员工就没有年工资了,这主要是由于comm存在null值的缘故。故修改语句为:select sal*12+nvl(comm,0)*12 工资,ename from emp;使用nvl(comm,0),如果comm为null,则让comm为0。使用like关键字:%代表任意0个或多个字符,_代表任意单个字符。 select ename from emp where ename like _O%ENAME-SCOTTS%SMITH升序(asc)和降序(desc):Select ename

11、,sal,deptno from emp order by deptno, sal desc;可以按照字段别名排序:select ename, sal*12+nvl(comm,0)*12 年薪 from emp order by 年薪;复杂查询:子查询查询最高工资的员工的姓名和工资:select ename,sal from emp where sal in (select max(sal) from emp);不能写成:select ename,sal from emp where sal=max(sal); select ename, max(sal) from emp;查询比平均工资高的

12、员工的信息:select * from emp where sal(select avg(sal) from emp);查询每个部门每种岗位的平均工资:select avg(sal),max(sal) ,deptno,job from emp group by deptno,job; select avg(sal),max(sal) ,deptno,job from emp group by deptno,job; AVG(SAL) MAX(SAL) DEPTNO JOB- - - - 950 1100 20 CLERK 1400 1600 30 SALESMAN 2975 2975 20 M

13、ANAGER 950 950 30 CLERK 5000 5000 10 PRESIDENT 2850 2850 30 MANAGER 1300 1300 10 CLERK 2450 2450 10 MANAGER 3000 3000 20 ANALYST9 rows selected显示平均工资大于2000的的部门号和它的平均工资:select avg(sal),max(sal) ,deptno from emp group by deptno having avg(sal)2000;总结:1、 分组函数只能出现在选择列表、having、order by子句中2、 如果select语句中同时

14、包含有group by、having、order by,那么它们的顺序是group by、having、order by。3、 在选择列中,如果有列、表达式和分组函数,那么这些列和表达式必须有一个出现在group by子句中,否则就会出错。多表查询:多表查询的条件是:连接条件至少不能少于 “表的个数-1”查询部门为10的部门名称,员工姓名,员工工作:select d.dname,e.ename,e.sal from emp e,dept d where e.deptno=d.deptno and d.deptno=10;查询员工的姓名,工资,员工的工资级别:select e.ename, e.

15、sal,s.grade from emp e,salgrade s where e.sal between s.losal and s.hisal;自连接:查询员工的领导编号和名字:select e1.ename worker,e1.mgr bossid,e2.ename boss from emp e1,emp e2 where e1.mgr=e2.empno; select e1.ename worker,e1.mgr bossid,e2.ename boss from emp e1,emp e2 where e1.mgr=e2.empno;WORKER BOSSID BOSS- - -F

16、ORD 7566 JONESSCOTT 7566 JONESJAMES 7698 BLAKETURNER 7698 BLAKEMARTIN 7698 BLAKEWARD 7698 BLAKEALLEN 7698 BLAKEMILLER 7782 CLARKADAMS 7788 SCOTTCLARK 7839 KINGBLAKE 7839 KINGJONES 7839 KINGSMITH 7902 FORD单行子查询:查询和SMITH一个部门的员工:select e.*,d.dname from emp e,dept d where e.deptno=(select deptno from em

17、p where ename=SMITH) and e.deptno=d.deptno;EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DNAME- - - - - - - - - 7369 SMITH CLERK 7902 1980-12-17 800.00 20 RESEARCH 7566 JONES MANAGER 7839 1981-4-2 2975.00 20 RESEARCH 7788 SCOTT ANALYST 7566 1987-4-19 3000.00 20 RESEARCH 7876 ADAMS CLERK 7788 1987-5-2

18、3 1100.00 20 RESEARCH 7902 FORD ANALYST 7566 1981-12-3 3000.00 20 RESEARCH多行子查询:查询大于部门30的任意员工工资的员工信息:select ename,sal,deptno from emp where sal any(select sal from emp where deptno=30);或者是: (select min(sal) from emp where deptno=30);多列子查询:查询和SMITH相同部门并且工作相同的员工信息:select * from emp where (deptno,job)

19、=(select deptno,job from emp where ename=);EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO- - - - - - - - 7369 SMITH CLERK 7902 1980-12-17 800.00 20 7876 ADAMS CLERK 7788 1987-5-23 1100.00 20查询高于自己部门平均工资的员工的信息:第1步,查询各个部门的平均工资和部门号:select deptno,avg(sal) mysal from emp group by deptno;DEPTNO MYSAL- - 30

20、1566.66666 20 2175 10 2916.66666第2步,把上面的查询看做为一张子表temp:select e.ename,e.sal,e.deptno,temp.mysal from emp e,(select deptno,avg(sal) mysal from emp group by deptno) temp where e.deptno=temp.deptno and e.saltemp.mysal;ENAME SAL DEPTNO MYSAL- - - -ALLEN 1600.00 30 1566.66666JONES 2975.00 20 2175BLAKE 285

21、0.00 30 1566.66666SCOTT 3000.00 20 2175KING 5000.00 10 2916.66666FORD 3000.00 20 2175Oralce分页一个有三种方式,下面是rownum分页方式:1rownum分页(select * from emp)2.显示rownumoracle分配的select a1.*,rownum rn from (select * from emp) a1;3然后筛选rownum=10的:select a1.*,rownum rn from (select * from emp) a1 where rownum=6;嵌套如下:select * from (select a1.*,rownum rn from (select * from emp) a1 where rownumEMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO RN- - - - - - - - - 7698 BLAKE MANAGER 7839 1981-5-1 2850.00 30 6 7782 CLARK MANAGER 7839 1981-6-9 2450.00 10 7 7788

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2