当前位置:首页 >> 计算机软件及应用 >>

Oracle 数据库对象


数据库操作与管理语言 Oracle SQL
数据库对象

本章目标
? ? ?

创建序列
创建索引 创建视图

序列Sequence
? ?

序列是一个数据库对象,用于生成一系列的整数。
学习内容包括
? ? ? ? ?

创建序列 查询序列的信息 使用序列 修改序列 删除序列

创建序列-1
?

可以使用CREATE SEQUENCE语句来创建序列,语法如下:
CREATE SEQUENCE sequence_name [START WITH start_num] [INCREMENT BY increment_num] [ { MAXVALUE maximum_num | NOMAXVALUE } ] [ { MINVALUE minimum_num | NOMINVALUE } ] [ { CYCLE | NOCYCLE } ] [ { CACHE cache_num | NOCACHE } ] [ { ORDER | NOORDER } ];

?

说明
? ? ? ? ?

sequence_name:序列的名称 start_num:序列开始的第一个整数,默认从1开始 increment_num:每次增长的数值 maximum_num:序列能够增长到的最大值 NOMAXVALUE:对于序列最大值,不指定最大值,对于升序最大值是 1027,对于降序是-1

创建序列-2
?

可以使用CREATE SEQUENCE语句来创建序列,语法如下:
CREATE SEQUENCE sequence_name [START WITH start_num] [INCREMENT BY increment_num] [ { MAXVALUE maximum_num | NOMAXVALUE } ] [ { MINVALUE minimum_num | NOMINVALUE } ] [ { CYCLE | NOCYCLE } ] [ { CACHE cache_num | NOCACHE } ] [ { ORDER | NOORDER } ];

?

说明
?

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

创建序列-3
?

可以使用CREATE SEQUENCE语句来创建序列,语法如下:
CREATE SEQUENCE sequence_name [START WITH start_num] [INCREMENT BY increment_num] [ { MAXVALUE maximum_num | NOMAXVALUE } ] [ { MINVALUE minimum_num | NOMINVALUE } ] [ { CYCLE | NOCYCLE } ] [ { CACHE cache_num | NOCACHE } ] [ { ORDER | NOORDER } ];

?

说明
?

cache_num:保存在内存中缓存整数的数量,默认缓存的数量是20,最 小的缓存数是2,最大的缓存数是CEIL(maximum_num minimum_num)/ABS(increment_num) ? NOCACHE:表示没有缓存数字 ? ORDER:保证整数的请求顺序是按照生成顺序得到的。 ? NOORDER:不保证整数的请求顺序是按照生成顺序得到的。默认值。

案例
?

使用默认选项创建序列
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;

?

创建降序的序列
CREATE SEQUENCE s_test3 START WITH 10 INCREMENT BY -1 MINVALUE 1 MAXVALUE 10 CYCLE CACHE 5;

查看序列的信息
?

可以通过查看user_sequences视图了解序列的信息
?

查看序列信息
SELECT * FROM user_sequences ORDER BY sequence_name;

?

查询结果如下图所示:

使用序列-1
? ?

创建序列之后,序列可以产生一系列的数值。可以通过 currval和nextval来访问它们来获取当前值和下一个值。
例如
SELECT s_test.nextval

FROM dual;

?

在s_test序列中的第一个值是1,一旦序列被初始化之后,就可以 从序列中获取当前值
SELECT s_test.currval FROM dual;

使用序列-2
?

s_test2序列的初始值是10,每次增加5,最大值为20
?

执行3次
SELECT s_test2.nextval FROM dual;

?

说明
? ?

由于设置了循环,当达到最大值20时, 又会重新从10开始进行循环

使用序列填充主键-1
?

序列经常用于填充整型的主键列
?

例如,创建order_status2表
CREATE TABLE order_status2 ( id INTEGER CONSTRAINT order_status2_pk PRIMARY KEY, status VARCHAR2(10), last_modified DATE DEFAULT SYSDATE );

? ?

创建序列
CREATE SEQUENCE s_order_status2 NOCACHE;

插入数据
INSERT INTO order_status2(id, status, last_modified) VALUES (s_order_status2.nextval, 'PLACED', '01-1月-2006'); INSERT INTO order_status2 (id, status, last_modified) VALUES (s_order_status2.nextval, 'PENDING', '01-2月-2006');

使用序列填充主键-2
?

查询插入结果
SELECT * FROM order_status2;
?

查询结果如图所示

?

注意
?

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

修改序列
?

修改序列可以使用ALTER SEQUENCE语句进行修改。修 改有一些限制如下:
? ? ?

初始值不能修改 序列的最小值不能大于当前序列的值 序列的最大值不能小于当前序列的值 修改s_test序列的增长值为2
ALTER SEQUENCE s_test INCREMENT BY 2;

?

例如
?

?

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

删除序列
?

删除序列使用DROP SEQUENCE语句
?

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

?

执行效果如下图所示:

索引介绍
?

索引是与表关联的可选结构。可以创建索引以加快对表执行SQL语句的速度 。就像书的索引可以帮助我们更快速的查找信息一样,Oracle中的索引也提 供了一种更快地访问表数据的途径。 应该建索引列的特点:
?

?

?
? ? ? ? ? ? ? ? ?

1)在经常需要搜索的列上,可以加快搜索的速度; 2)在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构; 3)在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度; 4)在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的 范围是连续的; 5)在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引 的排序,加快排序查询时间; 6)在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。 不应该建索引列的特点: 第一,对于那些在查询中很少使用或者参考的列不应该创建索引。 第二,对于那些只有很少数据值的列也不应该增加索引。 第三,对于那些定义为blob数据类型的列不应该增加索引。 第四,当修改性能远远大于检索性能时,不应该创建索引。

索引的特点:
?

优点:
? ? ? ? ?

第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意 义。

第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排 序的时间。
第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

?

缺点:
? ? ?

第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增 加。 第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还 要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。 第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维 护,这样就降低了数据的维护速度。

索引
?

索引学习部分内容包括
? ? ?

创建B-Tree索引(默认类型) 创建函数索引 查看索引信息

?
? ?

修改索引
删除索引 创建位图索引

创建B-Tree索引
?

可以使用CREATE INDEX创建B-Tree索引,语法如下
CREATE [UNIQUE] INDEX index_name ON table_name(column_name[, column_name ...]) TABLESPACE tab_space;
?

说明
? ? ?

UNIQUE:意味着索引列中的值必须是唯一的 index_name:索引的名称 table_name:需要加索引的表名

?
?

column_name:需要加索引的列。可以在多列上加索引(这样的索引 称为复合索引)
tab_space:存储索引的表空间。如果不指定的话,那么索引将存储 在用户默认的表空间下
– 出于性能原因,可以将索引存储的表空间与实际表所存储的表空间分开

。管理员应该为表和索引创建不同的表空间。

案例-1
?

现有customer表
CREATE TABLE customers ( customer_id INTEGER CONSTRAINT customers_pk PRIMARY KEY, first_name VARCHAR2(10) NOT NULL, last_name VARCHAR2(10) NOT NULL, dob DATE, phone VARCHAR2(12) );
?

插入测试数据
INSERT INTO customers VALUES (1, 'John', 'Brown', '01-1月-1965', '800-555-1211'); INSERT INTO customers VALUES (2, 'Cynthia', 'Green', '05-2月-1968', '800-555-1212'); INSERT INTO customers VALUES (3, 'Steve', 'White', '16-3月-1971', '800-555-1213'); INSERT INTO customers VALUES (4, 'Gail', 'Black', NULL, '800-555-1214'); INSERT INTO customers VALUES (5, 'Doreen', 'Blue', '20-5月-1970', NULL);

案例-2
?

假设customers表中有很多数据,现有如下查询语句
SELECT customer_id, first_name, last_name FROM customers WHERE last_name = 'Brown';
?

如果last_name列的基数很大,符合要求的数据又少于总行数的 10%,那么可以使用CREATE INDEX来给last_name列创建索引
CREATE INDEX i_customers_last_name ON customers(last_name);

?
?

创建完名为i_customers_last_name的索引之后,之前查询速度 会更快一些
可以使用唯一索引强制列值的唯一。例如,使phone列的值唯一
CREATE UNIQUE INDEX i_customers_phone

ON customers(phone);
唯一索引不能包含相同的值

函数索引
?

刚才创建了i_customers_last_name索引,现在查询如下语句
SELECT first_name, last_name FROM customers WHERE last_name = UPPER('BROWN');

?

由于查询使用了UPPER()函数,这样的i_customers_last_name索引 就不起作用。如果你的索引是基于函数处理的结果的话,那么可以使 用函数索引,例如
CREATE INDEX i_func_customers_last_name ON customers(UPPER(last_name));

?

说明
? ?

另外,数据库管理员需要设置初始化参数QUERY_REWRITE_ENABLED 为true(默认为false),从而有利于函数索引。 例如
ALTER SYSTEM SET QUERY_REWRITE_ENABLED=TRUE;

查看索引信息-1
?

可以通过查看user_indexes视图,了解索引的信息
?

例如
SELECT index_name, table_name, uniqueness, status FROM user_indexes

WHERE table_name IN ('CUSTOMERS', 'EMPLOYEES')
ORDER BY index_name;
?

查询效果如下图所示:

查看索引信息-2
?

说明
? ?

以上语句查询出customers表和employees表的索引信息 customers_pk索引是在创建表时设置customer_id列为主键时数 据库自动创建的

?

相关列的说明
? ? ? ?

INDEX_NAME:索引名 TABLE_NAME:索引所属表的名称

UNIQUENES:是否是唯一索引,UNIQUE或NONUNIQUE
STATUS:当前索引是否有效,VALID或INVALID

查看某列的索引信息
?

可以通过user_ind_columns视图查看某列的索引信息
?

例如
SELECT index_name, table_name, column_name FROM user_ind_columns

WHERE table_name IN ('CUSTOMERS', 'EMPLOYEES')
ORDER BY index_name;
?

查询效果如下图所示:

修改索引
?

可以使用ALTER INDEX语句修改索引
?

例如, 修改i_customers_phone索引名为 i_customers_phone_number索引
ALTER INDEX i_customers_phone RENAME TO i_customers_phone_number;

?

修改效果如下图所示:

删除索引
?

可以使用DROP INDEX删除索引
?

例如,删除i_customers_phone_number索引
DROP INDEX i_customers_phone_number;

?

执行效果如下图所示:

位图索引
?

位图索引通常用于数据仓库
?

数据仓库里的数据一般是用来进行大量的查询,而一般不是用来 被大量的并发事务进行修改的。数据仓库通常被用于商业组织的 智能分析,像监控销售趋势,等等

?

可以创建位图索引的列,一般会被用来进行大量的查询,但是列 的基数缺不大。比如:
? ? ?

1、2、3、4、5、6 N、S、E、W “Order placed”, “Order shipped”

?

位图索引比较有代表性的应用是表中含有大量数据,而且不经常 修改。如果表中列的不同值的行数数目小于1%,或如果列中的值 是重复的100倍以上,则该列是一个位图索引的候选键。
?

例如,一张表中有100万行数据,某列的不同值达到10000甚至更少 ,那么该列可以用来创建位图索引。同样,该列应该尽可能的少修改 ,而且该列应该常用于WHERE子句的查询。

创建位图索引
?

在order_status表的status列上创建位图索引
?

修改表名
RENAME order_status2 TO order_status;

?

创建位图索引
CREATE BITMAP INDEX i_order_status
ON order_status(status);

?

执行效果图如下所示:

什么情况下要创建索引
?

在以下情况,应该考虑创建索引:
? ? ?

列包含较大范围的值 列包含大量空值 在WHERE子句或连接条件中频繁使用一个或多个列

?

表相当大,但是预计的多数查询检索的行占总行数比例较小,如 百分之十以下

什么情况下不创建索引
?

在以下情况,通常不值得创建索引:
? ? ? ? ?

表比较小 在查询中不经常使用列作为条件 预计多数查询检索的行要超过表中总数行数的一定比例,如百分 之十 表更新比较频繁 被索引的列将作为表达式的一部分进行引用

视图内容
?

视图学习内容包括以下部分:
? ? ?

创建和使用视图 从数据字典中获取视图的信息 修改视图

?

删除视图

视图
?

视图是基于已知的一张或多张表的查询
? ? ?

查询视图与查询普通表的查询方式是一样的 一些视图是可以对其进行DML操作,从而影响其基表的操作 视图实际并不存储数据,数据存储实际是存储在表中

?

之前已经使用过很多视图查看信息。
?

比如:user_tables,user_sequences 以及user_indexes都是视图

为什么要使用视图
? ? ?

将复杂的查询用视图来实现,然后给用户授权访问
?

这样可以隐藏复杂的业务逻辑

可以禁止用户直接访问基表,授予用户访问视图的权限 可以允许视图来访问基表中的某些行
?

可以对最终用户隐藏某些行

数据准备
?

产品类型表
CREATE TABLE product_types ( product_type_id INTEGER CONSTRAINT product_types_pk PRIMARY KEY, name VARCHAR2(10) NOT NULL );

?

产品信息表
CREATE TABLE products ( product_id INTEGER CONSTRAINT products_pk PRIMARY KEY, product_type_id INTEGER

CONSTRAINT products_fk_product_types
REFERENCES product_types(product_type_id), name VARCHAR2(30) NOT NULL, description VARCHAR2(50),

price NUMBER(5, 2)
);

创建和使用视图
?

可以使用CREATE VIEW语句创建视图,语法如下
CREATE [OR REPLACE] [{FORCE | NOFORCE}] VIEW view_name [(alias_name[, alias_name ...])] AS subquery [WITH {CHECK OPTION | READ ONLY} CONSTRAINT constraint_name];
?

说明
? ? ? ?

OR REPLACE:表示替换已存在的同名视图 FORCE:强制创建视图,即使基表不存在也创建 NOFORCE:基表如果不存在,则不创建视图。默认值 view_name:视图名称

?
? ? ? ?

alias_name:子查询表达式的别名
subquery:检索基表数据的子查询 WITH CHECK OPTION:表示只有被查询搜索到的数据行才可以进行插入、 更新、删除操作。默认是不使用该项 constraint_name:是WITH CHECK OPTION或WITH READ ONLY选项的约 束名 WITH READ ONLY:只能读取基表的数据行

视图的分类
? ?

简单视图
?

查询语句只涉及到一张基表 一般查询涉及到一张或多张表 使用GROUP BY子句或DISTINCT关键字 包含函数的使用

复杂视图
? ? ?

创建视图的准备
?

要创建视图,必须给用户授予创建视图CREATE VIEW的 权利。可以使用SYS给用户store授予该权利。
?

授权语句如下
GRANT CREATE VIEW TO store;

?

执行效果如下图所示:

创建简单视图
?

使用store用户创建名为cheap_products_view视图,用 以查找价格低于15元的商品
CREATE VIEW cheap_products_view AS SELECT *

FROM products
WHERE price < 15;

?

创建名为employees_view的视图,用以查找employees 表中除salary列的信息
CREATE VIEW employees_view AS SELECT employee_id, manager_id, first_name, last_name, title FROM employees;

使用简单视图
?

查询cheap_products_view视图的数据
SELECT product_id, name, price FROM cheap_products_view;

?

查询employees_view视图的数据
SELECT *
FROM employees_view;

使用视图插入数据
?

可以使用DML语句对cheap_products_view视图进行操 作(注意只可用于简单视图)
?

例如,对视图进行插入操作
INSERT INTO cheap_products_view (product_id, product_type_id, name, price) VALUES (13, 1, 'Western Front', 13.50);

?

查询视图
SELECT product_id, name, price FROM cheap_products_view WHERE product_id = 13;

注意事项-1
?

由于创建cheap_products_view视图未使用CHECK OPTION选项,即使检索不出数据的数据行,也可以进行 DML操作
?

例如,插入价格超过15元的商品
INSERT INTO cheap_products_view (product_id, product_type_id, name, price)
VALUES (14, 1, 'Eastern Front', 16.50);

?

查询该商品
SELECT * FROM cheap_products_view WHERE product_id = 14;

注意事项-2
?

由于employees_view视图中不包含salary列,所以在往 该视图中插入数据的时候,salary列值将被设置为null
?

例如,先插入员工数据,再查询
?

插入测试
INSERT INTO employees_view
(employee_id, manager_id, first_name, last_name, title) VALUES (5, 1, 'Jeff', 'Jones', 'CTO');

?

查询测试
SELECT employee_id, first_name, last_name, salary
FROM employees WHERE employee_id = 5;

?

查询效果如下图所示:

创建视图使用CHECK OPTION-1
?

如果想DML语句在视图上进行安全的操作,那么可以在查 询上设置CHECK OPTION。例如,
CREATE VIEW cheap_products_view2 AS SELECT * FROM products WHERE price < 15 WITH CHECK OPTION CONSTRAINT cheap_products_view2_price; ?

说明
?

WHERE子句的限定跟cheap_products_view视图一样,只不过加了 CHECK OPTION限制。

创建视图使用CHECK OPTION-2
?

通过视图插入一条记录
INSERT INTO cheap_products_view2 ( product_id, product_type_id, name, price) VALUES (15, 1, 'Southern Front', 19.50);
?

执行结果如下图所示:

?

说明
?

由于商品价格是19.50,通过视图是无法将该商品查出的,视图里面 筛选的价格是小于15的,所以插入数据时数据库返回一个错误。

使用READ ONLY创建视图
?

创建视图的时候使用READ ONLY,那么该将为只读视图
?

例如,创建cheap_products_view3视图使用READ ONLY
CREATE VIEW cheap_products_view3 AS SELECT * FROM products WHERE price < 15 WITH READ ONLY CONSTRAINT cheap_products_view3_read_only;

?

插入测试
INSERT INTO cheap_products_view3

(product_id, product_type_id, name, price)
VALUES (16, 1, 'Northern Front', 19.50);

?

执行效果如下图所示:

查看视图定义-1
?

可以使用DESCRIBE命令查看视图定义
?

例如,查看cheap_products_view3视图定义
DESCRIBE cheap_products_view3

?

执行效果如下图所示

查看视图定义-2
?

同样,可以通过user_views视图查看视图定义信息
?

例如
SELECT view_name,text_length,text FROM user_views;

?

说明,视图的相关列
? ? ? ?

view_name:视图名 text_length:创建视图的字符长度 text:创建视图的文本代码 read_only:是否为只读视图

创建复杂视图-1
?

创建名为products_and_types_view的视图,使用完全 外连接
CREATE VIEW products_and_types_view AS SELECT p.product_id, p.name product_name, pt.name product_type_name, p.price

FROM products p FULL OUTER JOIN product_types pt
USING (product_type_id) ORDER BY p.product_id; ? ?

查询视图
SELECT * FROM products_and_types_view;

查询效果如下图所示:

创建复杂视图-2
?

创建视图employee_salary_grades_view,使用内连接
CREATE VIEW employee_salary_grades_view AS SELECT e.first_name, e.last_name, e.title, e.salary, sg.salary_grade_id FROM employees e INNER JOIN salary_grades sg

ON e.salary BETWEEN sg.low_salary AND sg.high_salary
ORDER BY sg.salary_grade_id; ?

查询视图
SELECT * FROM employee_salary_grades_view;

?

效果如下图所示

创建复杂视图-3
?

创建视图product_average_view,使用WHERE子句、 GROUP BY、HAVING
CREATE VIEW product_average_view AS SELECT product_type_id, AVG(price) average_price FROM products WHERE price < 15 GROUP BY product_type_id HAVING AVG(price) > 13 ORDER BY product_type_id; ? ?

查询视图
SELECT * FROM product_average_view;

查询效果如下图所示

修改视图
?

可以使用CREATE OR REPLACE VIEW修改或替换视图
?

替换product_average_view视图
CREATE OR REPLACE VIEW product_average_view AS SELECT product_type_id, AVG(price) average_price FROM products WHERE price < 12 GROUP BY product_type_id HAVING AVG(price) > 11 ORDER BY product_type_id;

?

可以使用ALTER VIEW去除视图相关约束
?

例如,去除cheap_products_view2_price视图的约束
ALTER VIEW cheap_products_view2

DROP CONSTRAINT cheap_products_view2_price;

删除视图
?

可以使用DROP VIEW语句删除视图
?

例如,删除视图cheap_products_view2
DROP VIEW cheap_products_view2;

?

执行效果如下图所示:

同义词

使用同义词访问相同的对象:
?

方便访问其它用户的对象

?

缩短对象名字的长度

CREATE [PUBLIC] SYNONYM synonym FOR object;

创建和删除同义词

?

为视图DEPT_SUM_VU 创建同义词

CREATE SYNONYM d_sum FOR dept_sum_vu; Synonym Created.
?

删除同义词

DROP SYNONYM d_sum; Synonym dropped.
? ?

说明:创建同义词必须要拥有 create synonym | create public synonym的权限。 类似别名,多用于分布式的数据库中。

同义词示例:

本章总结
? ? ? ?

序列
索引 视图 同义词


相关文章:
oracle常用数据库对象介绍_图文.ppt
oracle常用数据库对象介绍 - 初步了解Oracle 常用数据库对 象 ?
Oracle 数据库对象_图文.ppt
Oracle 数据库对象 - 数据库对象 回顾 ? 锁用于保护多用户环境下被修改
Oracle数据库对象介绍_图文.ppt
Oracle数据库对象介绍 - Oracle数据库对象 目标 ? ? ? ? ?
ORACLE数据库对象.doc
1. 数据库对象简介 ? ? ? Oracle 数据库对象又称模式对象 数据库对象是逻辑结构的集合,最基本的数据库对象是表和视图 Oracle 数据库数据对象中最基本的是表和...
oracle数据库对象_图文.ppt
oracle数据库对象 - oracle 数据库对象 www.yuchengtech.com ORACLE数据库对象 数据库对象 ORACLE数据库主要有如下的数据库对象 tabl...
oracledata数据库对象创建与使用_图文.ppt
oracledata数据库对象创建与使用 - 第5章 数据库对象的创建与使用 5.1 数据库对象概述 Oracle数据库的基本对象 表(table) 索引(index) 过程( proc...
Oracle中无效数据库对象的处理方法.doc
Oracle中无效数据库对象的处理方法 - Oracle 中无效数据库对象的处理方法 Oracle 总是会尝试自动重编译无效的 PL/SQL 对象和视图,但是可能不会成功。虽然 Oracle ...
Oracle数据库_02数据库对象_图文.ppt
Oracle数据库_02数据库对象_计算机软件及应用_IT/计算机_专业资料。Oracle数据库 Oracle数据库系统 本课程主要内容 1 表空间管理 2 用户管理 3 权限管理 4 基本...
oracle 数据库对象的创建与使用_图文.ppt
第5章 数据库对象的创建与使用 5.1 数据库对象概述 Oracle数据库的基本
Oracle数据库数据对象分析.doc
Oracle数据库数据对象分析 - Oracle 数据库数据对象分析 Oracle 数据库数据对象中最基本的是表和视图,其他还有约束、序列、函数、存储过 程、包、触发器等。对数据...
4-Oracle数据库对象_图文.ppt
4-Oracle数据库对象 - 第四章 数据库对象 回顾 ? 锁用于保护多用户环
关系模型及oracle对象关系数据库.ppt
关系模型及oracle对象关系数据库 - 第三章 关系模型及oracle对 象关系数据库 3.1 关系模型和基本概念 3.2 关系代数 3.3 oracle对象关系数据库系统 关系数据库...
03Oracle数据库对象报告_图文.ppt
03Oracle数据库对象报告 - Oracle开发入门与精通 Oracle是殷
第四章 oracle的数据库对象_图文.ppt
第四章 oracle数据库对象 - 第四章 数据库对象 回顾 锁用于保护多用户
Oracle数据库对象.doc
Oracle数据库对象 - 四、数据库对象 表、视图、序列、过程、函数、程序包,
oracle数据库对象_图文.ppt
oracle数据库对象 - oracle 数据库对象 www.yuchengtech.com 火龙果 ? 整理 uml.org.cn ORACLE数据库对象 ? ORACLE数据库...
oracle数据库对象解释.txt
oracle数据库对象解释 - 内存结构 database buffer cac
第10章 其他数据库对象oracle解析.doc
第10章 其他数据库对象oracle解析 - Oracle SQL 开发基础 1 课程结构 内容课时(H 第一章 Oracle 数据库基础 2.5 第二章编写简单的 SELECT 语句 1...
Oracle数据库语句大全.doc
数据库对象 oracle 数据库对象又称模式对象 数据库对象是逻辑结构的集合,最基本的数据库对象是表 数据库对象: 表,序列,视图,索引 序列 用于生成唯一,连续序号的...
Oracle数据库数据对象分析(下).doc
Oracle数据库数据对象分析(下) - 过程和函数 过程和函数都以编译后的形式存放在数据库中, 函数可以没有参数也可以有多个参数并 有一个返回值。过程有零个或多...