Oracle学习(十):视图,索引,序列号,同义词

Oracle学习(十):视图,索引,序列号,同义词

大家好,又见面了,我是全栈君。

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;


Oracle学习(十):视图,索引,序列号,同义词

图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 NUMBERSQL> 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 clsSQL> --序列sequenceSQL> 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. 内存。长度20SQL> 2. 序列是一个公有对象SQL> 3. rollback序列不连续:SQL> 1. 内存,长度20SQL> 2. 序列是一个公有对象SQL> 3. rollbackSQL> */SQL> host clsSQL> --同义词SQL> show userUSER 为 "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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115815.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用JavaSocket编程开发聊天室,附超详细注释

    用JavaSocket编程开发聊天室,附超详细注释用JavaSocket编程开发聊天室大二下册的JavaWeb课程设计,使用的是eclipse。一、实现功能登录:用Java图形用户界面编写聊天室服务器端和客户端,支持多个客户端连接到一个服务器。每个客户端能够输入账号。群聊:可以实现群聊(聊天记录显示在所有客户端界面)。好友列表:完成好友列表在各个客户端上显示。私聊:可以实现私人聊天,用户可以选择某个其他用户,单独发送信息,接受私聊消息方可以直接弹出消息框。踢人:服务器能够群发系统消息,能够强行让某些用户下线。更新:客

    2022年6月16日
    29
  • 单片机的io口的结构_单片机io口结构对比异同点

    单片机的io口的结构_单片机io口结构对比异同点文章目录单片机的最小系统(纯电路)单片机最小系统电路图STC89c52最小系统增强型8051最小系统晶振的样子STC单片机复位IO口结构写0亮灯写1灭灯强推挽模式写1输出5V大电流开漏模式写0输出0V不能拉高高阻输入单片机的最小系统(纯电路)单片机最小系统电路图1.电源供电:5V的正极接VCC脚,5V的负极接GND2.时钟电路:提供时钟信号,内存IRC震荡或者外部晶振参与震荡3.复位电路:避免上电过程中执行程序进而产生误动作甚至损坏电路STC89c52最小系统增强型8051最小系统

    2022年10月21日
    2
  • 小白能读懂的 《手把手教你学DSP(TMS320X281X)》第三章 2020-12-25

    小白能读懂的 《手把手教你学DSP(TMS320X281X)》第三章 2020-12-251最小系统1.1任何保证正常工作一定要检查电源和地是否短接。电源芯片一定要产生稳定电压,3.3V和1.8V。板子要断电插拔,不要热插拔JTAG。1.2最小系统1.2.1电源电路电源芯片常用TPS767D301,产生稳定的3.3V与1.8V。电源和地之间要通过电容连接,电容值查询数据手册,有推荐使用的电路。数字电源和模拟电源通过电感或磁珠连接,数字地和模拟地也通过这些隔断。1.2.2芯片引脚主要是各部分的引脚,内核数字地和模拟地,内核电压和模拟电压。

    2022年5月4日
    52
  • 级数敛散性

    级数敛散性

    2021年9月16日
    41
  • ubuntu设置虚拟显示器且远程连接[通俗易懂]

    ubuntu设置虚拟显示器且远程连接[通俗易懂]ps:如果需要再用显示器,需要删除或者重命名“xorg.conf”文件,后缀名改掉即可,如.conf_bak。虽然配置上面写了“1920×1080”,但是实际上最大支持“1360×768”,重启即可生效。重启计算机后,系统会默认使用虚拟显示器,即使接入了显示器,也不会输出信号到显示器上!使用teamviewer、todesk或者向日葵等远程工具实现远程连接即可。…

    2022年8月21日
    20
  • Android 进行单元測试难在哪-part3

    Android 进行单元測试难在哪-part3

    2022年1月22日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号