oracle数据库索引 视图,[数据库]Oracle基础(六)之序列,视图,索引

[数据库]Oracle基础(六)之序列,视图,索引

0

2020-09-08 20:00:46

一、序列sequence

sequence是Oracle数据库中一种特殊的对象,能够产生连续的整数值,可以为数据库中多个对象共同使用,主要用于作为主键值。

1.创建序列

起始值 start with:1

步长:increment by:1

最大值:maxvalue:100

最小值:minvalue:1

循环:cycle|nocycle

缓冲区:cache 20|nocache(默认20)

create sequence s1;

注: a) 各可选项位置不先后次序

b) 当increment by n为正数时,

默认maxvalue为: 1E+27 , 默认minvalue为: 1

当increment by n为负数时,

默认maxvalue为: -1 , 默认minvalue为: -1E+26

increment by必须为非零整数,

加不加NOMAXVALUE效果一样,这本身是默认值

c) CACHE n可以每次预产生十五个,二十个,放到内存里,提高性能。

不写默认CACHE 20个

d) cycle用于循环,到了最大数后循环(不建议使用)

2.使用序列

nextval:取序列下一个值

currval:去序列当前值

select s1.nextval from dual;

select s1.currval from dual;

create sequence s2

start with 100

increment by 2;

select s2.nextval from dual;

select s2.currval from dual;

注:先执行nextval才会启用,启用后才能查询到当前值

//序列和表的关系

insert into s_stu(id,name)

values(s2.nextval,'rui');

3.修改序列

ALTER SEQUENCE sequence

[INCREMENT BY n]

[{MAXVALUE n | NOMAXVALUE}]

[{MINVALUE n | NOMINVALUE}]

[{CYCLE | NOCYCLE}]

[{CACHE n | NOCACHE}]

注: sequence不能修改起始值

alter sequence s_stu_id

increment by -2;

4.删除序列

drop sequence sequenceName二、视图view1.视图

视图是一个或多个表的部分数据,它可以像表一样进行CRUD(Create、Retrieve、Update、Delete)操作,但没有具体的存储数据结构,它以一个select语句的形式存在数据库中。

本质: 一条有名字的select语句

表现: 一到多张表的部分内容

作用:提高检索的效率

表 10000条数据

经常用的10条数据查询出来放在视图中。从数据字典表中查询创建的视图:

select view_name

from user_views;

2.创建视图

create view 视图名字

as 子查询

eg:

//授给briup创建视图的权限

conn system/system;      grant create view to briup;

create view v1

as

select id,last_name,salary,dept_id

from s_emp

where dept_id=41;

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view[(alias[, alias]...)]

AS subquery

[WITH CHECK OPTION  [constraint 约束名]]

[WITH READ ONLY]

注: a) or replace: 如有相同名字的视图对象,替换。

b) force: 如subquery中源表不存在,先创建视图对像,这时视图对象虽创建,但不能正常使用。

默认值为noforce, 即源表不存在,不能正常创建视图。

c) with check option: 表示可以进行插入、更新和删除操作,

但应该满足WHERE子句的条件。

d) 视图的查询可以使用复杂的SELECT语法,包括连接/分组查询和子查询

e) 在没有WITH CHECK OPTION和WITH READ ONLY的情况下,查询中不能使用ORDER BY子句

f) 如果没有为WITH CHECK OPTION约束命名,系统会自动为之命名,形式为SYS_Cn       eg: 创建一视图:

create or replace view a

as

select id from s_emp

where id<9;

g) with read only: 只允许进行select操作。

注: 当对建立视图的那张真正的表进行修改(插入、更新和删除)后,

通过视图查看到的数据是修改以后的数据。

3.视图分类

1) 简单视图

数据来源于一个表,   不包含函数以及进行分组,

可以进行DML操作;

2) 复杂视图

数据来源于多个表,

包含函数以及进行分组,

不可以进行DML操作;

4.修改视图

使用or replace直接覆盖 替换

5.删除视图

drop view view_name;三、索引index1.索引

索引是Oracle中一种的对象,数据库用其以加快检索速度,几乎所有的关系型数据库中都采用b*tree类  型索引,也是被最多使用的。其树结构与二叉树比较类似,根据rowid快速定位所访问的记录。

相当于书的目录是一样的。2、创建索引

1) 自动创建索引

在创建主键约束、唯一键约束

以及使主键约束、唯一键约束

生效时会自动创建唯一索引。

select user_indexes; 2)手动创建索引

create index in1

on s_stu(gender);3.使用索引

1)列频繁用于where子句或连接条件中

2)列的取值范围较广

3)表很大,记录数量较多

4)查询返回的结果占总记录数的百分比在2~4%内

5)索引并不是越多越好4、删除索引

DROP INDEX index_name 5.查询自动索引

select index_name

from user_indexes

where table_name='S_STU';

转载请保留本文网址:http://www.shaoqun.com/a/471166.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

oracle

0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值