Oracle入门基础(十)一一数据库其他对象-视图/序列/索引/同义词
SQL> --视图
SQL> create view empinfoview as select e.empno,e.ename,e.sal,e.sal*12  annsal,d.dname from emp e,dept d  where e.deptno=d.deptno;
create view empinfoview
视图已创建。
SQL> desc empinfoview
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 EMPNO                                     NOT NULL NUMBER(4)
 ENAME                                              VARCHAR2(10)
 SAL                                                NUMBER(7,2)
 ANNSAL                                             NUMBER
 DNAME                                              VARCHAR2(14)
SQL> create or replace view empinfoview  as  select e.empno,e.ename,e.sal,e.sal*12 annsal,d.dname from emp e,dept d where e.deptno=d.deptno  with read only;
视图已创建。
SQL> --序列
助解:序列是一数据库对象,利用它可生成唯一的整数。一般使用序列自动地生成主码值。一个序列的值是由特殊的Oracle程序自动生成,因此序列避免了在应用层实现序列而引起的性能瓶颈。
SQL> create sequence myseq;
序列已创建。
SQL> create table testseq
  2  (tid number,tname varchar2(20));
表已创建。
SQL> select myseq.currval from dual;
第 1 行出现错误:
ORA-08002: 序列 MYSEQ.CURRVAL 尚未在此会话中定义 
SQL> select myseq.nextval from dual;
   NEXTVAL
----------
         1                                                                      
已选择 1 行。
SQL> select myseq.currval from dual;
   CURRVAL
----------
         1                                                                      
已选择 1 行。
SQL> insert into  testseq values(myseq.nextval,'aaa');
SQL> insert into  testseq values(myseq.nextval,'aaa');
SQL> insert into  testseq values(myseq.nextval,'aaa');
SQL> insert into  testseq values(myseq.nextval,'aaa');
SQL> commit;
提交完成。
SQL> select * from testseq;
       TID TNAME
---------- --------------------
         2 aaa
         3 aaa
         4 aaa
         5 aaa                                                                  
已选择 4 行。
SQL> --索引
SQL> --SQL的执行计划
SQL> explain plan for select * from emp where deptno=10;
助解: explain plan
           1. 工作实质
			将SQL语句预估的执行计划加载到表plan_table,是对表plan_table 执行了DML操作,故不会执行隐式提交。(可以对select,insert,update,merge,delete,create table, create index,alter index等加载执行计划到plan_table。)
			2. 前提条件
			 需要先创建plan_table,创建方法(可参考Oracle的AUTOTRACE功能):@J:/oracle/product/10.2.0/db_1/RDBMS/ADMIN/utlxplan.sql
			 对当前的SQL语句有执行权限以及对依赖的对象有相应操作的权限
			3. 使用方法:
			  explain plan for select * from dept where deptno=20;    --未设置标记位
			  explain plan set statement_id='t1' for select * from dept where deptno=20;  --设置标记位为T1
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 3956160932                                                     
--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |     3 |   261 |     3   (0)| 00:00:01 |
|*  1 |  TABLE ACCESS FULL| EMP  |     3 |   261 |     3   (0)| 00:00:01 |
--------------------------------------------------------------------------      
Predicate Information (identified by operation id):
---------------------------------------------------                             
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
   1 - filter("DEPTNO"=10)                                                      
Note
-----
   - dynamic sampling used for this statement                                   
已选择 17 行。
SQL> --创建目录(索引)
SQL> create index myindex on emp(deptno);
索引已创建。
SQL> --同义词(别名)
SQL> show user
USER 为 "SCOTT"
SQL> select count(*) from hr.employees;
  COUNT(*)
----------
       107                                                                                                                                                                                              
已选择 1 行。
SQL> --为hr.employees起别名  ---> 同义词
SQL> create synonym hremp for hr.employees;
create synonym hremp for hr.employees
同义词已创建。
SQL> select count(*) from hremp;
  COUNT(*)
----------
       107                                                                                                                                                                                              
已选择 1 行。
												
											Oracle入门基础(十)一一数据库其他对象-视图/序列/索引/同义词的更多相关文章
- Oracle SQL Lesson (11) - 创建其他数据库对象(试图/序列/索引/同义词)
		
schema(模式)一个用户下一组对象的集合,一般与用户名一致. 视图 CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view [(alias[, alias].. ...
 - 【Oracle】曾经的Oracle学习笔记(8-15)ER图,三大范式,数据库字典,视图,索引,序列
		
一.数据库建模 二.建表 三.数据库字典 四.DML语句 五.视图 六.索引 七.序列 八.DDL语句 Lesson 8 Overview of Data Modeling and Database ...
 - oracle数据库表约束、视图、索引—该记录为本人以前微博的文章
		
一.Oracle 数据库常用操作续关于创建表时创建约束1.创建表的时候增加约束----约束是定义表中的数据应该遵循的规则或者满足的条件----约束是建立在列上的,让某一列或者某几列数据之间有约束--- ...
 - Oracle对象-视图和索引
		
Oracle 对象-视图 视图概念  视图就是提供一个查询的窗口,所有的数据来自于原表 创建视图[必须有dba权限] --查询语句创建表 create table emp as select * f ...
 - Oracle学习总结_day06_视图&序列&索引
		
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! day 06 视图,索引,序列 视图 什么是视图: 视 ...
 - Oracle入门基础(十二)一一储存过程及触发器
		
1.第一个存储过程 打印Hello World 调用存储过程: 1.exec sayhelloworld(); 2.begin sayhelloworld(); sayhelloworld(); en ...
 - Oracle入门基础(八)一一数据处理
		
SQL> SQL的类型 SQL> 1.DML(Data Manipulation Language 数据操作语言): select insert update delete SQL> ...
 - Oracle入门基础(十三)一一java调用oracle存储过程
		
package demo; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.ResultS ...
 - Oracle入门基础(三)一一单行函数
		
SQL> --字符函数 SQL> select lower('Hello World') 转小写,upper('Hello World') 转大写,initcap('hello world ...
 
随机推荐
- Vue 源码解读(7)—— Hook Event
			
前言 Hook Event(钩子事件)相信很多 Vue 开发者都没有使用过,甚至没听过,毕竟 Vue 官方文档中也没有提及. Vue 提供了一些生命周期钩子函数,供开发者在特定的逻辑点添加额外的处理逻 ...
 - [题解]Codeforces Round #519 - D. Mysterious Crime
			
[题目] D. Mysterious Crime [描述] 有m个n排列,求一共有多少个公共子段. 数据范围:1<=n<=100000,1<=m<=10 [思路] 对于第一个排 ...
 - EXCEL应用之商机分析:企业商机分析模板免费用
			
一.分析背景 商机是订单的来源,因此抓住每个销售机会,就可以更多地赢得交易.商机管理可以说是业务环节中最为关键的一步.每个企业都有自己的商机阶段划分,从销售人员接触客户.发现商机.跟进商机.推进销售 ...
 - RHEL6搭建网络yum源仓库
			
RHEL的更新包只对注册用户生效,所以需要自己手动改成Centos的更新包 一.查看rhel本身的yum安装包 rpm -qa | grep yum 二.卸载这些软件包 rpm -qa | grep ...
 - SpringMVC教程--Idea中使用Maven创建SpringMVC项目
			
1.新建项目 参照idea教程中的创建maven项目https://www.cnblogs.com/daxiang2008/p/9061653.html 2.POM中加入依赖包 (1)指定版本 (2) ...
 - Activity的创建及生命周期
 - Sublime Text 3 build 3103 注册码
			
分享几个ST3的注册码,第一个我注册到自己电脑上,亲测可用,剩余几个没有测试.→原文链接 -– BEGIN LICENSE -–Michael BarnesSingle User LicenseEA7 ...
 - aria2 源码解析专题 —— (二) Exception 部分
			
首先声明 Exception 部分的几个异常类的继承关系,如下: 这一版的 Exception 部分只有头文件,没有源文件,所以涉及到的更多的只是定义而已,没有太多实现,所以这一部分也简单说说每个类的 ...
 - Forms组件与钩子函数
			
目录 一:Forms组件 1.案例需求: 2.前端 3.后端 二:form表单前后端动态交互 1.form组件 2.为什么数据效验非要去后端 不能在前端利用js直接完成呢? 3.举例:购物网站 三:基 ...
 - Flask Web开发读书笔记
			
开篇:目前想自学Flask Web开发--基于Python,找了几本书准备啃啃,同时也会分享读书笔记.希望和大家一起进步. Flask是小型框架,可以算是微框架,但是他的功能还是比较多 Flask有三 ...