Oracle实验3:视图、序列、同义词和索引

合集下载

第四章理论课数据库对象

第四章理论课数据库对象

《Oracle数据库应用》理论课数据库对象⏹本章技能目标◆使用同义词◆使用序列◆创建视图◆创建索引1.数据库对象Oracle 数据库对象又称模式对象。

数据库对象是逻辑结构的集合,最基本的数据库对象是表。

其他数据库对象包括:同义词,序列,视图,索引。

下面我们依次讲解这几个数据库对象的使用。

2.同义词同义词是数据库对象的一个别名,这些对象可以是表,视图,序列,过程,函数,程序包,甚至其它同义词,通过使用同义词,用户可以访问其它模式的数据库对象而无需指定模式前缀,例如用户USER1要访问用户USER2的表EMP,必须使用USER2.EMP,那么USER1就可以使用同义词像访问自己的表一样引用USER2.EMP了。

同义词有以下用途:简化SQL语句隐藏对象的名称和所有者提供对对象的公共访问为分布式数据库德远程对象提供了位置透明性同义词允许应用程序访问数据库对象,不论那个用户或哪个数据库拥有该对象。

但是同义词不能代替权限,在使用同义词之前确保用户已得到访问对象的权限。

可以通过同义词执行SELECT,INSERT,UPDA TE,DELETE,LOCK TABLE ,GRANT和REVOKE 等语句。

同义词只是表的一个别名,因此对它的操作都会影响到表。

同义词共有两种类型:公有同义词。

私有同义词。

2.1私有同义词和公有同义词2私有同义词只能在其模式内访问,且不能与当前模式的对象同名。

要在自身的模式创建私有同义词,用户必须拥有CREATE SYNONYM 系统权限。

要在其它用户模式的创建私有同义词,用户必须CREATE ANY SYNONYM 系统权限.。

创建私有同义词语法如下:OR REPLACE 表示在同义词存在的情况下替换该同义词。

synonym_name 表示要创建的同义词的名称。

object_name 指定要为之创建同义词的对象的名称。

例1:假定两个用户模式:ACCP 和SCOTT ,SCOTT 用户拥有EMP表,ACCP 用户需要频繁引用EMP表,为了简化SQL语句,需要为ACCP 用户创建一个同义词。

oracle删除一张表后,索引,同义词,视图,约束会被删除么

oracle删除一张表后,索引,同义词,视图,约束会被删除么

oracle删除⼀张表后,索引,同义词,视图,约束会被删除么问题描述:看到有⼀道题,说删除⼀张表之后,什么会被关联删除进⾏测试,看看⼀张表什么会被关联删除,进⾏scoot下的EMP进⾏测试⼀、创建测试需求⽤例表结构:SQL> desc emp;Name Null? Type----------------------------------------- -------- ----------------------------EMPNO NOT NULL NUMBER(4)ENAME VARCHAR2(10)JOB VARCHAR2(9)MGR NUMBER(4)HIREDATE DATESAL NUMBER(7,2)COMM NUMBER(7,2)DEPTNO NUMBER(2)创建视图:CREATE OR REPLACE VIEW V_EMPASSELECT * FROM EMP WHERE ENAME LIKE '%A%'UNION ALLSELECT * FROM EMP WHERE ENAME LIKE '%S%'UNION ALLSELECT * FROM EMP WHERE SAL >= 3000;CREATE OR REPLACE VIEW V_EMPASSELECT * FROM EMP WHERE ENAME LIKE '%A%'UNIONSELECT * FROM EMP WHERE ENAME LIKE '%S%'UNIONSELECT * FROM EMP WHERE SAL >= 3000;创建序列:CREATE SEQUENCE SEQ_BJSXTSTART WITH 20001INCREMENT BY 2MAXVALUE 99999999MINVALUE 1CYCLECACHE 50创建同义词create or replace synonym syn_emp for scott.emp;删除前状态视图查询:SQL> select view_name,view_type from user_views;VIEW_NAME VIEW_TYPE------------------------------ ------------------------------V_EMP索引查询:SQL> select INDEX_NAME,TABLE_NAME,STATUS from user_indexes;INDEX_NAME TABLE_NAME STATUS------------------------------ ------------------------------ --------SYS_IL0000089251C00003$$ TEST VALIDIDX_T_ID T VALIDPK_EMPNO_OGG EMP_OGG VALIDPK_EMP EMP VALIDIDX_EMP_ENAME EMP VALIDPK_DEPTNO_OGG DEPT_OGG VALIDPK_DEPT DEPT VALID7 rows selected.序列查询:SQL> r1* select * from user_sequencesSEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER------------------------------ ---------- ---------- ------------ - - ---------- -----------SEQ_BJSXT 1999999992 Y N 5020101主键查询:主键INDEX_NAME TABLE_NAME COLUMN_NAME COLUMN_POSITION COLUMN_LENGTH CHAR_LENGTH DESCEND INDEX_TYPE1 IDX_EMP_ENAME EMP ENAME 11010 ASC NORMAL2 PK_EMP EMP EMPNO 1220 ASC NORMAL外键约束:select * from user_constraints c where c.constraint_type = 'R' and c.table_name = 'EMP';1 SCOTT FK_DEPTNO R EMP <Long> SCOTT PK_DEPT NO ACTION ENABLED NOT DEFERRABLE IMMEDIATE VALIDATED USER NAME 2013/8/2412:04:21同义词查询:SQL> SELECT * FROM USER_SYNONYMS;SYNONYM_NAME TABLE_OWNER TABLE_NAME DB_LINK------------------------------ ------------------------------ ------------------------------ --------------------------------------------------------------------------------------------------------------------------------SYN_EMP SCOTT EMPuser_obejcts状态查询:14和17分别是emp表和emp表中的索引object,其余的还能看到序列,视图,同义词的对象select * from user_objects;OBJECT_NAME SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE CREATED LAST_DDL_TIME TIMESTAMP STATUS TEMPORARY GENERATED SECONDARY NAMESPACE EDITION1 PK_DEPT 8710787107 INDEX 2013/8/2412:04:212013/8/2412:04:212013-08-24:12:04:21 VALID N N N 42 DEPT 8710687106 TABLE 2013/8/2412:04:212013/8/2412:04:212013-08-24:12:04:21 VALID N N N 13 BONUS 8711087110 TABLE 2013/8/2412:04:212013/8/2412:04:212013-08-24:12:04:21 VALID N N N 14 SALGRADE 8711187111 TABLE 2013/8/2412:04:212013/8/2412:04:212013-08-24:12:04:21 VALID N N N 15 EMP_OGG 8878988789 TABLE 2020/12/2313:14:062020/12/2313:14:302020-12-23:13:14:06 VALID N N N 16 DEPT_OGG 8879088790 TABLE 2020/12/2313:14:072020/12/2313:14:422020-12-23:13:14:07 VALID N N N 17 PK_EMPNO_OGG 8879188791 INDEX 2020/12/2313:14:112020/12/2313:14:112020-12-23:13:14:11 VALID N N N 48 PK_DEPTNO_OGG 8879288792 INDEX 2020/12/2313:14:122020/12/2313:14:122020-12-23:13:14:12 VALID N N N 49 TEST 8925189251 TABLE 2021/6/1316:12:422021/6/1316:12:422021-06-13:16:12:42 VALID N N N 110 IDX_T_ID 8927489274 INDEX 2021/6/1416:44:432021/6/1416:44:432021-06-14:16:44:43 VALID N N N 411 SYS_IL0000089251C00003$$ 8925389253 INDEX 2021/6/1316:12:422021/6/1316:12:422021-06-13:16:12:42 VALID N Y N 412 SYS_LOB0000089251C00003$$ 8925289252 LOB 2021/6/1316:12:422021/6/1316:12:422021-06-13:16:12:42 VALID N Y N 813 T 8927389273 TABLE 2021/6/1416:40:392021/6/1416:44:452021-06-14:16:40:39 VALID N N N 114 EMP 8710887108 TABLE 2013/8/2412:04:212022/1/2316:31:062022-01-23:16:31:06 VALID N N N 115 SEQ_BJSXT 90884 SEQUENCE 2022/1/2316:04:252022/1/2316:04:252022-01-23:16:04:25 VALID N N N 116 SYN_EMP 90891 SYNONYM 2022/1/2316:27:282022/1/2316:27:282022-01-23:16:27:28 INVALID N N N 117 BIN$1jx+fvk2Dy3gUwajqMCaPA==$19088590885 INDEX 2022/1/2316:04:382022/1/2316:27:532022-01-23:16:27:53 VALID N N N 418 V_EMP 90883 VIEW 2022/1/2316:03:582022/1/2316:03:582022-01-23:16:03:58 INVALID N N N 119 BIN$1jx+fvk3Dy3gUwajqMCaPA==$187******** INDEX 2013/8/2412:04:212022/1/2316:27:532022-01-23:16:27:53 VALID N N N 420 PRO_SUPPLEMENT_LEAVE_MAPPING 90886 PROCEDURE 2022/1/2316:10:402022/1/2316:10:402022-01-23:16:10:40 INVALID N N N 1回收站:SQL> show recyclebinSQL>⼆、删除表SQL> drop table emp;Table dropped.索引状态:INDEX_NAME TABLE_NAME STATUS1 SYS_IL0000089251C00003$$ TEST VALID2 IDX_T_ID T VALID3 PK_EMPNO_OGG EMP_OGG VALID4 PK_DEPTNO_OGG DEPT_OGG VALID5 PK_DEPT DEPT VALID视图状态:SQL> select view_name,view_type from user_views;VIEW_NAME VIEW_TYPE------------------------------ ------------------------------V_EMP序列状态:SQL> select * from user_sequences;SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER------------------------------ ---------- ---------- ------------ - - ---------- -----------SEQ_BJSXT 1999999992 Y N 5020101同义词状态:SQL> SELECT * FROM USER_SYNONYMS;SYNONYM_NAME TABLE_OWNER TABLE_NAME DB_LINK------------------------------ ------------------------------ ------------------------------ --------------------------------------------------------------------------------------------------------------------------------SYN_EMP SCOTT EMPuser_objects状态查询:可以看到⽤户表以及索引就已经被删除了select * from user_objects;OBJECT_NAME SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE CREATED LAST_DDL_TIME TIMESTAMP STATUS TEMPORARY GENERATED SECONDARY NAMESPACE EDITION_NA1 PK_DEPT 8710787107 INDEX 2013/8/2412:04:212013/8/2412:04:212013-08-24:12:04:21 VALID N N N 42 DEPT 8710687106 TABLE 2013/8/2412:04:212013/8/2412:04:212013-08-24:12:04:21 VALID N N N 13 BONUS 8711087110 TABLE 2013/8/2412:04:212013/8/2412:04:212013-08-24:12:04:21 VALID N N N 14 SALGRADE 8711187111 TABLE 2013/8/2412:04:212013/8/2412:04:212013-08-24:12:04:21 VALID N N N 15 EMP_OGG 8878988789 TABLE 2020/12/2313:14:062020/12/2313:14:302020-12-23:13:14:06 VALID N N N 16 DEPT_OGG 8879088790 TABLE 2020/12/2313:14:072020/12/2313:14:422020-12-23:13:14:07 VALID N N N 17 PK_EMPNO_OGG 8879188791 INDEX 2020/12/2313:14:112020/12/2313:14:112020-12-23:13:14:11 VALID N N N 48 PK_DEPTNO_OGG 8879288792 INDEX 2020/12/2313:14:122020/12/2313:14:122020-12-23:13:14:12 VALID N N N 49 TEST 8925189251 TABLE 2021/6/1316:12:422021/6/1316:12:422021-06-13:16:12:42 VALID N N N 110 IDX_T_ID 8927489274 INDEX 2021/6/1416:44:432021/6/1416:44:432021-06-14:16:44:43 VALID N N N 411 SYS_IL0000089251C00003$$ 8925389253 INDEX 2021/6/1316:12:422021/6/1316:12:422021-06-13:16:12:42 VALID N Y N 412 SYS_LOB0000089251C00003$$ 8925289252 LOB 2021/6/1316:12:422021/6/1316:12:422021-06-13:16:12:42 VALID N Y N 813 T 8927389273 TABLE 2021/6/1416:40:392021/6/1416:44:452021-06-14:16:40:39 VALID N N N 114 SEQ_BJSXT 90884 SEQUENCE 2022/1/2316:04:252022/1/2316:04:252022-01-23:16:04:25 VALID N N N 115 SYN_EMP 90891 SYNONYM 2022/1/2316:27:282022/1/2316:27:282022-01-23:16:27:28 INVALID N N N 116 V_EMP 90883 VIEW 2022/1/2316:03:582022/1/2316:03:582022-01-23:16:03:58 INVALID N N N 117 PRO_SUPPLEMENT_LEAVE_MAPPING 90886 PROCEDURE 2022/1/2316:10:402022/1/2316:10:402022-01-23:16:10:40 INVALID N N N 1结合测试得出结论1.删除⼀张表,肯定会删除⼀张表中的数据和这个对象2.删除表后,同义词,视图,序列不会被删除3.删除表后,索引会被删除,不会失效。

Oracle同义词详解(synonym)

Oracle同义词详解(synonym)

Oracle同义词详解(synonym)Oracle 同义词详解(synonym)⼀、Oracle同义词概念 Oracle 数据库中提供了同义词管理的功能。

同义词是数据库⽅案对象的⼀个别名,经常⽤于简化对象访问和提⾼对象访问的安全性。

在使⽤同义词时,Oracle数据库将它翻译成对应⽅案对象的名字。

与视图类似,同义词并不占⽤实际存储空间,只有在数据字典中保存了同义词的定义。

在Oracle数据库中的⼤部分数据库对象,如表、视图、同义词、序列、存储过程、包等等,数据库管理员都可以根据实际情况为他们定义同义词。

⼆、Oracle同义词分类 Oracle同义词有两种类型,分别是公⽤Oracle同义词与私有Oracle同义词。

1)公⽤Oracle同义词:由⼀个特殊的⽤户组Public所拥有。

顾名思义,数据库中所有的⽤户都可以使⽤公⽤同义词。

公⽤同义词往往⽤来标⽰⼀些⽐较普通的数据库对象,这些对象往往⼤家都需要引⽤。

2)私有Oracle同义词:它是跟公⽤同义词所对应,他是由创建他的⽤户所有。

当然,这个同义词的创建者,可以通过授权控制其他⽤户是否有权使⽤属于⾃⼰的私有同义词。

三、Oracle同义词创建及删除 创建公有Oracle同义词的语法:Create [public] synonym 同义词名称 for [username.]objectName; Drop [public] synonym 同义词名称四、Oracle同义词的作⽤ 1) 多⽤户协同开发中,可以屏蔽对象的名字及其持有者。

如果没有同义词,当操作其他⽤户的表时,必须通过user名.object名的形式,采⽤了 Oracle同义词之后就可以隐蔽掉user名,当然这⾥要注意的是:public同义词只是为数据库对象定义了⼀个公共的别名,其他⽤户能否通过这个别名访问这个数据库对象,还要看是否已经为这个⽤户授权。

2) 为⽤户简化sql语句。

上⾯的⼀条其实就是⼀种简化sql的体现,同时如果⾃⼰建的表的名字很长,可以为这个表创建⼀个Oracle同义词来简化sql开发。

Oracle第6章视图和索引操作

Oracle第6章视图和索引操作


量(g_Number)信息,可以创建一个“热点”商品的视

图。


CREATE OR REPLACE VIEW SCOTT.vw_HotGoods

AS

SELECT g_ID AS 商品号, g_Name AS 商品名称, t_ID
AS 类别号, g_Price AS 价格, g_Discount
案例完成步骤
(6)强制创建视图
正常情况下,如果基表不存在,创建视图就会失败。但是可
以使用FORCE选项强制创建视图(前提是创建视图的语句
没有语法错误),但此时该视图处于失效状态。

【例2-6】创建并验证基于Test表的强制视图
师 演
(a)在Test表不存在的情况下,创建基于该表的强制视图

vw_TestForce。

重定义时没有使用该选项,则以前的此选项将自动删除。

2.使用PL/SQL修改视图

(1)重命名视图
【例2-7】重命名用户方案SCOTT的视图
vw_MaxPriceGoods为vw_MaxPrice。
rename vw_MaxPriceGoods TO vw_MaxPrice;
Oracle数据库管理与应用实例教程


图。

CREATE OR REPLACE VIEW


SCOTT.vw_MaxPriceGoods
AS
SELECT t_ID, Max(g_Price) AS MaxPrice
FROM SCOTT.Goods
GROUP BY t_ID
Oracle数据库管理与应用实例教程

Oracle10g数据库实验指导书

Oracle10g数据库实验指导书

Oracle10g数据库实验指导书前言ORACLE数据库是属于数据库开发软件及应用领域的专业课,是面向计算机专业本科生开设的一门数据库应用普及型计算机专业课程。

ORACLE数据库是当前应用最为广泛的数据库系统,ORACLE数据库是针对高年级学生的实践性较强的课程。

通过实训,并结合典型系统进行分析,使学生较为系统地掌握ORACLE数据库的基本开发方法,运用数据库设计理论设计出满足一定规范的ORACLE 数据库应用系统。

随着计算机数据库技术的迅速发展和在当今信息社会中的广泛应用,给《ORACLE数据库》课程的教学提出了新的更高的要求。

由于ORACLE数据库是一门实践性较强的技术,课堂教学应该与实践环节紧密结合。

实验要求通过理论学习,能够在ORACLE这个大型的数据库设计实践中,对ORACLE的基本功能有一个初步的了解:通过对SQL*PLUS的简单使用,掌握其基本操作命令和技术;通过PL/SQL编程语言的使用与程序设计的分析,加深学生对SQL*PLUS和PL/SQL技术的理解和掌握,进而为今后再涉及到难度较大的实际应用打下扎实的基础。

总之,通过上述实验环节,使学生加深了解和更好地掌握《ORACLE10g数据库》课程教学大纲要求的内容。

在课程实训过程中,要求学生做到:(1)预习实验指导书有关部分,认真做好实训内容的准备,就实验可能出现的情况提前做出思考和分析。

(2)仔细观察上机操作时出现的各种现象,记录主要情况,作出必要说明和分析。

(3)认真书写实验报告。

实验报告包括实验目的和要求,实验情况及其分析。

对需编程的实验,写出程序设计说明,给出源程序框图和清单。

(4)遵守机房纪律,服从辅导教师指挥,爱护实验设备。

(5)实验课程不迟到。

目录实践1 Oracle10g的安装与配置及常用工具的使用 (1)实践2 创建数据库、表空间和数据文件 (25)实践3 数据库的安全管理 (27)实践4 管理表结构与表数据 (32)实践5 管理索引、视图、同义词和序列 (36)实践6 PL/SQL编程基础 (38)实践7 PL/SQL高级编程 (42)综合实践一Oracle基本知识与SQL*PLUS简单使用 (46)综合实践二PL/SQL编程语言的使用与程序设计 (57)综合实践三(设计性) JSP+Oracle网上购物系统 (68)附录:员工医疗保险系统表 (69)实践1 Oracle10g的安装与配置及常用工具的使用开发语言及实现平台或实验环境Oracle 10g实践目的(1) 掌握Oracle 10g数据库的安装与配置过程。

Oracle实验报告

Oracle实验报告

Oracle 数据库课程上机实验报告学院名称:专业班级:姓名:学号:实验成绩:任课教师:目录实验一 (3)实验三 ORACLE数据库结构与网络配置 (3)实验四 (8)实验五数据表及其操作 (10)实验六 SQL命令操作 (14)实验七创建索引 (21)实验一实验三 ORACLE数据库结构与网络配置实验内容与数据库结构相关的数据字典查询实验1、查看表空间的名称及大小2、查看表空间物理文件的名称及大小3、查看回滚段名称及大小4、查看控制文件5、查看日志文件6、查看表空间的使用情况7、查看数据库库对象8、查看数据库的版本9、查看数据库的创建日期和归档方式10、查看临时数据库文件常用数据库信息查看命令(1)oracle中怎样查看总共有哪些用户(2)查看oracle当前连接数(3)列出当前数据库建立的会话情况3.2 表空间操作●创建表空间●修改表空间的相关操作1)增加表空间中的数据文件2)删除表空间中的数据文件3)修改表空间文件的数据文件大小4)修改表空间数据文件的自动增长属性。

实验四实验五数据表及其操作实验内容5.1创建基本表以system用户登录sqlplus创建表空间创建Testpace表空间5.2修改表清空表中的数据5.3 删除表5.4聚集表(1)创建聚集(聚集表的创建与操作)引用参照完整性三表定义了suppliers,products,order details三表间的三个级联关系实验六 SQL命令操作实验内容6.1数据查询select创建student,sc,course三表,并且插入数据查询1:查询2:查询3:查询4;实验七创建索引实验内容7.1在emp表中的sal字段上创建一个名为index_sal的b树索引,按字段值的蒋序排序7.2 在dept表的dname字段上创建一个具有唯一性的b树索引,索引值为字母序排序。

7.3在emp表的ename和deptno字段上创建一个复合索引7.10将参数设置为跟踪状态,执行对emp表的查询命令,查看索引应用的跟踪结果。

oracle模式对象的管理

oracle模式对象的管理

oracle模式对象的管理【开发语言及实现平台或实验环境】Oracle10g【实验目的】(1)学习基本数据库表的创建,表结构的修改与删除等命令;(2)学习索引的管理命令;(3)学习索引化表的管理命令(4)学习分区表的管理命令(5)学习簇、视图、序列、同义词等的管理命令【实验原理】1.基本表的管理(1)表的创建:Create命令:CREATETABLEtable_name(column_nametype(ize),column_nametype(i ze),…);或CREATETABLEtable_name[(column_name,…)]ASSELECTtatement;表名命名规则所用的表名必须满足下面的条件:a)名字必须以A-Z或a-z的字母开始;b)名字可以包括字母、数字和特殊字母(_)。

字符$和#也是合法的,但是这种用法不提倡;c)名字大小写是一样的;例如EMP、emp和eMp是表示同一个表;d)名字最长不超过30个字符;e)表名不能和其它的对象重名;f)表名不能是SQL保留字。

字段类型:完整性约束:Oracle允许用户为表和列定义完整性约束来增强一定的规则。

可分为:表约束和字段约束约束类型如下:1)NOTNULL约束NOTNULL约束保证字段值不能为NULL。

没有NOTNULL约束的字段,值可以为NULL。

2)UNIQUE约束指定一个字段或者字段的集合为唯一键。

在表中没有两行具有相同的值。

如果唯一键是基于单条记录的,NULL是允许的。

表约束命令格式:,[CONSTRAINTcontraint_name]UN IQUE(Column,Column,…)字段约束命令格式:[CONSTRAINTcontraint_name]UNIQUE例如:CREATETABLEDEPT(DEPTNONUMBER,DNAMEVARCHAR2(9),LOCVARCHAR2(10),CONSTRAINTUNQ_DEPT_LOCUNIQUE(DNAME,LOC));UNQ_DEPT_LOC是一个表约束。

数据库对象

数据库对象

实验四oracle对象管理及使用一、实验目的及要求掌握Oracle的常用对象的操作方法。

会使用常用对象解决一些实际问题。

二、实验主要内容(1) 表结构的建立、修改、查看、删除操作。

(2) 索引的建立、修改、查看、删除操作。

(3) 视图的建立、查询、修改、删除操作。

(4) 同义词的建立、查询、修改、删除操作,比较对同义词的操作与对原数据库对象的操作是否一致。

(5) 掌握序列的建立、查询、修改、删除操作,利用序列向数据库表中插入数据。

三、实验仪器设备在局域网环境下,有一台服务器和若干台客户机。

服务器成功安装Oracle 10g数据库服务器(企业版),客户机成功安装Oracle 10g客户端软件,网络服务配置正确,数据库和客户端正常工作。

四、实验步骤1.创建表结构利用命令行方式将下列各表建立到员工医疗保险系统数据库中。

表结构如附录员工医疗保险系统表1-表7所示。

2.查看表结构(1) 利用数据字典查看员工医疗保险系统所有表的字段信息和约束信息。

从数据字典DBA_TAB _COLUMNS查看员工医疗保险系统所有表的字段信息。

从数据字典DBA_ CONSTRAINTS查看员工医疗保险系统所有表的约束信息。

3.修改表结构(1) 将表“staff_sql”重新命名为“staff_sql0”。

(2) 为“staff_sql0”表添加“age ”字段,利用DESC命令查看“staff_sql0”表的字段信息。

(3) 为“staff_sql0”表添加“salary NUMBER(5,2)”、“salary_add NUMBER(3,1)”两个字段,利用DESC命令查看“staff_sql0”表的字段信息。

(4) 向“staff_sql0”表添加“sname”字段惟一性约束,从数据字典DBA_CONSTRAINTS查看“staff_sql0”表的约束信息。

(5) 删除“staff_sql0”表上“sname”字段惟一性约束,从数据字典DBA_CONSTRAINTS查看“staff_sql0”表的约束信息。

Oracle 数据库对象_序列_索引_视图_同义词

Oracle 数据库对象_序列_索引_视图_同义词


查看序列情况
SELECT s_test.currval FROM dual; SELECT s_test.nextval FROM dual;
删除序列

删除序列使用DROP SEQUENCE语句

例如,删除s_test3序列
DROP SEQUENCE s_test3;

执行效果如下图所示:
索引介绍
使用序列填充主键-2

查询插入结果
SELECT * FROM order_status2;

查询结果如图所示

注意

Hale Waihona Puke 当使用序列填充主键列时,通常应使用NOCACHE避免序列产生的数 值发生遗漏(数值产生遗漏是因为缓存数值时,数据库被关闭)。然 而,使用NOCACHE虽然会降低性能。但是如果不介意主键值产生遗 漏,可以再考虑使用CACHE。
案例

使用默认选项创建序列
CREATE SEQUENCE s_test;

说明

创建序列忽略了其他选项,那么将会使用默认值。 start_num和increment_num都是1

指定相关选项创建序列
CREATE SEQUENCE s_test2 START WITH 10 INCREMENT BY 5 MINVALUE 10 MAXVALUE 20 CYCLE CACHE 2 ORDER;

说明

minimum_num:序列中的最小值,该值必须比start_num小,比 maximum_num也要小 NOMINVALUE:对于序列最小值,不指定最小值,对于升序最小值是1 ,对于降序最小值是-1026 CYCLE:对于序列的值达到最大值或最小值时的处理方法。如果是升序 达到最大值了,那么下一个生成的值将是最小值;如果是降序达到最小值 时,那么下一个值将是最大值。 NOCYCLE:当序列的值达到最大或最小值时,序列将不再产生任何数值 。默认是NOCYCLE。

查看Oracle当前用户下的(表视图,同义词...)

查看Oracle当前用户下的(表视图,同义词...)

查看Oracle当前⽤户下的(表视图,同义词...)查看Oracle当前⽤户下的信息(⽤户,表视图,索引,表空间,同义词,存储过程函数,约束条件)0、表空间 SQL>select username,default_tablespace from user_users; 查看当前⽤户的⾓⾊ SQL>select * from user_role_privs; 查看当前⽤户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 查看⽤户下所有的表 SQL>select * from user_tables; 1、⽤户 查看当前⽤户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前⽤户的⾓⾊ SQL>select * from user_role_privs; 查看当前⽤户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 显⽰当前会话所具有的权限 SQL>select * from session_privs; 显⽰指定⽤户所具有的系统权限 SQL>select * from dba_sys_privs where grantee='GAME'; 2、表 查看⽤户下所有的表 SQL>select * from user_tables; 查看名称包含log字符的表 SQL>select object_name,object_id from user_objects where instr(object_name,'LOG')>0; 查看某表的创建时间 SQL>select object_name,created from user_objects where object_name=upper('&table_name'); 查看某表的⼤⼩ SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&table_name'); 查看放在ORACLE的内存区⾥的表 SQL>select table_name,cache from user_tables where instr(cache,'Y')>0; 3、索引 查看索引个数和类别 SQL>select index_name,index_type,table_name from user_indexes order by table_name; 查看索引被索引的字段 SQL>select * from user_ind_columns where index_name=upper('&index_name'); 查看索引的⼤⼩ SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&index_name'); 4、序列号 查看序列号,last_number是当前值 SQL>select * from user_sequences; 5、视图 查看视图的名称 SQL>select view_name from user_views; 查看创建视图的select语句 SQL>set view_name,text_length from user_views; SQL>set long 2000; 说明:可以根据视图的text_length值设定set long 的⼤⼩ SQL>select text from user_views where view_name=upper('&view_name'); 6、同义词 查看同义词的名称 SQL>select * from user_synonyms; 7、约束条件 查看某表的约束条件 SQL>select constraint_name, constraint_type,search_condition, r_constraint_name from user_constraints where table_name = upper('&table_name'); SQL>select c.constraint_name,c.constraint_type,cc.column_name from user_constraints c,user_cons_columns cc where c.owner = upper('&table_owner') and c.table_name = upper('&table_name') and c.owner = cc.owner and c.constraint_name = cc.constraint_name order by cc.position; 8、存储函数和过程 查看函数和过程的状态 SQL>select object_name,status from user_objects where object_type='FUNCTION'; SQL>select object_name,status from user_objects where object_type='PROCEDURE'; 查看函数和过程的源代码 SQL>select text from all_source where owner=user and name=upper('&plsql_name');9、查看建表语句:SELECT DBMS_METADATA.GET_DDL('TABLE','TABLE_NAME')FROM DUAL; (表名TABLE_NAME⼀定要来⼤写)。

Oralce数据库对象

Oralce数据库对象

北京 湖南 湖北 张三 1 0 0 李四 0 1 0 王五 0 0 1 赵六 1 0 0 田七 0 1 0 王八 0 0 1
30
表分区
1范围分区 表里面有20000行数据 create table my ( id number(12) primary key ) partition by range (id) ( partition p1 values less than (10000) partition p2 values less than (20000) )
21
视图
视图以经过定制的方式显示来自一个或多个表的数据 视图可以视为“虚拟表”或“存储的查询” 创建视图所依据的表称为“基表” 视图的优点有:
提供了另外一种级别的表安全性,可指定对表中的一组行或列访 问 隐藏的数据的复杂性,如连接视图,表达式 简化的用户的SQL命令,如连接视图 隔离基表结构的改变, 通EATE SEQUENCE emp_sq create sequence 序列名称 ; INCREMENT BY 1 -- 每次加几个 该代码用于创建初值为1,增量为1,无限增长的序列。 START WITH 1 -- 从1开始计数 序列命名: sq_表名 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 CACHE 10 --内存缓存 访问序列
17
同义词
同义词是数据库对象的别名、引用。(这些对象可以是表、 视图、序列、过程、函数等) 同义词优点:
简化SQL语句(不需要用户前缀)。 隐藏对象的真实名称和所有者。 提供对对象的公共访问。
强调:
同义词 虽允许用户访问数据库对象,但不能替代权限,在使用同 义词之前要确保用户已得到访问对象的权限。 对同义词的所有操作将影响到其引用对象。

oracle中同义词的用途

oracle中同义词的用途

oracle中同义词的用途
Oracle中的同义词可以提高数据处理效率,提升数据库的可用性和可维护性。

一、优化查询性能
使用同义词,可以减少查询执行时间,提高查询的效率。

由于同义词是提前定义的,用户在查询时只需要提供更少的查询条件,就可以获取更多的数据,而不需要去重新编写查询语句。

二、降低查询复杂度
同义词可以让数据库开发者将多个查询条件组合成一个语句,从而使查询更加灵活、简单,大大降低了开发的复杂度,简化查询操作,提高系统可用性。

三、实现正确的查询
同义词可以帮助数据库开发者实现正确的查询,因为用户可以根据自己的需要,定义查询条件,而无需考虑SQL语法的合法性。

同义词可以帮助用户改变查询语句的意义,让查询更简单,更准确。

四、提高数据库可维护性
使用同义词可以提高查询的可维护性。

从编写的代码和实际查询的结果,可以更快地找到查询问题,以便更好地管理数据库。

- 1 -。

Oracle同义词详细介绍

Oracle同义词详细介绍

Oracle同义词Oracle数据库中提供了同义词管理的功能。

同义词是数据库方案对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。

在使用同义词时,Oracle 数据库将它翻译成对应方案对象的名字。

与视图类似,同义词并不占用实际存储空间,只有在数据字典中保存了同义词的定义。

在Oracle数据库中的大部分数据库对象,如表、视图、同义词、序列、存储过程、函数、JAVA类、包等等,数据库管理员都可以根据实际情况为他们定义同义词。

通过Oracle数据库同义词管理,可以给数据库管理员与应用程序开发人员带来不少惊喜。

惊喜一:应用程序开发可以不管数据库的具体对象名。

在应用程序中,要不断的调用Oracle数据库的对象,如表、视图、对象等等。

为此,在管理软件开发的过程中,若应用程序已经完成了某部分功能的开发。

此时,数据库管理员若一定需要更改某个数据库对象的命名。

那么,此时应用程序也需要调整。

这在实际工作中,会很不方便。

特别是有些应用程序如果提供了功能自定义平台的话,会非常的麻烦。

如在一个ERP软件中,有报表自定义功能。

在系统中,原来就有一张供应商产品明细表。

但是,用户觉得这张报表信息不够齐全。

用户希望能够显示出某个零件所对应的成品。

此时,用户可以更改原有的数据库对象来完成这个自定义。

但是,这往往不被建议这么做。

因为若不小心修改错误,那么就很难再修改回来。

所以自定义平台中,若需要对原有报表进行比较大的变更时,往往建议用户另外建立一个视图,来收集自己所需要的信息。

若这么做的话,那么用户不仅需要定义数据库对象,而且还要重新调整前台应用程序的报表格式。

显然这工作量有多大。

而现在有了同义词功能的话,这一切都会变得方便。

因为前台应用程序可以不用作调整,而只需把数据库对象同义词进行重新定义即可。

这既保障了前台应用程序的可恢复性;同时也降低了工作量。

这就是Oracle数据库同义词给我们带来的第一个惊喜。

惊喜二:避免应用程序直接访问数据库对象,提高数据库安全性。

oracle实验 视图、索引和完整性

oracle实验  视图、索引和完整性

实验项目名称:视图、索引和完整性等实验学时: 3 同组学生姓名:实验地点:实验日期:实验成绩:批改教师:批改时间:实验4 视图、索引和完整性等一、实验目的和要求1、了解视图的基本概念、种类及各自的特点与作用。

2、理解索引的基本概念及其优缺点。

3、理解修改数据时索引的开销。

4、理解数据完整性的概念及分类。

5、理解同义词和序列的基本概念。

6、掌握在OEM中创建视图、索引、实体完整性、域完整性和参照完整性以及同义词、序列的方法。

7、掌握用PL/SQL语言创建视图、索引、各种约束、同义词和序列的方法。

二、实验设备、环境设备:奔腾Ⅳ或奔腾Ⅳ以上计算机环境:WINDOWS 2000 SERVER或WINDOWS 2003 SERVER、ORACLE 10g中文版三、实验步骤1、分析题意,重点分析题目要求并给出解决方法。

2、根据题目要求启动SQL*Plus、iSQL*Plus、OEM等管理工具。

3、按题目要求完成实际操作任务,并将相关文档资料保存在以自己学号命名的文件夹中。

4、提交完成的实验结果。

四、实验内容1、视图的创建与使用。

(1)创建一个名为cx_employees的视图,只允许查看雇员的编号、姓名、生日、性别和部门的编号。

(2)创建一个名为cx_salary的视图,要求只显示财务部雇员的姓名和薪水情况。

使用视图,查询财务部雇员中姓名为王林的信息。

(3)通过视图向Employees表插入一条信息:雇员编号:510888;姓名:张无忌;出生年月1982年8月23日;性别:男;部门编号:3。

(4)将张无忌从经理办公室转到市场部。

(5)将张无忌从Employees表中删除。

2、创建索引。

(1)对ORCL数据库中的Employees表中的DepartmentID属性上建立一个名为DeptID_index 索引,并指定索引的存储特征值,数据库中的行以升序保存,将索引建立在用户默认的表空间里。

(2)在Employees表的sex列上建一个位图索引。

Oracle 管理同义词

Oracle  管理同义词

Oracle 管理同义词同义词是表、索引、视图等模式对象的一个别名。

通过模式对象创建同义词,可以隐藏对象的实际名称和所有者信息,或者隐藏分布式数据库中远程对象的们置信息,由此为对象提供一定的安全性保证。

与视图、序列一样,同义词只在Oracle数据库的数据字典中保存其定义描述,因此同义词并不占用任何实际的存储空间。

在开发数据库应用程序时,应当尽量避免直接引用表、视图或其他数据库对象的名称,而改用这些对象的同义词。

这样可以避免当管理员对数据库对象做出修改和变动之后,必须重新编译应用程序。

使用同义词后,即使引用的对象发生变化,也只需要在数据库中对同义词进行修改,而不必对应用程序做任何改动。

Oracle中的同义词分两种类型:公有同义词和私有同义词。

公有同义词被一个特殊的用户组PUBLIC拥有,数据库中所有的用户都可以使用公有同义词。

而私有同义词只被创建它的用户所拥用,只能由该用户以及被授权的其他用户使用。

建立公有同义词是使用CREATE PUBLIC SYNONYM语句完成的。

如果数据库用户要建立公有同义词,则要求该用户必须具有CREATE PUBLIC SYNONYM系统权限。

下面的语句建立基于SCOTT.EMP表的公共同义词PUBLIC_EMP:SQL> create public synonym public_emp for scott.emp;同义词已创建。

执行以上语句后,会建立公共同义词PUBLIC_EMP。

因为该同义词属于PUBLIC用户组,所以所有用户都可以直接引用该同义词。

需要注意,如果有户要使用该同义词,必须具有访问SCOTT.EMP表的权限。

例如,下面的语句将使用同义词访问SCOTT.EMP表:SQL> select ename,sal,job2 from public_emp3 where ename='SCOTT';ENAME SAL JOB---------- ---------- ---------SCOTT 3000 ANALYST建立私有同义词是使用CREATE SYNONYM语句完成的。

oracle同义词概念及其作用

oracle同义词概念及其作用

oracle同义词概念及其作用同义词在Oracle数据库中起到了很重要的作用。

它能够提供更加灵活的数据访问方式,方便了数据库的管理和查询。

本文将详细介绍Oracle同义词的概念以及其作用。

一、同义词概念同义词是指在数据库中为一个或多个对象(如表、视图、序列等)起一个别名,也就是给它们取一个更加直观、易记的名字。

同义词是数据库对象的另一种名字,通过使用同义词,我们可以在数据库中以不同的名字来访问相同的对象。

在Oracle数据库中创建同义词非常简单,只需要使用CREATE SYNONYM语句并指定别名即可。

例如,我们可以通过以下语句创建一个名为"EMPLOYEE"的同义词,指向真正的"EMPLOYEE_INFO"表:CREATE SYNONYM EMPLOYEE FOR EMPLOYEE_INFO;二、同义词的作用1.简化表名同义词的一个主要作用是简化表名的访问。

在复杂的数据库结构中,表名可能会非常长,记忆和输入起来都比较麻烦。

通过使用同义词,我们可以将复杂的表名简化成一个易于记忆和书写的名字,提高数据库管理的效率。

2.提高安全性同义词可以起到一定的安全作用。

通过设置权限,我们可以控制用户对同义词的访问权限,而不是直接对数据库中的对象进行授权。

这样一来,就可以更好地保护敏感数据,提高数据库的安全性。

3.简化SQL语句使用同义词可以简化SQL查询语句。

通过给对象起一个简短的同义词,我们可以减少SQL语句的长度,提高查询效率。

此外,当数据库结构发生变化时,只需要修改同义词的指向,而不需要修改所有引用到该对象的SQL语句,从而减少了维护工作量。

4.实现跨用户的数据访问在Oracle数据库中,不同的用户可能对同一张表感兴趣。

使用同义词可以实现跨用户的数据访问,即一个用户可以通过同义词来访问另一个用户的表,而无需直接访问其他用户的对象。

这既能简化用户的操作,又能提高数据的安全性。

oracle中同义词的概念及作用

oracle中同义词的概念及作用

oracle中同义词的概念及作用Oracle同义词,也称作Oracle义原,是Oracle数据库中使用的一种对象,可以在Oracle数据库中引用一组表或索引,拥有类似表或索引的功能,很多时候用来替换其他对象的名称。

开发者可以利用Oracle同义词完成一些复杂的开发任务,如查询、存储过程等。

首先,开发者可以使用Oracle同义词进行简单的查询任务。

比如,假设你需要查询一个大表,但由于表的大小及其他原因,需要经常在不同的数据库中进行查询,因此你可以在不同的数据库中创建Oracle同义词,它可以指向该大表,这样每次都可以使用它来查询该表。

其次,Oracle同义词的功能还可以用于数据库迁移。

当数据库从一个版本迁移到另外一个版本时,一些表或索引的名称或是结构可能已经发生了变化,但是可以利用Oracle同义词来避免数据库迁移过程中,对程序代码的修改。

此外,Oracle 同义词还可以用于处理存储过程中的复杂任务。

例如,在存储过程中,你需要从一个大表中获取一些数据,但是由于表太大,可能会有性能问题,你可以创建一个Oracle 同义词,把表名称改为“大表”,这样既可以提高性能又能节约时间。

最后,Oracle同义词还可以用来实现一些额外的功能,比如保留历史版本的表或索引,并通过更新Oracle 同义词来切换不同版本的表或索引。

总之,Oracle同义词虽然只是一个简单的对象,但它具有多种用途,对于简化各种复杂的开发任务,保留历史版本的表索引等都有很大的帮助。

最后,使用以下代码来创建一个Oracle 同义词:—创建同义词CREATE SYNONYM syn_mytable FOR mytable; —使用同义词SELECT * FROM syn_mytable;。

oracle实验9-10 索引与视图,序列和同义词的创建

oracle实验9-10 索引与视图,序列和同义词的创建

oracle实验9-10 索引与视图,序列和同义词的创建一、实验目的1.理解索引的概念和类型。

2.掌握创建索引的命令。

3.理解视图的概念和优点。

4.理解可更新视图应具备的特点。

5.掌握创建一般视图和可更新视图的命令。

6.理解序列和同义词的概念和作用。

7.掌握序列的创建与应用。

8.掌握同义词的创建与应用。

二、实验内容1.在数据库中创建Student表,包括学号Id、姓名Name、性别Sex、班级编号Class_id。

利用该表创建如下索引:(1)在Id字段上创建唯一的B树索引。

(2)在Name字段上创建普通的B树索引。

(3)在Sex 字段上创建位图索引。

语句:--建表:create table Student(Id char(6),Name varchar2(8),Sex char(2),Class_id char(4));create unique index index_id on Student(Id);create index index_name on Student(Name);create bitmap index index_sex on Student(Sex);截图:2.利用scott.emp 表创建视图并完成以下操作:(1)创建简单视图。

语句:conn scott/tiger;grant insert,update,delete on emp to system; conn system/orcl1234;create or replace VIEW v_empasselect empno,ename,job,hiredate,deptnofrom scott.emp;截图:(2)查看视图的结构。

语句:SQL> desc v_emp;截图:(3)从视图中查询数据。

语句:SQL> select * from v_emp where deptno=10;截图:(4)查看视图中各字段的可更新性。

序列、同义词和视图

序列、同义词和视图

1、序列概述:序列是一个顺序编号生成器,它能以串行的方式生成一系列的顺序整数。

序列可被设置为递增、递减、有界、无界、循环、不循环等方式,它不占用实际存储空间,只是在数据字典中保存了序列的定义。

序列一般用于生成主键序列值或超市收银机的清单流水号。

2、创建序列:序列能生成最大38位的整数。

例子:create sequence myseqincrement by 1start with 1maxvalue 10000000minvalue 1cache 10nocycle;解释:myseq是创建的序列名;increment by指定序列增量,默认是1,负数表示递减;start with指定序列的起始值,递增时默认为最小值,递减时默认为最大值;maxvalue指定序列的最大值,其值必须大于或等于序列的起始值,且大于指定的minvalue值,最大可设为1027;minvalue指定序列生成的最小值,必须小于或等于起始值,且小于maxvalue值,可设为nominvalue,最小可设为-1026;cache指定高速缓存中可以分配的序列号个数,若设置为10,那么Oracle每次会生成10个序列号,并预先存在缓存中,当这10个序列号用完后,再生成下一组10个序列号,可以指定为nocache,这样便不用预存序列号,在一定程度上提供了连续的整数;cycle指定到达最大或最小值过后是否再次循环,默认为nocycle。

3、序列的使用:序列有两个伪列nextval和currval,nextval返回序列生成的下一个值,currval返回序列当前值。

在引用currval伪列前,必须用nextval对序列初始化,如:select myseq.nextval from dual;select myseq.currval form dual;insert into student(sid,sname,sage,ssex) values(myseq.nextval,’Tom’,15,’m’);4、序列的修改和删除:本用户要具有alter sequence系统权限才能修改序列,要修改其他用户的序列,用户须有alter any sequence系统权限。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
问题:
解决办法:
先退出scott用户登陆sys用户使用以下sql语句授权再登陆scott用户创建同义词。
Sql语句:
Grantcreate synonymto scott ;
5.写出用数据字典视图来查看已有的视图、序列、同义词和索引的SELECT语句。
视图
SELECT * FROM user_views;
序列
SELECT * FROM user_sequences;
同义词
select * from syn;
索引
select * from ind;
出现的问题:
解决方案(列出遇到的主要问题和解决办法,列出没有解决的问题):
from dept d left outer join emp e on (d.deptno = e.deptno)
group by d.deptno,d.dname
order by d.deptno;
2.创建一个新的序列empno_seq,序列的步长为1,起始值为7961,最大值为9999,并且不允许序列循环。用此序列可以向EMP表中插入新雇员。
40 OPERATIONS 0
已选择4行。
Sql语句:
Create view salOfDept
AS
Select d.deptno, dname, count(e.sal) count_num, avg(e.sal) avg_sal, max(e.sal) max_sal,min(e.sal) min_sal
SQL语句:
Create sequence empno_seq
Increment by 1
Start with 7961
Maxvalue 9999
NOCYCLE;
3.使用empno_seq序列向EMQL语句:
Insert into emp(empno, ename, job,mgr,hiredate,sal,comm,deptno)
---------- -------------- ---------- ---------- ---------- ----------
10 ACCOUNTING 5 2710 5000 1300
20 RESEARCH 5 2175 3000 800
30 SALES 6 1566.66667 2850 950
《数据库开发技术》实验3报告
实验题目:视图、序列、同义词和索引
日期
2015-11-1
班级
计算机1301
姓名
实验环境:Win10+Oracle11g
实验内容与完成情况(记录所有的实验过程):
1.创建一个部门月薪统计视图,包括所有的部门号,所有的部门名,各部门人数,各部门平均薪水、最高薪水和最低薪水。
DEPTNO DNAME COUNT_NUM AVG_SAL MAX_SAL MIN_SAL
Values
(empno_seq.nextval, 'jack','CLERK',7782,null,1300,NULL,10);
Select last_number from user_sequences;
效果截图:
4.为scott的SALGRADE表创建一个同义词sg。
SQL语句:
Create synonym sg for salgrede;
相关文档
最新文档