【DB】Oracle学习笔记(3)

 

视图

1、用超级管理员登录把创建权限赋给某用户。

grant create table,create view to scott;

2、创建视图,视图名称以v$开头,as后面跟select语句

create view v$_dept_avg-sal_info as

       select deptno,grade,avg_sal from

        ( select deptno,avg(sal) avg_sal from emp group by deptno)t

       join salgrade s on 9t.avg_sal between s.losal and s.hisal)

3、查看视图内容

 select * from v$_dept_avg-sal_info

表的操作

备份

create table dept2 as select * from dept;  

插入数据

insert into dept2 values(50,'game','beijing'); 

insert into dept2(deptno,dname) values(60,'game2');

将一个表中的数据完全插入另一个表中(表结构必须一样)

insert into dept2 select * from dept;    

用户建立和删除

每个用户对应一个表空间,表空间相互独立。  

删除用户

drop user abc cascade;

导出用户

直接在cmd下面使用exp命令

创建用户

在orcl命令行下执行命令:(注意不是cmd)

create user 用户名 identified(认证) by 密码default tablespace users quota(配额) 10M on users    

         grant create session(给它登录到服务器的权限),create table, create view to 用户名

导入数据

直接在cmd下面使用imp命令 

rownum

86、-----求前五名员工的编号和名称(使用虚字段rownum 只能使用 < 或 = 要使用 > 必须使用子查询)    

    select empno,ename from emp where rownum <= 5;    

86、----求10名雇员以后的雇员名称--------    

    select ename from (select rownum r,ename from emp) where r > 10;    

87、----求薪水最高的前5个人的薪水和名字---------    

    select ename, sal from (select ename, sal from emp order by sal desc) where rownum <=5;      

88、----求按薪水倒序排列后的第6名到第10名的员工的名字和薪水--------    

    select ename, sal from    

           (select ename, sal, rownum r from    

              (select ename, sal from emp order by sal desc)    

           )    

   where r>=6 and r<=10  

事务

事务回滚

 当非正常断开连接,例如直接关闭dos窗口或关机,事务自动回滚。

     在命令行下敲入第一条DML语句时就已经开始了一个事务,只要没有执行commit,这些操作就都在同一个事务里。因此执行rollback;会回滚全部操作。  

事务提交

当正常断开连接的时候例如exit,事务自动提交。

执行DDL语句事务自动提交。

执行commit;//此时再执行rollback无效   

推荐一个淘宝旗下网站,每天9块9包邮还返利。现在登录还有9元支付宝红包送你哦!http://invite.etao.com/67121619402a047e.htm  

你可能感兴趣的:(oracle,学习,3)