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 ...
随机推荐
- 『德不孤』Pytest框架 — 4、Pytest跳过测试用例
目录 1.无条件跳过skip 2.有条件跳过skipif 3.练习 自动化测试执行过程中,我们常常出现这种情况:因为功能阻塞,未实现或者环境有问题等等原因,一些用例执行不了, 如果我们注释掉或删除掉这 ...
- 快速搭建一套k8s集群环境
参考官网 kubeadm是官方提供的快速搭建k8s集群的开源工具,对于非运维人员学习k8s,kubeadm方式安装相对更简单. kubeadm创建一个集群:https://kubernetes.io/ ...
- k8s中prometheus监控k8s外mysql
k8s外安装mysql https://www.cnblogs.com/uncleyong/p/10739530.html 配置MySQL Exporter采集MySQL监控数据 创建yaml文件:v ...
- 【C# Task】理解Task中的ConfigureAwait配置同步上下文
原文:https://devblogs.microsoft.com/dotnet/configureawait-faq/ 作者:Stephen 翻译:xiaoxiaotank 静下心来,你一定会有收获 ...
- C# 枚举器(enumerator)
总结: 1.枚举器就像是序列中的"游标"或"书签".可以有多个"书签",移动其中任何一个都可以枚举集合,与其他枚举器互不影响.用来遍历数据结 ...
- HMS Core挑战赛故事:鞋、街景、手办、玩具,原来这些都可以3D建模
HMS Core线上Codelabs挑战赛第3期中,开发者通过学习和运用HMS Core开发的3D建模服务,生成3D建模应用demo,再使用demo为自己身边的一个实物完成建模.在提交的作品中,小编发 ...
- prometheus-数据展示之grafana部署和数据源配置
1.监控pods . prometheus再部署以后,会自带cAdvisor.结果如下: 2.K8S集群状态监控.需要使用kube-state-metrics插件.部署以后 kubernetes. ...
- 安卓手机APP兼容性测试如何有效进行?
Android App兼容性测试是一个比较重要的App评价内容,实际上兼容性测试不仅仅和测试人员相关,在开发阶段就应当着重考虑,因为兼容性问题是除了实现App本身要求的功能后,必须要关注.而且至关重要 ...
- laravel 框架 知识点
get 方法返回一个包含 Illuminate\Support\Collection 实例的结果,其中每一条记录都是 PHP stdClass 对象的一个实例.你可以通过对象属性的方式来获取每个字段的 ...
- tensorflow源码解析之framework-device
目录 什么是设备 设备属性描述 device_base 关系图 涉及的文件 迭代记录 1. 什么是设备 "设备"是一个很容易引起混淆的概念,在TF中,设备device专指能够执行实 ...