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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • layui框架——弹出层layer[通俗易懂]

    layui框架——弹出层layer[通俗易懂]两种调用方法:1、引用独立的layer.js文件引入好layer.js后,直接用即可<scriptsrc=”layer.js”></script><script>layer.msg(‘hello’);</script>2、调用layui中的layer模块layui.use(‘layer’,function(){…

  • (2)JMeter元件详解之Simple Controller简单控制器

    (2)JMeter元件详解之Simple Controller简单控制器

  • Apache配置虚拟主机出现forbidden的问题

    Apache配置虚拟主机出现forbidden的问题1.httpd.conf中配置过网站根目录该配置文件的250行左右,修改了根目录①httpd.conf配置文件中这两处都要修改②httpd-vhosts.conf配置文件中检查DocumentRoot是不是有默认值,有的话要修改根目录③重启Apache服务,清空浏览器缓存2.httpd-vhosts.conf中配置过虚拟主机httpd.conf配置中文件中找到VirtualHost,…

  • 毕设不会做怎么办_毕设网

    毕设不会做怎么办_毕设网身边很多从事办公室的白领,经常会听他们说:腰椎不行了,有点难受,要不就颈椎也不舒服,这些常见的现象不可忽视,它会对人们后面的生活产生很多负面的影响,所以我们想到能不能有这么一个设备,它会定期提醒人们不要坐太久。其实久坐提醒不是一个新鲜事,市面上也有许许多多关于久坐提醒的工具神器,但是,今天我们HaaS团队就手把手教长期在办公室久坐着的你亲手打造一款属于自己的久坐提醒设备,当你长时间在工位上坐着,它会通过钉钉提醒你,让你一段时间去活动一下筋骨,走动走动,这样让我们上班的同时身体也变得更健康。1、…

  • python基础(8)python中is和==的区别详解

    python基础(8)python中is和==的区别详解前置知识点当我们创建一个对象时,我们要知道它内部干了些什么1.创建了一个随机id,开辟了一片内存地址2.自动声明了这个对象的类型type3.给这个对象赋值value小例子a=1pri

  • qt 气泡聊天界面_微信聊天气泡框素材

    qt 气泡聊天界面_微信聊天气泡框素材目录由于最近的项目需要,做了些相关IM的工作。所以聊天框也是必不可少的一部分。聊天框的制作分很多种,本文以QListWidget+QPainter绘制的Item做了一个Demo。该Demo只是做一个示例,代码已公布如下,需要的拿去!目录效果图实现原理调用样例实现类代码分享效果图实现原理气泡式聊天的显示是由QListWidget作为控件,每个…

发表回复

您的电子邮箱地址不会被公开。

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