oracle

这篇博客主要介绍了Oracle数据库的应用,包括表空间的创建语法,自定义用户管理如sys、system和scott用户的角色,序列的使用,同义词的定义,以及索引的分类如b树索引、唯一和非唯一索引、反向键和位图索引。此外,还探讨了分区表的两种类型:范围分区和间隔分区。
摘要由CSDN通过智能技术生成


一、oracle数据库应用

1.表空间

表空间分为
	永久性表空间:一般保存表丶视图丶过程和索引等的数据
	临时性表空间:用于保存系统中短期活动的数据
	撤销表空间:用于帮助回退未提交的事务数据

创建表空间语法

--tp_orders 名字
CREATE TABLESPACE tp_orders
datafile 'F:\Y2\oracle\datafile\tp_orders.DBF'
SIZE 10M AUTOEXTEND ON;

--删除表空间
drop TABLESPACE  tp_orders

2.自定义用户管理

1.sys超级用户
2.system系统管理员用户
3.scott示范用户

--创建一个用户
CREATE USER A_oe
IDENTIFIED BY bdqn
DEFAULT TABLESPACE tp_orders


--授予connect和resource权限
GRANT connect,resource TO A_oe;
--允许用户查看employee中的记录
GRANT SELECT ON SCOTT.employee TO A_oe;

3.序列

--创建序列
CREATE SEQUENCE dept_seq
       START WITH 60
       INCREMENT BY 10
       MAXVALUE 10000
--删除序列
drop SEQUENCE dept_seq


--序列自动插入
insert into dept(deptno,dname,loc)
values(dept_seq.nextval,'2','3');

4.同义词

--私有同义词,只能在当前模式下访问,且不能与当前模式的对象同名
CREATE SYNONYM p_sy_dept FOR scott.dept;

--公共同义词,可被所有的数据库用户访问
CREATE PUBLIC SYNONYM p_sy_dept FOR scott.dept;

--查询同义词
select * from p_sy_dept

--删除私有同义词
drop SYNONYM  p_sy_dept

--删除公共同义词
drop PUBLIC  SYNONYM  p_sy_dept

5.索引

分类
1.b树索引

CREATE INDEX index_unique_CUSTOMER_ID ON customers(CUSTOMER_ID);

2.唯一索引和非唯一索引

CREATE UNIQUE INDEX index_unique_CUSTOMER_ID ON customers(CUSTOMER_ID);

3.反向键

CREATE INDEX index_reverse_CUSTOMER_ID ON customers(CUSTOMER_ID) REVERSE;

4.位图索引

CREATE BITMAP INDEX index_bit_NLS_TERRITORY ON customers(NLS_TERRITORY);

6.分区表

1.范围分区

create table rangeOrders(
rangeOrderNo date
)

partition  by range (rangeOrderNo)
(
 partition p1 values less than (to_date('2005/01/01','yyyy-mm-dd')),
 partition p2 values less than (to_date('2006/01/01','yyyy-mm-dd')),
 partition p3 values less than (to_date('2007/01/01','yyyy-mm-dd')),
 partition p4 values less than (to_date('2008/01/01','yyyy-mm-dd')),
 partition p5 values less than (to_date('2009/01/01','yyyy-mm-dd')),
 partition p6 values less than (maxvalue)
);

select * from rangeOrders partition(p3);--查看第三个分区的数据
delete from rangeOrders partition(p3);--删除第三个分区的数据
insert into rangeOrders values(to_date('2013/01/01','yyyy/mm/dd'))--插入数据

2.间隔分区

create table intervalOrders
(
  oDate date
)
partition by range(oDate)
 interval(numtoyminterval(1,'YEAR'))--每1年为一个分区
 (partition p1 values less than (to_date('2005/01/01','yyyy-mm-dd')));
 --插入数据
 insert into intervalOrders values(to_date('2003/12/01','yyyy-mm-dd'))
 --查询分区情况
 select table_name,partition_name 
 from  user_tab_partitions
 where table_name=upper('intervalOrders');
--查询分区数据
select * from  intervalOrders partition(p1);
--删除分区
ALTER TABLE intervalOrders TRUNCATE PARTITION p1;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值