版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章 数据库对象 .2回顾回顾锁用于保护多用户环境下被修改的数据锁分为两种级别,即行级锁和表级锁表分区允许将一个表划分成几部分,以改善大型应用系统的性能分区方法包括范围分区、散列分区、复合分区和列表分区分区维护操作包括添加、删除、截断、合并和拆分分区.3目标目标使用同义词使用序列创建视图创建索引.4数据库对象简介数据库对象简介 Oracle 数据库对象又称模式对象数据库对象是逻辑结构的集合,最基本的数据库对象是表其他数据库对象包括:数据库对象数据库对象 同义词序列视图索引.5同义词同义词 3-1同义词是现有对象的一个别名。简化SQL语句隐藏对象的名称和所有者提供对对象的公共访问同义词共有两种
2、类型:同义词私有同义词公有同义词私有同义词只能在其模式内访问,且不能与当前模式的对象同名。公有同义词可被所有的数据库用户访问。.6同义词同义词 3-2CREATE SYNONYM emp FOR SCOTT.emp;SCOTT.emp的别名模式名表名私有同义词公有同义词CREATE PUBLIC SYNONYM emp_syn FOR SCOTT.emp;同义词名称.7同义词同义词 3-3创建或替换现有的同义词CREATE OR REPLACE SYNONYM emp_syn FOR SCOTT.emp;替换现有的同义词SQL DROP SYNONYM emp; SQL DROP PUBLIC
3、 SYNONYM emp_syn; 删除同义词.8序列序列序列是用于生成唯一、连续序号的对象序列可以是升序的,也可以是降序的使用CREATE SEQUENCE语句创建序列SQL CREATE SEQUENCE toys_seqSTART WITH 10INCREMENT BY 10MAXVALUE 2000MINVALUE 10NOCYCLECACHE 10;指定第一个序号从 10 开始指定序号之间的间隔为 10表示序列的最大值为 2000表示序列的最小值为 10在达到最大值后停止生成下一个值指定内存中预先分配的序号数 .9访问序列访问序列通过序列的伪列来访问序列的值NEXTVAL 返回序列的
4、下一个值CURRVAL 返回序列的当前值SQL INSERT INTO toys (toyid, toyname, toyprice) VALUES ( toys_seq.NEXTVAL, TWENTY, 25);SQL INSERT INTO toys (toyid, toyname, toyprice) VALUES ( toys_seq.NEXTVAL, MAGIC PENCIL, 75);指定序列的下一个值SQL SELECT toys_seq.CURRVAL FROM dual;检索序列的当前值.10更改和删除序列更改和删除序列SQL ALTER SEQUENCE toys_seq
5、MAXVALUE 5000 CYCLE;使用ALTER SEQUENCE语句修改序列,不能更改序列的START WITH参数使用DROP SEQUENCE语句删除序列SQL DROP SEQUENCE toys_seq;.11视图视图视图以经过定制的方式显示来自一个或多个表的数据视图可以视为“虚拟表”或“存储的查询”创建视图所依据的表称为“基表”视图的优点有:提供了另外一种级别的表安全性隐藏的数据的复杂性简化的用户的SQL命令隔离基表结构的改变通过重命名列,从另一个角度提供数据.12创建视图创建视图 3-1studnostudnamestudmarkssubnostudcaste1Rob452
6、Open2James334SC3Jesica405OpenStud_detailsStud_viewstudnostudnamesubno1Rob22James43Jesica5创建视图CREATE VIEW stud_viewAS SELECT studno, studname, subnoFROM Stud_details;.13创建视图创建视图 3-2创建视图的语法: CREATE OR REPLACE FORCE VIEW view_name (alias, alias.) AS select_statement WITH CHECK OPTION WITH READ ONLY;.14
7、创建视图创建视图 3-3使用 WITH CHECK OPTION 选项创建视图CREATE OR REPLACE VIEW pause_view ASSELECT * FROM order_master WHERE ostatus = pWITH CHECK OPTION CONSTRAINT chk_pv;使用 ORDER BY 子句创建视图CREATE OR REPLACE VIEW ord_ven ASSELECT * FROM vendor_master ORDER BY venname;创建带有错误的视图CREATE FORCE VIEW ven ASSELECT * FROM ve
8、nmaster;.15联接视图联接视图 2-1StudnoStudnameSubmrksSubno1Rob4522James3343Jesica404SubnoSubname2English4Maths5ScienceStud_detailsSub_detailsStudnoStudnameSubmrksSubname1Rob45English2James33Maths3Jesica40MathsCREATE VIEW Stud_sub_view ASSELECT Studno, Studname, Submrks, SubnameFROM Stud_details, Sub_Details
9、WHERE Stud_details.Subno=Sub_details.Subno;Stud_sub_view联接视图.16联接视图联接视图 2-2创建外联接视图CREATE VIEW ven_ord_outj_view ASSELECT vm.vencode, venname, orderno, odate, ostatusFROM vendor_master vm, order_master omWHERE vm.vencode = om.vencode(+);SELECT vm.vencode, venname, orderno, odate, ostatusFROM vendor_m
10、aster vm LEFT OUTER JOIN order_master omON vm.vencode = om.vencode;.17视图上的视图上的DML语句语句在视图上也可以使用修改数据的DML语句,如INSERT、UPDATE和DELETE视图上的DML语句有如下限制:只能修改一个底层的基表如果修改违反了基表的约束条件,则无法更新视图如果视图包含连接操作符、DISTINCT 关键字、集合操作符、聚合函数或 GROUP BY 子句,则将无法更新视图如果视图包含伪列或表达式,则将无法更新视图.18键保留表键保留表StudnoStudnameSubmrksSubno1Rob4522Jam
11、es3343Jesica404SubnoSubname2English4Maths5ScienceStud_detailsSub_detailsStudnoStudnameSubmarksSubnoSubname1Rob452English2James334Maths3Jesica404Maths键保留表因为 Studno 既是 Stud_details 中的主键,也是联接结果中的主键 Stud_details 为什么是键保留表?联接视图.19视图中可以使用单行函数、分组函数和表达式使用DROP VIEW语句删除视图视图中的函数视图中的函数CREATE VIEW item_view AS SE
12、LECT itemcode, LOWER(itemdesc) item_descFROM itemfile; SQL DROP VIEW toys_view; .20索引索引 3-1索引是与表相关的一个可选结构用以提高 SQL 语句执行的性能减少磁盘I/O使用 CREATE INDEX 语句创建索引在逻辑上和物理上都独立于表的数据Oracle 自动维护索引.21索引索引 3-2索引有各种类型,除了标准索引外,还有一些特殊类型的索引:索引的类型基于函数的索引反向键索引位图索引唯一索引组合索引.22索引索引 3-3SQL CREATE INDEX item_index ON itemfile (i
13、temcode) TABLESPACE index_tbs;创建标准索引重建索引SQL ALTER INDEX item_index REBUILD; 删除索引SQL DROP INDEX item_index; .23唯一索引唯一索引SQL CREATE UNIQUE INDEX item_index ON itemfile (itemcode);唯一索引确保在定义索引的列中没有重复值Oracle 自动在表的主键列上创建唯一索引使用CREATE UNIQUE INDEX语句创建唯一索引.24组合索引组合索引SQL CREATE INDEX comp_index ON itemfile(p_c
14、ategory, itemrate);组合索引是在表的多个列上创建的索引索引中列的顺序是任意的如果 SQL 语句的 WHERE 子句中引用了组合索引的所有列或大多数列,则可以提高检索速度.25反向键索引反转索引列键值的每个字节通常建立在值是连续增长的列上,使数据均匀地分布在整个索引上创建索引时使用REVERSE关键字反向键索引反向键索引SQL CREATE INDEX rev_index ON itemfile (itemcode) REVERSE;SQL ALTER INDEX rev_index REBUID NOREVERSE;.26位图索引位图索引SQL CREATE BITMAP I
15、NDEX bit_index ON order_master (orderno);位图索引适合创建在低基数列上位图索引不直接存储ROWID,而是存储字节位到ROWID的映射减少响应时间节省空间占用.27基于函数的索引基于函数的索引SQL CREATE INDEX lowercase_idx ON toys (LOWER(toyname);基于一个或多个列上的函数或表达式创建的索引表达式中不能出现聚合函数不能在LOB类型的列上创建创建时必须具有 QUERY REWRITE 权限SQL SELECT toyid FROM toys WHERE LOWER(toyname)=doll;.28索引组织
16、表索引组织表 2-1SQL CREATE TABLE ind_org_tab ( vencode NUMBER(4) PRIMARY KEY, venname VARCHAR2(20) ) ORGANIZATION INDEX;索引组织表的数据存储在与其关联的索引中索引中存储的是行的实际数据,而不是ROWID基于主键访问数据CREATE TABLE 命令与 ORGANIZATION INDEX 子句一起用于创建索引组织表.29索引组织表索引组织表 2-2普通表与索引组织表的比较普通表索引组织表ROWID 唯一地标识行主键唯一地标识行隐式的 ROWID 列没有隐式的 ROWID 列基于 ROWID 的访问基于主键的访问顺序扫描返回所有行完全索引扫描返回所有行,并按主键顺序排列支持分区不支持分区.30索引中的分区索引中的分区可以将索引存储在不同的分区中与分区有关的索引有三种类型:局部分区索引 在分区表上创建的索引,在每个表分区上创建独立的索引,索引的分区范围与表一致全局分区索引 在分区表或非分区表上创建的索引,索引单独指定分区的范围,与表的分区范围或是否分区无关全局非分区索引 在分区表上创建的全局普通索引,索引没有被分区.31获取索引的信息获取索引的信息SQL SELECT INDEX_NAME, TABLE_NAME, COLUMN_NAME FROM USER_IND_C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026学年四年级上册小学语文同步阶段测试卷(统编版)
- 2026年初中美术试卷培训试卷
- 钎焊材料问答题目及答案
- 思想动态调查报告2026(3篇)
- 餐饮合作合同协议书餐厅入股合作协议书(范本)
- 孕酮测定测验试题及答案
- 河科大机械制造基础习题及答案01名词解释
- 文献检索资格证试题及答案
- 内部财务审计标准
- 2026中国智能窗帘传感器行业市场供需分析及投资评估规划分析研究报告
- 建设工程造价司法鉴定报告范文
- 广州市番禺区市桥街社区卫生服务中心2025年招考第二批编外人员招聘备考题库及完整答案详解1套
- 2025年新《治安管理处罚法》知识考试题库及答案
- 2025年广州市番禺区大龙街社区卫生服务中心公开招考编外人员备考题库及完整答案详解一套
- 售前工程师转正述职报告
- 安全阀拆装培训课件
- 河南省养老类建筑消防设计技术要点2025
- 《电镀工艺原理与应用》课件
- 浙江省SBS改性沥青混合料应用技术规程
- DL/T5315-2014水工混凝土建筑物修补加固技术规程(完整)
- 项目财务策划
评论
0/150
提交评论