Oracle序列长度为6并且循环,Oracle基础(六)之序列,视图,索引

一、序列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';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值