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

/*
======================================================================================================================================
*//*
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);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/328055.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Debugging into .NET Core源代码的两种方式

一、前言 .NET开源时间还不长,因为一直在做YOYOFx的关系,所似我常常有更深入的了解.NET Core和ASP.NET Core内容的需求,并且.NET Core平台与之前版本的变化太大,这也导致我经常要去查看源代码中,来了解ASP.NET Core和.…

JAVA基础学习大全(笔记)

JAVASE和JAVAEE的区别 JDK的安装路径 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-perPRPgq-1608641067105)(C:\Users\王东梁\AppData\Roaming\Typora\typora-user-images\image-20201222001641906.png)] 卸载和安装JDK [外链图片转存失败,源站…

Vue.js2.0开发环境搭建(二)

转载自 Vue.js 2.0从入门到放弃---入门实例(二)前面一篇博客介绍了从零开始准备Vue.js所需的一些环境和工具。这片博客就来跟大家探讨一下Vue.js 2.0中的一些特性,以及一个小实例,通过实例来跟大家分享,想必更容易理解…

工程打包是什么意思_太生动形象了!500个建筑施工3D动画演示,施工工艺一目了然,零基础工程人也能看懂...

在建筑行业干了这么多年,老杨深知其中的艰辛。刚毕业的时候去了中建,那时候带我的老师傅很忙,天天都让看书,看得头晕眼花,不懂的地方也不好意思去问,后来还是一个同事给了这500个建筑施工3D动画演示&#x…

使用 dotnet watch 开发 ASP.NET Core 应用程序

原文:Developing ASP.NET Core applications using dotnet watch作者:Victor Hurdugaci翻译:谢炀(Kiler)校对:刘怡(AlexLEWIS)、许登洋(Seay) 介绍 dotnet watch 是一个开发阶段在源文件发生变动的情况下使用 dotnet 命令的工具。…

蓝桥杯JAVA---2013---B----世纪末的星期

2013 一、世纪末的星期 方法一 package com.kuang.Test; import java.util.Calendar; public class Test{ public static void main(String[] args) {Calendar calendar Calendar.getInstance(); //获取Calendar类的实例for(int year 1999; year < 10000; year 100) …

PL/SQL编程基本概念

/* pl/sql编程 */--pl/sql块的结构 declare --声明部门&#xff1a;在此声明pl/sql用到的变量、类型以及游标&#xff0c;以及局部的存储过程和函数 begin--执行部分&#xff1a;过程及sql语句&#xff0c;即程序的组成部分 exception --异常处理部分&#xff1a;错误处理 end;…

Vue.js2.0开发环境搭建(三)

转载自 Vue.js2.0从入门到放弃---入门实例&#xff08;三&#xff09;今天就来简单说一下vue-resource&#xff0c;这是vue的一个与服务器端通信的HTTP插件&#xff0c;用来从服务器端请求数据。话不多说&#xff0c;直接上干货吧。这里PS一下&#xff0c;有人反映之前的代码下…

controller如何保证当前只有一个线程执行_聊聊Spring线程安全,读完之后,大部分程序员收藏了......

Spring作为一个IOC/DI容器&#xff0c;帮助我们管理了许许多多的“bean”。但其实&#xff0c;Spring并没有保证这些对象的线程安全&#xff0c;需要由开发者自己编写解决线程安全问题的代码。Spring对每个bean提供了一个scope属性来表示该bean的作用域。它是bean的生命周期。例…

.NET Core 使用 grpc 实现微服务

GRPC 是Google发布的一个开源、高性能、通用RPC&#xff08;Remote Procedure Call&#xff09;框架。提供跨语言、跨平台支持。以下以一个.NET Core Console项目演示如何使用GRPC框架。 一、定义服务 通过proto定义一个数学计算服务&#xff0c;其中包括两个服务方法&#xff…

范式 第一 第二 第三范式

第一范式&#xff08;每个数据项不可分&#xff09; 如果一个关系模式R的所有属性都是不可分的基本数据项&#xff0c;则R∈1NF&#xff08;即R符合第一范式&#xff09;。 第二范式 &#xff08;没有部分依赖&#xff09; 若关系模式R∈1NF&#xff08;即R符合第一范式&a…

Vue.js2.0开发环境搭建(四)

转载自 vuejs2.0从入门到放弃--入门实例&#xff08;四&#xff09;最近&#xff0c;很多小伙伴有疑惑&#xff0c;想学vuejs必须先了解复杂的构建工具和命令行操作吗&#xff01;&#xff01;答案是否定的&#xff01; 对于很多做前端的同学&#xff0c;涉及到命令行和构建工…

微信小程序父级之间的传值_微信小程序自定义组件封装及父子间组件传值的方法...

首先在我们可以直接写到需要的 page 中&#xff0c;然后再进行抽取组件&#xff0c;自定义组件建议wxzx-xxx命名例如&#xff0c;我们封装的组件名为 **wxzx-loadmorewxzx-loadmore.wxml正在加载{{tip}}这里就是把index.wxml中的需要封装成组件的代码原样copy过来wxzx-loadmore…

[公测]微信小程序设计指南文档

微信小程序开放了。不要在意名额&#xff0c;一定要加大专注度。并保持良好的想法以及意识&#xff0c;扩大认知范围&#xff0c;这样才能占得先机。程序上的事我不懂&#xff0c;设计文档还是有必要看一看。文档并没有讲如何更漂亮。只是从人性化的角度去讲&#xff0c;如何让…

多线程----join插队

package com.kuang.demo05; public class TestJoin implements Runnable {Overridepublic void run() {for (int i 0; i <10 ; i) {System.out.println("VIP线程来插队了&#xff01;&#xff01;&#xff01;"i);}}public static void main(String[] args) thro…

联通 培训 c班还 20190814

看我的ppt是没有很多文字的 文字都在心里 电脑比较旧 可以装一个Linux 还能用 还是装xp把 电脑旧可以在咸鱼上买一个ssd&#xff0c;还能用很久。 Linux 目录每个用户都一样 不可以修改 ps -ef | sudo service sudo 授权 一般都是普通用户 docker 启动就类似模拟…

Vue开源项目库汇总

转载自 Vue开源项目库汇总最近做了一个Vue开源项目库汇总&#xff0c;里面集合了OpenDigg 上的优质的Vue开源项目库&#xff0c;方便移动开发人员便捷的找到自己需要的项目工具等&#xff0c;感兴趣的可以到GitHub上给个star。 UI组件 element ★9305 - 饿了么出品的Vue2的web…

PL/SQL经典练习

/* PL/SQL编程*/--先把scott里面的表弄到test表空间里面来 CREATE TABLE EMP ASSELECT * FROM SCOTT.EMP; CREATE TABLE DEPT ASSELECT * FROM SCOTT.DEPT; /* 上机1 */ --&#xff08;1&#xff09;计算King所交税金DECLARE V_SHUIJIN NUMBER; --应交税金V_SA…

alertmanager 告警恢复_Prometheus配置企业微信告警

kubernetes operator安装的&#xff0c;如果不会可看上一篇文章前提&#xff1a;创建企业微信&#xff0c;创建应用然后配置altermanager.yamlglobal:resolve_timeout: 5m receivers: - name: wechatwechat_configs:- agent_id: "100000x"api_secret: Nm7PRrxxxxG8Ep…

IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API

IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习之保护API。 使用IdentityServer4 来实现使用客户端凭据保护ASP.NET Core Web API 访问。 IdentityServer4 GitHub: https://github.com/IdentityServer/IdentityServer4 IdentityServer 框架支持以下功能&…