1.重要性

索引提供对数据标的快速访问,视图给表提供了另外一种数据组织方式,应用相当广泛。

2.具体事例及sql

(1)对索引的操作(增删查改) 以及相关知识点

--创建唯一索引(唯一索引列上的值不为空)(普通索引不加UNIQUE即可)
CREATE UNIQUE INDEX UN_SNO ON TABLE(SNO ASC);
--创建复合索引
CREATE INDEX INDEX_SNODEPT ON TABLE(SNO DESC,SDEPT);
--重命名索引
ALTER INDEX INDEX_LIZI RENAME TO INDEX_LIZI1;
--对索引进行合并
ALTER INDEX INDEX_LIZI COALESCE;
--重建INDEX_LIZI索引
ALTER INDEX INDEX_LIZI REBUILD;
--删除索引
DROP INDEX INDEX_SND;
--查看索引
SELECT INDEX_NAME,INDEX_TYPE,TABLE_NAME FROM USER_INDEXES ORDER BY TABLENAME;
--查看被索引的列(查找索引INDEX_SAGE被引用的字段以及对应的表)
SELECT INDEX_NAME,TABLE_NAME,COLUMN_NAME FROM USER_IND_COLUMNS WHERE INDEX_NAME=UPPER('INDEX_SAGE');
--查看索引的大小
SELECT SUM(BYTES)/(1024) AS "SIZE(KB)",SUM(BYTES)/(1024*1024) AS "SIZE(MB)" FROM USER_SEGMENTS WHERE SEGMENT_NAME=UPPER('INDEX_SAGE');

A:数据库表的索引,可以极大的提高查询的速度。对于一个较大的表,创建索引,通常花费几小时的来完成的查询只需要几分钟。

B:复合索引的顺序一定要和查询语句中的WHERE子句后的顺序相同才有效。

C:索引类型为FUNCTION-BASED NORMAL,为B树索引。当表在使用一段时间后,伴随着索引的改变,索引会产生大量的碎片,降低效率。合并索引操作在不改变索引的物理组织结构基础上,将B树叶子节点中的存储碎片合并在一起。重建索引和合并索引都可以消除索引碎片,区别在于合并索引代价较低,无需额外空间,而重建相反。

(2)对视图的操作以及知识点

--创建视图
CREATE VIEW V_VIEW1 AS
SELECT STU.SNO,STU.SNAME,GRADE.CNAME,GRADE.SCORE
FROM STU INNER JOIN GRADE ON STU.SNO=GRADE.SNO
WHERE STU.DEPT='';
--通过视图插入数据 删除修改等和对表操作语句一致
INSERT INTO(...) VALUES(...);
UPDATE ...; DELETE ...;
--删除视图
DROP VIEW V_VIEW1;

A:视图在数据库中存储的是select语句,也即数据库内并没有存储视图这个表,select语句的结果集构成视图返回的虚拟表。

B:create view创建视图时,select语句不能包含order by,into等子句,且不能引用临时表或表变量。

C:创建视图是若加上了参数WITH READ ONLY,那么该视图只可查询。对视图数据删除时,视图的数据必须来源于一个单表。

(3)同义词SYNONYM的使用

--创建同义词Synonym,并执行相应查询
CREATE [OR REPLACE] SYNONYM MYSTU FOR SYSTEM.TABLE;
SELECT * from MYSTU;
--删除同义词
DROP SYNONYM MYSTU;

A:同义词的优势:节省了大量数据库空间,扩展了数据库的使用范围,可创建在不同数据库服务器上通过网络实现连接。

B:若不显式指定同义词参数PUBLIC,则创建的为私有同义词,只供当前用户使用。

(4)序列Sequence的操作

--创建序列(起始值为1,start with:升序为1降序为-1,自增1)
CREATE SEQUENCE STUSEQ
MINVALUE 1 START WITH 1 NOMAXVALUE
INCREMENT BY 1 CACHE 30;
--使用SEQUENCE(通过NEXTVAL CURRVAL这两个伪列来访问下一个值和当下值)
SELECT STUSEQ.NEXTVAL FROM DUAL;
SELECT STUSEQ.CURRVAL FROM DUAL;
--修改序列(不会改变当前序列的值)
--(修改也不能对已经使用的序列出现逻辑上的错误,如修改的后的最大值企图小于当前的值)
ALTER SEQUENCE STUSEQ
MINVALUE -1000 MAXVALUE 1000;
--删除序列
DROP SEQUENCE STUSEQ;

A:MINVALUE:最小值  start with:升序为1降序为-1  NOMAXVALUE升序的最大值为10的27次方,降序的默认值为-1  CACHE标表示生成一组序列号保留在内存中,默认为20;

(5)表空间的操作

--创建表空间(两个数据文件供占有空间15M,EXTENT指明表空间类型是本地管理表空间,UNIFORM指定分区大小)
CREATE TABLESPACE MYSPACE
DATAFILE 'PATH' SIZE 10M,'PATH1' SIZE 5M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;
--查询表空间信息
SELECT tablespace_name,sum(bytes)/1024/1024 as MB FROM dba_data_files GROUP BY tablespace_name;
--扩充表空间
ALTER TABLESPACE MYSPACE ADD DATAFILE 'PATH' SIZE 1000M;
--删除表空间(数据文件未删除)
DROP TABLESPACE MYSPACE;
--创建用户,并为用户指定表空间
CREATE USER BISADMIN IDENTIFIED BY BISADMIN DEFAULT TABLESPACE MYSPACE;
--查询用户所属表空间信息
SELECT USERNAME,DEFAULT_TABLESPACE FROM DBA_USERS WHERE USERNAME='BISADMIN';

A:表空间是oracle统一存取格式的数据对象,由若干操作系统文件组成。表空间统一管理空间中的数据文件,一个数据文件只能属于一个表空间,一个数据库(实例)由若干表空间组成。oracle的所有数据都保存在表空间中。

B:用户通过CREATE创建的表空间都称为用户表自定义空间,除此外oracle还有两种表空间(系统表空间和临时表空间)。系统表空间用于存放系统数据,在数据库创建时创建,名称为SYSTEM。临时表空间也是安装库时创建,用于数据排序。

C:用户创建表可在Create语句后加上TABLESPACE ...,若不指定,存放在用户默认的表空间中。创建索引指定表空间同样。

基本表和索引一旦创建完成,表空间无法修改。

(6)数据字典

ORACLE数据字分为三类(10g版本已有1800多个数据字段)。

1.USER_(对象名),记录用户对象的信息.有USER_TABLES,USER_VIEWS,USER_CONSTRAINTS等。

2.ALL_(对象名),记录用户对象的信息及呗授权访问的对象信息。如ALL_TABLES等。

3.DBA_(对象名),记录数据库实例的所有对象信息,如DBA_USERS。一般来说DBA包含USER和ALL的信息。

以上代码用到的:DBA_USERS是oracle安装后自动创建的数据字典之一,其包含数据库实例中的所有用户的信息。

USER_TABLES,用于存储用户分配的表。USER_INDEXES,存储索引信息。

7 索引,视图,同义词,序列,表空间相关推荐

  1. oracle 用户表数目,表大小,视图数目及表空间等查询增加修改删除操作

    oracle 用户表数目,表大小,视图数目及表空间等查询增加修改删除操作 查看当前用户的缺省表空间 SQL>select username,default_tablespace fromuser ...

  2. Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间

    alter table userInfo add(msn varchar2(20)); 1.建表 create table userInfo ( id number(6), name varchar2 ...

  3. oracle 同义词,表空间,表分区

    同义词:synonym 私有同义词: 一般普通用户自己建立的同义词,用于创建这需要create synonym权限 grant create synonym to scott; create syno ...

  4. PostgreSQL 查询所有数据库大小,表大小,索引大小,以及表空间大小

    1. 查询数据库大小 -- 查询单个数据库大小 select pg_size_pretty(pg_database_size('postgres')) as size;-- 查询所有数据库大小 sel ...

  5. oracle 创建索引指定表空间,Oracle中如何把表和索引放在不同的表空间里

    因为: 1)提高性能:尽量把表和索引的表空间存储在不同在磁盘上,把两类不同IO性质的数据分开放,这样可以提高磁盘的IO总体性能: 2)便于管理:试想一下,如果索引的数据文件损坏,只要创建索引即可,不会 ...

  6. 【数据库2】生成txt/xml文件,ftp,oracle安装/表操作/虚表/日期/序列/索引/视图/链路/同义词/高可用性,mysql/文件入库/清理/表结构设计/交换/收集

    文章目录 1.生成数据:crontab 2.ftp:ftp是tcp/ip协议族中一员,分客户端和服务端 2.1 安装:linux操作系统的用户也是ftp的用户,可以配置专用的ftp用户,专用的ftp用 ...

  7. 【C/C++9】天气APP:Oracle的虚表/日期/序列,索引/视图/链路/同义词,数据库高可用性

    文章目录 1.虚表/日期/序列:SEQUENCE 2.索引/视图/链路/同义词:create index/view/link/synonym 3.表空间/数据文件/启动关闭/权限/备份恢复:exp/i ...

  8. 【Oracle 期末复习】表空间、表、约束、索引、视图的增删改

    创建 1.表空间 create tablespace spaceNamedatafile 'C:\spaceName.dbf' -- 文件存放路径size 20M -- 初始大小 -- 到这步就已经可 ...

  9. oracle创建索引占用表空间吗,oracle创建索引表空间

    或者 drop tablespace 表空间名称 including contents;(表空间下有数据时候用) temporary tablespace 是 oracle 里临时表空间,临时表空间主 ...

  10. imp 只导入索引_使用imp导入表和索引至不同表空间方法

    在以前我的blog中,曾经记录过使用expdp/impdp方式将表和索引导入至不同表空间的方法,这里再提一下: 导出: expdp test/test directory=dump_dir dumpf ...

最新文章

  1. Smarty中的内建函数(一)config_load、foreach
  2. 966计算机综合,中职计算机基础 (966)(10页)-原创力文档
  3. Winform中使用MQTTnet实现MQTT的服务端和客户端之间的通信以及将订阅的消息保存到文件
  4. centos 记录用户行为轨迹
  5. odbc mysql 配置文件_ODBC连接主流数据库的配置方法
  6. 脚本实现oracle服务启停,通用服务启停shell脚本
  7. 部门日报系统部署备忘录
  8. USB OTG简单介绍
  9. It#39;s about trust
  10. 最全面详细讲解Oracle入门(新手必看)
  11. 什么是狭义人工智能、通用人工智能和超级人工智能?
  12. Echarts直方图
  13. vmware workstation网络设置
  14. 动态DLL文件的编写和使用(速成)
  15. UCI下载葡萄酒数据
  16. 超级好用的电脑截图翻译软件你值得拥有!
  17. java 三维旋转立方体_旋转立方体实现
  18. HTML5堆木头游戏
  19. 鸿蒙应用开发教程第12期:被央视点名!打破垄断志在必得?
  20. 电商运营中的五个数据陷阱

热门文章

  1. 独立性与互不相容的区别
  2. 木子-后端-随机验证码的各种实现方法
  3. Mathematica实例——利用Mathematica演示量子力学中的波包演化
  4. aquarius_v13
  5. unity shader实现中枪散红效果,(参考别人算法)
  6. VBA实现xls批量转换为xlsx(非新增副本文件)
  7. Unity3D——游戏序列化
  8. vim高亮多处,搜索多个关键词
  9. 『矩阵论笔记』详解最小二乘法(矩阵形式求导)+Python实战
  10. ZbxTable 2.0 重磅发布!6大主要优化功能!