oracle数据库 序列相关

创建序列
create sequence se_owners
--提取下一个值
select se_owners.nextval from dual
--提取当前值
select se_owners.currval from dual
--创建复杂序列
--有最大值的非循环序列
create sequence se_test
increment by 10
start with 10
maxvalue 300
minvalue 5

--查询序列  当下一个值到达300时,继续执行会报异常
select se_test.nextval from dual
select se_test.currval from dual

--带有循环的序列  
--在带有循环的序列中,第一次从开始值进行增长
--当到达最大值是,再次查询下一个值,会从最小值开始增长
create sequence se_test2
increment by 10
start with 10
maxvalue 200
minvalue 5
cycle;
--查询序列
select se_test2.nextval from dual
select se_test2.currval from dual

--带缓存的序列
--最小值必须小于等于每次增长的值
--当最小值小于每次增长的值时,cache可以等于循环次数
--当最小值等于每次增长的值时,cache必须小于循环次数
create sequence se_test4
increment by 10
start with 10
maxvalue 300
minvalue 10
cycle
cache 29;

--修改和删除序列
--使用Alter  sequence 语句修改序列,不能修改序列的start with参数
alter sequence se_test3 maxvalue 400 cycle;

select se_test4.nextval from dual;

--删除序列
drop sequence se_test4;

---------------------------------同义词
--创建和使用同义词:
--私有同义词:
--需求:为表 T_OWNERS 创建 ( 私有 )同义词 名称为 OWNERS 
create  synonym owners for T_owners;
--使用同义词查询
select * from owners;
--公有同义词:
--为表 T_OWNERS 创建( 公有 )同义词 名称为 OWNERS2:
create public synonym owners2 for T_owners;

select * from owners2;
-----------索引
--我们经常要根据业主名称搜索业主信息,所以我们基于业主表的 name 字
--段来建立索引。
create index index_owners_name on T_owners(name);

select * from t_Owners where name = '刘华';
--创建一个表,进行测试
create table T_indexTest(
       id number,
       name varchar(30)
);
--在表中插入百万条数据
begin 
  for i in 1..1000000
    loop
      insert into T_indexTest values(i,'AA'||i);
    end loop;
    commit;
end;
--为表的name字段创建索引
create index index_test on T_indexTest(name);
--根据索引和id 分别进行查询,理论上通过索引的查询时间比通过id 查询的时间短
select * from T_indextest where id=1896;--0.015
select * from T_indextest where name = 'AA1896';--0.015

--唯一索引
--需求:在业主表的水表编号一列创建唯一索引
select * from T_owners;
create unique index index_owners_watermeter on T_owners(watermeter);

--复合索引  根据地址和门牌号对学员表创建索引,语句如下:
create index index_owners on T_owners(addressid,housenumber);


--反向键索引  reverse
  
--位图索引  我们在 T_owners 表的 ownertypeid 列上建立位图索引,语句:
create bitmap index index_owners on T_owners(ownertypeid);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值