




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第7章 Oracle对象管理,表管理 索引管理 视图管理 同义词管理 序列管理,目 录,表管理,表是数据库中最基本、最重要的对象,是实际存储数据的地方。数据库的许多操作和管理,实际上就是对表的操作和管理。 按照功能的不同,表分为系统表和用户表。系统表又称数据字典,用于存储数据库本身的数据;用户表是由用户建立的,用于存放用户的数据。 按照数据保存时间的长短,表分为永久性表和临时性表。永久性表指表中的数据长期保存,通常所讲的表即指永久性表。临时性表指暂时存放在内存中的表。当临时表不再使用时,由系统自动删除。,列的主要数据类型-1,列的主要数据类型-1,表的约束,主键(Primary Key):表中
2、的某一列或多列非空而且惟一,用来保证表中每一行的惟一性。 惟一键(Unique):强制列值对于表中的每一行必须是惟一的。惟一键与主键的区别在于惟一键的列值可以为空。 外键(Foreign key):被设置为外键的列作为另一个表的主键或惟一键,规定了两个表之间的约束关系。 检查(Check):通过用户规定一个强制性条件,确保列值在指定范围内。 默认值(Default):为表中的某一列设置默认值。当在表中插入一条记录时,如果该列没有指定值,将使用默认值。 非空(Not Null):确保被设置为非空的列有一个值。,创建表-利用SQL命令创建表,CREATE TABLE 模式名.表名 字段名1 数据类
3、型 DEFAULT 表达式 表约束子句 PCTFREE 整数 PCTUSED整数 INITRANS整数 TABLESPACE 表空间子句 STORAGE 存储子句 COLOUM 存储子句 PARTITIONING 分区子句 CACHE | NOCACHE PARALLEL 并行子句 ENABLE_DISABLE 使能子句 AS 子查询 ;,例 使用CREATE TABLE命令创建STUDENT表。CREATE TABLE MDX.STUDENT( NO CHAR(8) PRIMARY KEY, NAME VARCHAR2(20) NOT NULL, SEX CHAR(2) CHECK (SEX
4、=男 OR SEX=女), BIRTHDAY DATE, CLASS VARCHAR2(20)/表已创建。这里没有指定表的存储参数等子句,Oracle系统将使用所在表空间的默认存储参数值。,创建表-利用【创建表】对话框来创建表,接着在表格中定义列的信息,设置【一般信息】,在Oracle企业管理器中创建表的过程,与之相对应的创建表的SQL语句如下:,CREATE TABLE MDX.COURSE ( CNO“ CHAR(6) NOT NULL, CNAME VARCHAR2(20) NOT NULL, CONSTRAINT PK_CNO PRIMARY KEY(CNO) TABLESPACE U
5、SERS,创建表-利用向导创建表,在Oracle企业管理的导航树中,右击【表】文件夹,从弹出的快捷菜单中选择【使用向导创建】选项,出现表向导的【简介】对话框,这里输入表名称为“SCORE”,选择“MDX”方案及“USERS”表空间,列定义,主关键字定义,空约束条件和惟一性约束条件,外约束条件,检查约束条件,存储信息,分区信息,概要,向新建表插入数据,在Oracle企业管理器中,右击STUDENT表,在弹出菜单中选择【表数据编辑器】,出现【表编辑器】对话框,这里可以向该表直接输入数据,如图。,修改表,在Oracle企业管理器中查看表的信息。 选中某一个表后,右击该表,在弹出的快捷菜单中选择【查看
6、/编辑详细资料】选项,出现【编辑表】对话框。 修改表的SQL命令是ALTER TABLE语句,其语法: ALTER TABLE 模式.表名 ADD 字段1 数据类型, MODIFY 字段1 数据类型, STORAGE子句,例7-2 向STUDENT表增加一个为VARCHAR2(100)的MEMO字段。ALTER TABLE STUDENT ADD MEMO VARCHAR2(100);例7-3 修改STUDENT表中的MEMO字段为VARCHAR(200)。ALTER TABLE STUDENT MODIFY MEMO VARCHAR2(200);例7-4 删除STUDENT表中的MEMO字段
7、。ALTER TABLE STUDENT SET UNUSED (MEMO) CASCADE CONSTRAINTS;例7-5 改变STUDENT表名称为STU。RENAME STUDENT TO STU;RENAME STU TO STUDENT;,删除表,在Oracle企业管理器中删除表,只需选中要删除的表,右击该表,在弹出的快捷菜单中选择【移去】选项 删除表的SQL语句是DROP TABLE命令。如: DROP TABLE STUDENT;,有关表的数据字典,例:例7-6 ,7,8,9.,索引(INDEX)管理,索引(Index)是Oracle对象的一种,为了理解索引概念,考虑SCOTT
8、.DEPT表中的数据: SQLSelect * from scott.dept; DEPTNO DNAME LOC - - - 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 如果查询记录时,一种可能的查询办法就是将记录指针移向表中的第一条记录,然后逐条记录地查询下去,直到找到要查询的记录。由于本表只有4行记录,所以这是较快的查询办法,但对于有着成千上万条记录的数据表而言,如果仍然采用这种查询办法,那将会消耗大量时间,造成系统资源的浪费。,索引表中只保存了索引关键字和记录号,相对于对
9、应的数据库表而言小得多,查询时根据索引关键字,就可以从索引表中找到记录号,根据记录号就可以快速的将记录指针移到与关键字相对应的记录上,从而得到查询结果。 索引表在逻辑上和物理上都独立于数据,任何时候都可以删除和重新创建索引表,而且不影响应用程序。 一个表可以有多个索引,但也不是索引越多越好。 虽然索引可以提高查询速度,但却会降低新增、修改和删除记录的速度,这是因为Oracle系统在完成这些操作时需要同时更新索引。,在Oracle企业管理器中,选择左边导航树的【方案】节点,右击【索引】文件夹,在弹出的快捷菜单中选择【创建】选项。 在出现的【创建索引】对话框中创建。 输入索引名称 选择所在的方案,
10、从表空间下拉列表中选择所在表空间 选择【索引建于】中的【表】单选钮,在方案下拉列表中选择表名称 然后对数据列进行设置,从表格中选中某列,可以看到在次序列中出现“1”,表明将在该列创建索引 最后还需设置索引的类型 设置好的【创建索引】对话框如下:,创建索引,创建索引对话框,SQL语言中创建索引,创建索引的命令: CREATE INDEX。 CREATE INDEX MDX.STUDENT_NAME_INDEX ON MDX.STUDENT(NAME) TABLESPACE USERS,查看、修改和删除索引,索引创建成功后,可以在Oracle企业管理器中查看索引信息。 在Oracle企业管理器中修
11、改索引,只需右击要修改的索引,在弹出的快捷菜单中选择【查看/编辑详细资料】选项 在Oracle企业管理器中删除索引,只需选中要删除的索引,右击该索引,在弹出的快捷菜单中选择【移去】选项,视图管理,视图(View)是从一个或一组表中通过一定的查询语句创建一个“虚表”。视图中并没有存放数据,而仅仅是一条SELECT查询语句。 视图在表的基础之上创建,也可以在视图的基础之上再创建视图。 视图在进行插入、更新和删除数据操作时有所限制,如视图中有多表联接,集合函数,Group By、Connect By、Distinct运算符,视图不允许修改和删除。,使用视图的好处,(1)附加的安全性 如使用视图限制用
12、户查看表中的全部数据。 (2)隐藏数据的复杂性 创建多表查询结果的视图。 (3)更改的灵活性 在两表连接的视图共显示7列,在表A中显示3列,且在表B中显示4列。如果表A增加了1列,则对视图的定义不会产生影响,也不会影响到建立在此视图的应用程序。 (4)简化编码工作量 通过函数,查看衍生数据,简化应用程序编码工作量。,创建视图,1利用创建视图对话框 (P.143) 2利用向导 (P.144-P.146) 3. 在视图中操作数据 与在表中操作数据基本一致。 4. 查看、修改和删除视图 EM 6. 有关视图的数据字典 USER_VIEWS,同义词(SYNONYM)管理,Oracle中的对象的创建者就
13、是对象的拥有者,其他用户在使用该用户的对象时,须在对象名称前加上拥有者名称。 考虑下面的SQL语句,以SYSTEM用户登录,执行语句:SQLSELECT * FROM STUDENT 命令执行后,系统提示错误信息如下: ERROR 位于第 1 行: ORA-00942: 表或视图不存在 可以看出,系统提示表或视图找不到。其实,系统中表是存在的,在STUDENT表前面加上拥有者MDX,如下: SQL SELECT * FROM MDX.STUDENT; 再执行,可以正常显示STUDENT表的数据。,同义词(SYNONYM),从上例子可以看出,如果要操作一个表,或其他的Oracle对象,都要在其名
14、称前加上拥有者前缀,非常麻烦。为了方便操作,Oracle使用同义词。 同义词其实就是一个别名,使用同义词可以让其它用户访问对象而不用添加拥有者前缀。 Oracle不仅可以为表、视图创建同义词,还可为其他Oracle对象创建同义词,如函数、包、过程等。 Oracle同义词有公有、私有两种。 公有同义词由DBA创建,所有用户都可以访问 私有同义词只能由创建者自己来使用。,创建同义词,在Oracle企业管理器的导航树中,右击【同义词】文件夹,在弹出的快捷菜单中选择【创建】选项 。,公有、私有同义词,创建同义词命令:CREATESYNONYM语句, CREATE PUBLIC SYNONYM ST F
15、OR MDX.STUDENT 以上创建的是公有同义词。如果省略PUBLIC关键字,则创建的是私有同义词,如 CREATE SYNONYM STT FOR MDX.STUDENT ST所有用户都可以访问,STT只能MDX用户访问。 P.151的7.4.2 公有、私有同义词示例。,序列(Sequence)管理,序列是一个连续的数字生成器。 序列可以被设置为上升、下降。当序列第一次被调用时,它将返回一个预定值,在随后的查询中序列将产生一个按其指定的增量增长的值。序列可以是循环的,也可以是连续增加的,直到一个限制值为止。 序列常用于产生惟一键(主键)。序列作为表中的附加列,可以避免主键由多个字段组成的
16、情况。 序列有两个伪列:CurrVal和NextVal。 其中CurrVal表示当前的序列值,NextVal表示下一个序列值。,创建序列,在Oracle企业管理器的导航树中,右键单击【序列】文件夹,在弹出的快捷菜单中选择【创建】选项 。,创建序列的命令,创建序列语句:CREATE SEQUENCE 与上图相对应的创建序列的命令是: CREATE SEQUENCE MDX.SQ1 INCREMENT BY 1 START WITH 1 MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE CACHE 20 NOORDER,序列示例,SQL CREATE TABLE T1(ID NUMBER(10,0) NOT NULL, TEXT VARCHAR2(10);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论