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

上传人:宝路 文档编号:48062048 上传时间:2018-07-09 格式:PPT 页数:57 大小:314.96KB
返回 下载 相关 举报
Oracle数据库对象序列索引视图同义词_第1页
第1页 / 共57页
Oracle数据库对象序列索引视图同义词_第2页
第2页 / 共57页
Oracle数据库对象序列索引视图同义词_第3页
第3页 / 共57页
Oracle数据库对象序列索引视图同义词_第4页
第4页 / 共57页
Oracle数据库对象序列索引视图同义词_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《Oracle数据库对象序列索引视图同义词》由会员分享,可在线阅读,更多相关《Oracle数据库对象序列索引视图同义词(57页珍藏版)》请在金锄头文库上搜索。

1、数据库操作与管理语言 Oracle SQL 数据库对象本章目标l创建序列l创建索引l创建视图序列Sequencel序列是一个数据库对象,用于生成一系列的整数。l学习内容包括创建序列查询序列的信息使用序列修改序列删除序列创建序列-1l可以使用CREATE SEQUENCE语句来创建序列,语法如下: CREATE SEQUENCE sequence_name START WITH start_num INCREMENT BY increment_num MAXVALUE maximum_num | NOMAXVALUE MINVALUE minimum_num | NOMINVALUE CYCLE

2、 | NOCYCLE CACHE cache_num | NOCACHE ORDER | NOORDER ;l说明sequence_name:序列的名称start_num:序列开始的第一个整数,默认从1开始increment_num:每次增长的数值maximum_num:序列能够增长到的最大值NOMAXVALUE:对于序列最大值,不指定最大值,对于升序最大值是 1027,对于降序是-1创建序列-2l可以使用CREATE SEQUENCE语句来创建序列,语法如下: CREATE SEQUENCE sequence_name START WITH start_num INCREMENT BY in

3、crement_num MAXVALUE maximum_num | NOMAXVALUE MINVALUE minimum_num | NOMINVALUE CYCLE | NOCYCLE CACHE cache_num | NOCACHE ORDER | NOORDER ;l说明minimum_num:序列中的最小值,该值必须比start_num小,比 maximum_num也要小NOMINVALUE:对于序列最小值,不指定最小值,对于升序最小值是1 ,对于降序最小值是-1026CYCLE:对于序列的值达到最大值或最小值时的处理方法。如果是升序 达到最大值了,那么下一个生成的值将是最小值;

4、如果是降序达到最小值时,那么下一个值将是最大值。NOCYCLE:当序列的值达到最大或最小值时,序列将不再产生任何数 值。默认是NOCYCLE。创建序列-3l可以使用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 O

5、RDER | NOORDER ;l说明cache_num:保存在内存中缓存整数的数量,默认缓存的数量是20,最 小的缓存数是2,最大的缓存数是CEIL(maximum_num - minimum_num)/ABS(increment_num)NOCACHE:表示没有缓存数字ORDER:保证整数的请求顺序是按照生成顺序得到的。NOORDER:不保证整数的请求顺序是按照生成顺序得到的。默认值。案例l使用默认选项创建序列CREATE SEQUENCE s_test;说明创建序列忽略了其他选项,那么将会使用默认值。start_num和increment_num都是1l指定相关选项创建序列CREATE

6、SEQUENCE s_test2START WITH 10 INCREMENT BY 5MINVALUE 10 MAXVALUE 20CYCLE CACHE 2 ORDER;l创建降序的序列CREATE SEQUENCE s_test3START WITH 10 INCREMENT BY -1MINVALUE 1 MAXVALUE 10CYCLE CACHE 5;查看序列的信息l可以通过查看user_sequences视图了解序列的信息查看序列信息SELECT * FROM user_sequencesORDER BY sequence_name;查询结果如下图所示:使用序列-1l创建序列之后

7、,序列可以产生一系列的数值。可以通过 currval和nextval来访问它们来获取当前值和下一个值。l例如SELECT s_test.nextvalFROM dual;在s_test序列中的第一个值是1,一旦序列被初始化之后,就可以 从序列中获取当前值SELECT s_test.currvalFROM dual;使用序列-2ls_test2序列的初始值是10,每次增加5,最大值为20执行3次SELECT s_test2.nextvalFROM dual;说明由于设置了循环,当达到最大值20时,又会重新从10开始进行循环使用序列填充主键-1l序列经常用于填充整型的主键列例如,创建order_s

8、tatus2表 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);

9、 INSERT INTO order_status2 (id, status, last_modified) VALUES (s_order_status2.nextval, PENDING, 01-2月-2006);使用序列填充主键-2l查询插入结果SELECT *FROM order_status2;查询结果如图所示注意当使用序列填充主键列时,通常应使用NOCACHE避免序列产生的 数值发生遗漏(数值产生遗漏是因为缓存数值时,数据库被关闭)。 然而,使用NOCACHE虽然会降低性能。但是如果不介意主键值产 生遗漏,可以再考虑使用CACHE。修改序列l修改序列可以使用ALTER SEQUEN

10、CE语句进行修改。 修改有一些限制如下:初始值不能修改序列的最小值不能大于当前序列的值序列的最大值不能小于当前序列的值l例如修改s_test序列的增长值为2 ALTER SEQUENCE s_test INCREMENT BY 2;查看序列情况 SELECT s_test.currval FROM dual; SELECT s_test.nextval FROM dual;删除序列l删除序列使用DROP SEQUENCE语句例如,删除s_test3序列DROP SEQUENCE s_test3;执行效果如下图所示:索引介绍l索引是与表关联的可选结构。可以创建索引以加快对表执行SQL语句的速度。

11、就像书的索引可以帮助我们更快速的查找信息一样,Oracle中的索引也提 供了一种更快地访问表数据的途径。l 应该建索引列的特点:1)在经常需要搜索的列上,可以加快搜索的速度; 2)在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构; 3)在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度; 4)在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的 范围是连续的; 5)在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引 的排序,加快排序查询时间; 6)在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。不应该建索引列的特点:第一

12、,对于那些在查询中很少使用或者参考的列不应该创建索引。第二,对于那些只有很少数据值的列也不应该增加索引。 第三,对于那些定义为blob数据类型的列不应该增加索引。第四,当修改性能远远大于检索性能时,不应该创建索引。索引的特点:l优点:第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有 意义。 第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和 排序的时间。 第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性

13、能 。l缺点:第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而 增加。 第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引 还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更 大。 第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的 维护,这样就降低了数据的维护速度。 索引l索引学习部分内容包括创建B-Tree索引(默认类型)创建函数索引查看索引信息修改索引删除索引创建位图索引创建B-Tree索引l可以使用CREATE INDEX创建B-Tree索引,语法如下CREATE UNIQUE INDEX index_name ONtable_name

14、(column_name, column_name .)TABLESPACE tab_space;说明UNIQUE:意味着索引列中的值必须是唯一的index_name:索引的名称table_name:需要加索引的表名column_name:需要加索引的列。可以在多列上加索引(这样的索 引称为复合索引)tab_space:存储索引的表空间。如果不指定的话,那么索引将存储 在用户默认的表空间下出于性能原因,可以将索引存储的表空间与实际表所存储的表空间分开 。管理员应该为表和索引创建不同的表空间。案例-1l现有customer表 CREATE TABLE customers (customer_id

15、 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);案例-2l假设customers表中有很多数据,现有如下查询语句SELECT cust

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号