1.知识点:能够对比以下的录屏进行阅读

视图,序列,索引,同义词
SQL> --视图:虚表
SQL> --视图的长处:简化复杂查询。限制数据訪问(银行用的多)。提供数据的相互独立。相同的数据能够有不同的显示方式
SQL> --第一个视图: 员工号 姓名 月薪 年薪
SQL> create view view1
2 as
3 select empno,ename,sal,sal*12 annlsal from emp;
SQL> --假设显示没有权限,则须要授权,见下图1-1 SQL> --复杂视图
SQL> create or replace view view2 --假设view2存在就替换,否则就创建
2 as
3 select empno,ename,sal,sal*12 annlsal,dname
4 from emp e, dept d
5 where e.deptno=d.deptno
6 with read only; --仅仅读视图 SQL> --序列sequence
SQL> create sequence myseq; SQL> --插入数据
SQL> insert into testseq values(myseq.NEXTVAL,'aaa'); SQL> --序列不连续:
SQL> --1. 内存,长度20
SQL> --2. 序列是一个公有对象
SQL> --3. rollback SQL> --创建索引表
SQL> --create index myindex on emp(deptno); SQL> --同义词,即为别名
SQL> --为hr.EMPLOYEES起别名
SQL> create SYNONYM hremp for hr.EMPLOYEES;



watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdjEyMzQxMTczOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

图1-1给scott授权



2.在Sqlplus下实际运行的结果录屏

SQL> host cls

SQL> --视图
SQL> --第一个视图: 员工号 姓名 月薪 年薪
SQL> create view view1
2 as
3 select empno,ename,sal,sal*12 annlsal from emp;
create view view1
*
第 1 行出现错误:
ORA-01031: 权限不足 SQL> / 视图已创建。 SQL> desc view1
名称 是否为空? 类型
----------------------------------------------------------------------------------- -------- --------------------------------------------------------
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
SAL NUMBER(7,2)
ANNLSAL NUMBER SQL> select * from view1; EMPNO ENAME SAL ANNLSAL
---------- ---------- ----- ----------
7369 SMITH 800 9600
7499 ALLEN 1600 19200
7521 WARD 1250 15000
7566 JONES 2975 35700
7654 MARTIN 1250 15000
7698 BLAKE 2850 34200
7782 CLARK 2450 29400
7788 SCOTT 3000 36000
7839 KING 5000 60000
7844 TURNER 1500 18000
7876 ADAMS 1100 13200 EMPNO ENAME SAL ANNLSAL
---------- ---------- ----- ----------
7900 JAMES 950 11400
7902 FORD 3000 36000
7934 MILLER 1300 15600 已选择14行。 SQL> create view view2
2 as
3 select empno,ename,sal,sal*12 annlsal,dname
4 from emp e, dept d
5 where e.deptno=d.deptno; 视图已创建。 SQL> select * from view2; EMPNO ENAME SAL ANNLSAL DNAME
---------- ---------- ----- ---------- --------------
7369 SMITH 800 9600 RESEARCH
7499 ALLEN 1600 19200 SALES
7521 WARD 1250 15000 SALES
7566 JONES 2975 35700 RESEARCH
7654 MARTIN 1250 15000 SALES
7698 BLAKE 2850 34200 SALES
7782 CLARK 2450 29400 ACCOUNTING
7788 SCOTT 3000 36000 RESEARCH
7839 KING 5000 60000 ACCOUNTING
7844 TURNER 1500 18000 SALES
7876 ADAMS 1100 13200 RESEARCH EMPNO ENAME SAL ANNLSAL DNAME
---------- ---------- ----- ---------- --------------
7900 JAMES 950 11400 SALES
7902 FORD 3000 36000 RESEARCH
7934 MILLER 1300 15600 ACCOUNTING 已选择14行。 SQL> create or replace view view2
2 as
3 select empno,ename,sal,sal*12 annlsal,dname
4 from emp e, dept d
5 where e.deptno=d.deptno
6 with read only; 视图已创建。 SQL> host cls SQL> --序列sequence
SQL> create sequence myseq; 序列已创建。 SQL> create table testseq
2 (tid number,tname varchar2(20)); 表已创建。 SQL> select myseq.CURRVAL from dual;
select myseq.CURRVAL from dual
*
第 1 行出现错误:
ORA-08002: 序列 MYSEQ.CURRVAL 尚未在此会话中定义 SQL> select myseq.NEXTVAL from dual; NEXTVAL
----------
1 已选择 1 行。 SQL> / NEXTVAL
----------
2 已选择 1 行。 SQL> select myseq.CURRVAL from dual; CURRVAL
----------
2 已选择 1 行。 SQL> insert into testseq values(myseq.NEXTVAL,'aaa'); 已创建 1 行。 SQL> / 已创建 1 行。 SQL> / 已创建 1 行。 SQL> commit; 提交完毕。 SQL> select * from testseq; TID TNAME
---------- --------------------
3 aaa
4 aaa
5 aaa 已选择3行。 SQL> insert into testseq values(myseq.NEXTVAL,'aaa'); 已创建 1 行。 SQL> / 已创建 1 行。 SQL> rollback; 回退已完毕。 SQL> insert into testseq values(myseq.NEXTVAL,'aaa'); 已创建 1 行。 SQL> select * from testseq; TID TNAME
---------- --------------------
3 aaa
4 aaa
5 aaa
8 aaa 已选择4行。 SQL> /*
SQL> 序列不连续:
SQL> 1. 内存。长度20
SQL> 2. 序列是一个公有对象
SQL> 3. rollback序列不连续:
SQL> 1. 内存,长度20
SQL> 2. 序列是一个公有对象
SQL> 3. rollback
SQL> */
SQL> host cls SQL> --同义词
SQL> show user
USER 为 "SCOTT"
SQL> select count(*) from hr.EMPLOYEES;
select count(*) from hr.EMPLOYEES
*
第 1 行出现错误:
ORA-00942: 表或视图不存在 SQL> / COUNT(*)
----------
107 已选择 1 行。 SQL> --为hr.EMPLOYEES起别名
SQL> create SYNONYM hremp for hr.EMPLOYEES;
create SYNONYM hremp for hr.EMPLOYEES
*
第 1 行出现错误:
ORA-01031: 权限不足 <span style="white-space:pre"> </span> SQL> / 同义词已创建。 SQL> select count(*) from hremp; COUNT(*)
----------
107 已选择 1 行。 SQL> spool off

Oracle学习(十):视图,索引,序列号,同义词的更多相关文章

  1. Oracle学习2 视图 索引 sql编程 游标 存储过程 存储函数 触发器

    ---视图 ---视图的概念:视图就是提供一个查询的窗口,来操作数据库中的数据,不存储数据,数据在表中. ---一个由查询语句定义的虚拟表. ---查询语句创建表 create table emp a ...

  2. oracle学习 十 数据库的语句优化(持续更)

    平时关注Oracle数据库的网友都知道,Oracle性能优化保证了Oracle数据库的健壮性.下面就此提出需要注意的两个原则.   原则一:注意WHERE子句中的连接顺序: ORACLE采用自下而上的 ...

  3. 【Oracle学习笔记】索引

    1 简介 1)索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引.在数据库中索引可以减少数据库程序查询结果时需要读取的数据量,类似于在书籍中我们利用索引可以不用翻阅整本书即可找到想要的信息. ...

  4. (五)Oracle学习笔记—— 视图

    1. 视图简介 视图是虚表,没有具体物理数据,是通过实体表的一种计算映射逻辑.主要就是为了方便和数据安全. 2. 视图作用 简化数据操作:视图可以简化用户处理数据的方式. 着重于特定数据:不必要的数据 ...

  5. Oracle数据库---序列、索引、同义词

    --创建序列create sequence deptno_seqstart with 50increment by 10maxvalue 70cache 3; --为了方便演示,创建了一个和dept表 ...

  6. oracle学习 十二 使用.net程序调用带返回值的存储过程(持续更新)

    数据库返回的是结果集,存储过程返回的是一个或者多个值,所以不要使用while循环去读取,也不要使用datareader函数去调用.v_class_name是返回函数 使用.net调用oracle数据库 ...

  7. Oracle学习(十二):存储过程/存储函数

    1.知识点 --第一个存储过程 /* 打印Hello World create [or replace] PROCEDURE 过程名(參数列表) AS PLSQL子程序体: 调用存储过程: 1. ex ...

  8. Oracle学习(十四):管理用户安全性

    --用户(user) SQL> --创建一个名为 grace password是password 的用户,新用户没有不论什么权限 SQL> create user grace identi ...

  9. Oracle 学习笔记 12 -- 序列、索引、同义词

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/Topyuluo/article/details/24232449 数据库的对象包含:表.视图.序列. ...

随机推荐

  1. 计划任务中使用NT AUTHORITY\SYSTEM用户和普通管理员用户有什么差别

    原文地址:http://www.ynufe.edu.cn/metc/Article/ShowArticle.asp?ArticleID=805 系统管理员会碰到这种问题,为什么在更改系统登录用户pas ...

  2. LabView 下载与安装

    labview2014是目前labview软件的最新版本,新版本增加了多个VI服务器对象,增加了多个vi脚本对象,增加了labview第三方许可和激活工具包,同时针对程序框图.编辑环境.应用程序生成器 ...

  3. Android项目svn代码管理问题

    用svn控制版本,svn本身是不会识别哪些该传,哪些不该传,这就导致有些关于路径的东西(比如拓展jar的路径)也被上传了,而当别人下载后,那个路径对于这个人可能完全不存在,项目编译就会出问题.用ecl ...

  4. asp.net 读取Excel文档

    <注:>默认读取数据从Excel的第二行开始. public DataSet ReadExcel(string Path) { string strConn = "Provide ...

  5. UML学习-时序图

    时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排列的.顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序.时序图中包括的建模元素主要有:对象(Actor) ...

  6. 使用Battery Historian(android 5.0)

    http://hukai.me/android-performance-battery/可以先参考这篇文章 1$ adb shell dumpsys batterystats > xxx.txt ...

  7. codeforces 339C Xenia and Bit Operations(线段树水题)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud Xenia and Bit Operations Xenia the beginn ...

  8. 关于很简单的设计模式,ui-dao-database,以及JavaBean和util工具类

    关于很简单的设计模式,ui-dao-database,以及JavaBean和util工具类 24. 三 / J2EE / 没有评论   简单的j2ee设计模式, UI通过DAO层访问数据库或者xml文 ...

  9. SpringMvc项目 FastJson的数据中有$ref解决办法

    这是FastJson返回的数据,经过在线json格式转换工具转换的数据 阴影部分套用上面的dept(部门)信息,使用easyui只能获取第一行,凡是引用的都无法获取 经各种搜索: 推荐网址:http: ...

  10. layer 模版使用

    function doReply(id){ var url = "/Feedback/Feedback/reply"; var content = $("#reply_c ...