/*
======================================================================================================================================
*//*
tp_orders表空间,大小10M,文件大小可自动增长,允许文件扩展,最大限度为无限制
创建A_oe用户的默认表空间为tp_orders
密码 bdqn
授予connect,resource权限党文a_hr用户的employee
*/
--创建表空间和用户,并授予访问数据库的权限
create tablespace tp_orders
datafile 'E:\E盘\tp_orders01.dbf'
size 10M
autoextend on;--创建用户
create user A_oe
identified by bdqn
default tablespace tp_orders--赋予权限
grant connect,resource to A_oe;
grant select on test.employee to A_oe;
grant select on test.bumen to A_oe;select * from test.employee;/*使用序列生成部门编号的值
*/
/*
从60开始,间隔是10,最大值是10000的序列的对象dept_seq
*/
select * from bumen;
--创建一个序列
create sequence dept_seq
start with 60
increment by 10
maxvalue 10000
--插入数据
insert into bumen values(dept_seq.nextval,'学术部');
insert into bumen values(dept_seq.nextval,'学术部1');
--数据迁移前的工作
drop sequence dept_seq;create sequence dept_seq
start with 80
increment by 10
maxvalue 10000;
create table deptBak as
select * from bumen;select * from deptBak;
--测试插入数据
insert into deptBak values(dept_seq.nextval,'人事部');/*创建A_oe模式下dept表的公有同义词,可以允许任何能够连接上数据库的用户访问
*/--创建一个测试dept表
create table dept
as select * from test.bumen;select * from dept;--创建同义词
create public synonym p_sy_dept for a_oe.dept;
--赋予权限
grant select on  test.customers to A_oe;
grant create public synonym  to A_oe;
select * from p_sy_dept;/*
切换用户,操作使用test用户
*/
--查看并且操作employee表select * from customers;
--为客户编号创建反向建索引
create index index_reverse_customer_id on customers (customer_id) reverse;
--为地域列创建位图索引
create  bitmap index index_nls_territory on customers (nls_territory);
--为名和姓氏列创建组合索引
create index index_cus on customers(cust_fiest_name,cust_last_name);/*
根据订单表创建范围分区表
*/
--(1)已完成
--(2)创建分区
create table rangeOrders
(
order_id number(12) primary key,           --订单编号
order_date date not null,                  --订货日期
order_mode varchar2(8) not null ,          --订货模式
customer_id number(6) not null,            --客户编号
order_status number(2),                    --订单状态
order_total number(8,2),                   --总定价
sales_rep_id number(6),                    --销售代表id
promotion_id number(6)                     --推广员id
)
partition by range (order_date)
(
partition part1 values less than (to_date('2013-01-01' , 'yyyy-mm-dd')),
partition part2 values less than (to_date('2014-01-01' , 'yyyy-mm-dd')),
partition part3 values less than (to_date('2015-01-01' , 'yyyy-mm-dd')),
partition part4 values less than (to_date('2016-01-01' , 'yyyy-mm-dd')),
partition part5 values less than (to_date('2017-01-01' , 'yyyy-mm-dd')),
partition part6 values less than (maxvalue)
)--插入测试数据
insert into rangeOrders(order_id,order_date,order_mode,customer_id,order_status,order_total,sales_rep_id,promotion_id)
values(1,'2017-02-09','网上下单',2,1,323.23,1,2);insert into rangeOrders(order_id,order_date,order_mode,customer_id,order_status,order_total,sales_rep_id,promotion_id)
values(2,'2016-11-09','上门购买',1,2,56.00,2,1);
insert into rangeOrders(order_id,order_date,order_mode,customer_id,order_status,order_total,sales_rep_id,promotion_id)
values(3,'2017-12-20','熟人推荐',3,1,6000,1,2);
insert into rangeOrders(order_id,order_date,order_mode,customer_id,order_status,order_total,sales_rep_id,promotion_id)
values(4,'2015-12-02','网上下单',5,2,365,2,2);
insert into rangeOrders(order_id,order_date,order_mode,customer_id,order_status,order_total,sales_rep_id,promotion_id)
values(5,'2017-12-09','上门购买',3,1,3210,1,2);
insert into rangeOrders(order_id,order_date,order_mode,customer_id,order_status,order_total,sales_rep_id,promotion_id)
values(6,'2014-11-11','网上下单',3,1,630,2,2);
insert into rangeOrders(order_id,order_date,order_mode,customer_id,order_status,order_total,sales_rep_id,promotion_id)
values(7,'2017-01-01','上门购买',2,1,6300,1,2);--查看表中的数据
select * from rangeOrders
--查询每一个分区中的数据
select * from rangeOrders partition (part1);
select * from rangeOrders partition (part2);
select * from rangeOrders partition (part3);
select * from rangeOrders partition (part4);
select * from rangeOrders partition (part5);
select * from rangeOrders partition (part6);--查看分区情况
select table_name,partition_name from user_tab_partitions;--把已存在的表改为分区表
create table rangeOrder
partition by range (order_date)
(
partition part1 values less than (to_date('2013-01-01' , 'yyyy-mm-dd')),
partition part2 values less than (to_date('2014-01-01' , 'yyyy-mm-dd')),
partition part3 values less than (to_date('2015-01-01' , 'yyyy-mm-dd')),
partition part4 values less than (to_date('2016-01-01' , 'yyyy-mm-dd')),
partition part5 values less than (to_date('2017-01-01' , 'yyyy-mm-dd')),
partition part6 values less than (maxvalue)
)
as select * from orders;/*
间隔分区(自动化)
*/
--创建分区表(按照一年分一个表)
create table sales_interval1
partition by range (order_date)
interval (numtoyminterval(1,'year'))  --按照一年分区一个表
(partition part1 values less than (to_date('2017/01/01','yyyy/mm/dd')))
as select * from orders;--查看分区情况
select table_name,partition_name,tablespace_name from user_tab_partitions
where table_name=upper('sales_interval1');
--插入一条测试数据
insert into sales_interval1(order_id,order_date,order_mode,customer_id,order_status,order_total,sales_rep_id,promotion_id)
values(98,'2018/01/03','熟人推荐',3,1,9658,2,2);/*注意:刚刚加的那条记录现在肯定没有,所以
1.先执行
select table_name,partition_name,tablespace_name from user_tab_partitions
where table_name=upper('sales_interval1');
查看下一个分区是多少
2.复制刚刚查询出来的分区,eg:SYS_P21
3.执行select * from sales_interval1 partition (SYS_P21);
*/
select * from sales_interval1 partition (SYS_P21);--添加分区
alter table rangeOrder
add partition part7 values less tahn(to_date('2018-01-01','yyyy-mm-dd'));
--删除分区
alter table rangeOrder
drop partition part3;
--移动分区
alter table rangeOrder
move partition part1 tablespace works01;    --works01是表空间名称、/*
1.创建一个单独的表空间
2.把分区的数据移动到这个表空间里面去
3.让这个表空间作为只读
*/--以system的身份登陆上
create tablespace tb_name
datafile 'e:\oracle\tbdb.dbf'
size 10M;
--授权
alter user test quota unlimited on tb_name;
--移动
alter table rangeOrder
move partition part1 tablespace tb_name;
--设置为只读
alter tablespace tp_name read only;
--设置为读写
alter tablespace tp_name read write;/*
课后简答题
*/
--(1)在test用户下创建一个表Stock_Received
create table Stock_Received
(
Stock_ID number,
Stock_Date date,
Cost varchar2(50)
)--插入数据
insert into Stock_Received values (myseq.nextval,'2017/03/05','描述一');
insert into Stock_Received values(myseq.nextval,'2017/01/05','描述二');
insert into Stock_Received values (myseq.nextval,'2017/02/05','描述三');
insert into Stock_Received values(myseq.nextval,'2017/04/05','描述四');
insert into Stock_Received values(myseq.nextval,'2017/05/05','描述五');
insert into Stock_Received values(myseq.nextval,'2017/06/05','描述六');
insert into Stock_Received values(myseq.nextval,'2017/05/05','描述七');
insert into Stock_Received values(myseq.nextval,'2017/04/05','描述八');
insert into Stock_Received values(myseq.nextval,'2017/02/05','描述九');
insert into Stock_Received values(myseq.nextval,'2017/01/05','描述十');
insert into Stock_Received values(myseq.nextval,'2017/08/05','描述十一');
--创建一个名为myseq的序列
create sequence myseq
start with 1000
increment by 10
maxvalue 1100
cycle--(2)创建一个公有的同义词
create public synonym p_Stock_received for Stock_Received
--给a_oe赋予一个可以查看Stock_Received的权限
grant select on p_Stock_received to a_oe;--用a_oe登陆,测试能不能查看Stock_Received表
select * from p_Stock_received;
--↑测试成功--(3)在Stock_Received中根据Stock_Date列创建3个范围分区
create table range_Stock_Received
partition by range(Stock_Date)
(
partition p1 values less than(to_date('2017/01/01','yyyy-mm-dd')),
partition p2 values less than(to_date('2017/03/01','yyyy-mm-dd')),
partition p3 values less than(to_date('2017/05/01','yyyy-mm-dd')),
partition p4 values less than(maxvalue)
)
as select * from Stock_Received--查看每个分区里面的数据
select * from range_Stock_Received partition (p1);
select * from range_Stock_Received partition (p2);
select * from range_Stock_Received partition (p3);--(4)在表的id上创建一个逐渐索引列
create index index_Stock_ID on Stock_Received (Stock_ID);

oracle基本笔记整理及案例分析2相关推荐

  1. oracle基本笔记整理及案例分析1

    /* Oracle数据库的应用 */--创建一个自动增长的表空间worktbs create tablespace worktbs datafile 'E:\E盘\worktbs01.dbf' siz ...

  2. 麦肯锡七步成诗法学习笔记简记以及案例分析(附参考资料可下载)

    点此下载资料 总的来说,个人在学习完麦肯锡七步成诗法后,我认为这是一个系统的.完整的.稳定性强的一个项目问题解决指导方案.对于新手来说,参照此方式来灵活的对问题进行分析总结将会容易许多,不会有毫无头绪 ...

  3. 南加大计算机专业硕士申请,南加州大学计算机科学专业硕士申请条件独家整理附案例分析...

    H同学,在鑫泉留学精英团队的帮助下,以IBT:95;GRE:317+3.0;GPA:83.6%的成绩,被南加州大学计算机科学专业硕士成功录取.今天给大家分享一下该同学之所以成功被南加州大学计算机科学专 ...

  4. RabbitMQ【笔记整理+代码案例】

    1. 消息队列 1.1. MQ 的相关概念 1.1.1. 什么是 MQ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是message 而 ...

  5. Oracle学习笔记整理手册

    文章目录 (1)Oracle正则匹配使用 (2)Oracle修改有数据的数据字段类型 (3)Oracle表数据回滚语句 (4)sql筛选出记录数大于2的记录 (5)oracle同义词 (6)oracl ...

  6. oracle基本笔记整理

    oracle,简单来说就是数据库,数据库 ,顾名思义,就是存放数据的容器!! 不知道oracle的我先科普一下吧~~~科普,科学普及简称科普,又称大众科学或者普及科学,是指利用各种传媒以浅显的.让公众 ...

  7. 过程语句 oracle,Oracle 过程控制语句整理

    分支语句/循环语句 v_case number(3) := 100; begin if 2 < 1 then dbms_output.put_line('条件成立'); elsif 4 > ...

  8. Oracle数据库服务器IO高的分析方案和案例探讨

    Oracle数据库服务器IO高的分析方案和案例探讨 本文原题<ORACLE数据库服务器IO高的分析方案和案例探讨> 目录: 慧眼识珠--服务器磁盘这么繁忙,到底是谁干的? 谨记于心--OR ...

  9. 信息系统项目管理师-案例分析专题(二)案例中常见问题找茬笔记

    场景 信息系统项目管理师-案例分析专题(一)案例简介.答题方法.要点笔记: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1181 ...

最新文章

  1. Linux数据库性能优化--文件系统相关优化
  2. jquery Ajax 通过jsonp的方式跨域提交表单
  3. python现在好找工作吗-转行学Python好找工作吗?
  4. 支付业务流程--h5、APP
  5. 从零开始带你一步一步使用YOLOv3训练自己的数据
  6. 婚礼答谢宴ppt模板_女儿结婚请柬制作 女儿结婚宴会邀请函模板免费
  7. dotproject问题。
  8. FFmpeg学习(6)——视频拼接
  9. Android 9.0 10.0 Launcher3 时钟动态图标的定制化(时钟动态图标)
  10. python爬取12306
  11. [语音处理] 声谱图(spectrogram)FBank(Mel_spectrogram)MFCC(Mel倒谱)到底用哪个作为NN输入?
  12. Android Studio 快捷用法
  13. 网络直播平台是否需要《信息网络传播视听节目许可证》?
  14. 一起实践神经网络INT8量化系列教程(一)
  15. GPS天线类型和特点
  16. windows下开启文件共享的访问日志
  17. 成为zabbix合作伙伴费用及意义
  18. WinZip Pro for Mac专业文件解压缩软件
  19. 0689 ZOJ - 4128
  20. c语言编程输出指定范围的素数,C语言输出范围内所有素数

热门文章

  1. sketch里的ios控件_30个让你眼前一亮的iOS Swift UI控件!
  2. Java LinkedList双向链表源码分析
  3. Ubuntu failed to fetch ... hash sum mismatch
  4. 采蘑菇的克拉莉丝(树链剖分)
  5. HDU 6127 Hard challenge(极角 + 二分)
  6. Codeforces Round #609 (Div. 2) D. Domino for Young 黑白染色
  7. 【WC2019】数树【子集反演】【结论】【树形dp】【生成函数】【函数求导】【多项式全家桶】
  8. CF785E Anton and Permutation
  9. 牛客题霸 转圈打印矩阵 C++题解/答案
  10. hdu 1525 Euclid‘s Game