`

linux 下oracle 命令小结(2)

阅读更多
18、表分区:
一般表的分区是在创建表的时候便已经完成。例如:
范围分区:
create table 表名称
(
        ID number(4),
        Name char(20)
)
partition by range (列名)
(
        partition 分区名 values luess than (分区边界值1) [tablespace 表空间名],
        partition 分区名 values luess than (分区边界值2) [tablespace 表空间名],
        partition 分区名 values luess than (分区边界值3) [tablespace 表空间名],
partition 分区名 values luess than (maxvalue) [tablespace 表空间名]
);

散列分区:
partition by hash (列名)
(
        partition 分区名 [tablespace 表空间名],
        partition 分区名 [tablespace 表空间名],
        partition 分区名  [tablespace 表空间名],
partition 分区名 [tablespace 表空间名]
);

列表分区:
partition by list (列名)
(
        partition 分区名 values (‘匹配值’) [tablespace 表空间名],
        partition 分区名 values (‘匹配值’) [tablespace  表空间名],
        partition 分区名 values (‘匹配值’) [tablespace 表空间名],
partition 分区名 values (‘匹配值’) [tablespace 表空间名]
);

19、分区的维护:(主要用于对已经创建的分区进行操作)
添加分区:
alter table 表名称 add partition 分区名称 values less than (数字值);
注: 添加分区可以用于所有类型的表分区,其语法与对应的分区语法类似。

删除分区:
alter table 表名称 drop partition 分区名称;
注: 删除表分区的前提是必须创建了该分区,另外,在删除分区时,分区中的数据也会删除,所以在删除之前必须确定该分区中的数据已经没有存在的必要。
截断分区:截断分区的作用是删除分区中的所有记录。
   Alter table 表名称 truncate partition 分区名称;

合并分区:
alter table 表名称 merge partition 分区名称1,分区名称2 into partition 新分区名称;
注: 合并分区可以将范围分区或复合分区表的两个相邻分区连接起来。结果分区将集成北合并的两个分区的较高上界。
拆分分区:
alter table 表名称 split partition 要分区的分区名称 at (创建分区时的条件值) into(partition 新分区名称1,partition 新分区名称2);
注:拆分分区只可用于范围分区。另外也还可以重命名新分区。例如:
    alter table 表名称 rename partition 旧分区名称 to 新分区名称;
20、表锁定:
行级锁:
select * from 表名称 where 条件 for update [ of 字段1,字段2,……];
注:该锁为行级锁,只对满足条件的指定的字段实行锁定。
表级锁:
loca table 表名称 in share mode  [ nowait ];

注:【nowait】表示避免因为延迟的等待。该语句只对表实现共享锁,还有其他锁模式。请看书78页
21、创建同义词:(所谓同义词就是对象的别名)
私有同义词:
create [ or replace ] synonym 新建同义词名称 for 要创建同义词的对象名称;
注:私有同义词,顾名思义,旧时创建以后只能由该创建用户使用。创建它的前提条件是,用户必须具有对该表或其他结构的访问权限。
公有同义词:
create [ or replace ] public synonym 新建同义词名称 for 要创建同义词的对象名称;
注: 公有同义词对所有的用户都有效,但是创建它的前提条件是:用户必须是管理员的身份。另外当公有同义词和本地对象名称由重复时,本地对象优先。
22、删除同义词:
drop [ public ] synonym 同义词名称;
注: 当要删除公有同义词时,用户页必须时管理员的身份。
23、              序列:(所谓序列,就是实现数据自动递增的种子)
a)         创建序列:
create sequence 序列名称 
[ start with 开始的序列号 ]
[ increment by 序列号的间隔 ]
[ maxvalue 序列号的最大值 | nomaxvalue ] -- 表示指定序列的最大值。Nomaxvalue 表示没有最大值。
[ minvalue 序列号的最小值 | nominvalue ] -- 表示指定序列的最小值,它必须小于或等于start with 的值,并且小于 maxvalue。Nominvalue 表示没有最小值。
[ cycle | nocycle ];   -- 表示当序列到达最大或最小值时 是否从头开始
b)        访问序列:
序列名.nextval 表示获得序列的下一个值;――主要用于向表中插入记录。例如:
insert into 表名称 values (序列名.nextval,~~~~~~~);
序列名.currval 表示获得序列的当前值;―― 主要用于查看。 例如:
select aa.currval  from  dual; 
注: aa 为已经创建的序列,dual 是系统表。
c)        更改序列:
alter sequence 序列名称 
[ increment by 序列号的间隔 ]
[ maxvalue 序列号的最大值 | nomaxvalue ] -- 表示指定序列的最大值。Nomaxvalue 表示没有最大值。
[ minvalue 序列号的最小值 | nominvalue ] -- 表示指定序列的最小值,它必须小于或等于start with 的值,并且小于 maxvalue。Nominvalue 表示没有最小值。
[ cycle | nocycle ]; -- 表示当序列到达最大或最小值时 是否从头开始
注:不可以更改序列的start with 的值。
d)        删除序列:
drop sequence 序列名;
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics