Oracle day9


------------------------------------------------------------------------------------
--创建用户
create user test1 identified by 123456;
create user ZJun identified by 888888;
--授予权限
grant create session to test1;
grant create  session to ZJun;
--删除用户
drop user test1;
drop user ZJun;

--修改用户
alter user test1 identified by 654321;
alter user ZJun identified by 666666;

alter user test1 identified by 123456;


------------------------------------------------------------------------------------
/*CREATE TABLE G1212(   
X INT,   
L VARCHAR2(10)) ; 
INSERT INTO G1212 VALUES(1, 'A');
INSERT INTO G1212 VALUES(2, 'A');
INSERT INTO G1212 VALUES(3, 'A');
INSERT INTO G1212 VALUES(4, 'A');
INSERT INTO G1212 VALUES(5, 'B');
INSERT INTO G1212 VALUES(6, 'B');
INSERT INTO G1212 VALUES(7, 'B');
INSERT INTO G1212 VALUES(8, 'A');
INSERT INTO G1212 VALUES(9, 'A');*/

select t.l,min(t.x)||'-'||max(t.x) r from
(select l,X,(X-row_number()over(partition by l order by x)) r from G1212) t
group by t.l,t.r order by t.l ;

------------------------------------------------------------------------------------


--系统权限
--查看当前用户系统权限列表
select * from user_sys_privs;
--授权系统权限
grant create session to test1;
--传递系统权限
grant create view to ZJun with admin option; 
--连接ZJun执行下面
grant create view to test1;
--回收系统权限
revoke create view from test1;

--对象权限
--授权对象权限
grant all on scott.emp to test1;
--连接到test1执行查询语句
select * from scott.emp;

--传递对象权限
grant all on scott.dept to ZJun with grant option;
--连接到ZJun
select * from scott.dept;
grant all on scott.dept to test1;
--连接到test1
select * from scott.dept;

--回收对象权限
revoke all on scott.dept from ZJun;
revoke all on scott.emp from test1;

--角色:一系列相关权限的集合
--查看当前登录用户所拥有的角色
select * from role_sys_privs;

-- connect: create sesion
grant create session to test1; --授予权限
grant connect to test1;  --授予角色
--DBA:包含所有系统权限
grant DBA to ZJun;
--resourse:一系列开发权限
grant RESOURCE to ZJun;

--自定义角色
create role role1;
grant create session,create table,create view to role1;
grant role1 to ZJun;

--回收角色
revoke DBA,RESOURCE from ZJun;
--删除角色:drop role 角色名
drop role role1;
------------------------------------------------------------------------------------

--创建表
/*create table cartoon(
name char(50) default '西游记',
role char(50) default '孙悟空',
role_age number(3) default 500
);*/
select * from cartoon;
/*insert into cartoon values('喜羊羊与灰太狼','懒羊羊',12);
insert into cartoon values('大耳朵图图','胡图图',6);
insert into cartoon values('大头儿子和小头爸爸','大头儿子',3);
insert into cartoon(name,role) values('西游记','孙悟空');*/

comment on table cartoon is '动画片';
comment on column cartoon.name is '名字';
comment on column cartoon.role is '主角';
comment on column cartoon.role_age is '主角年龄';

comment on table emp is '员工信息表';
comment on column emp.ename is '姓名';
comment on column emp.empno is '编号';
comment on column emp.job is '职位';
comment on column emp.hiredate is '入职日期';
comment on column emp.sal is '薪资';
comment on column emp.comm is '奖金';
comment on column emp.deptno is '所属部门';
comment on column emp.mgr is '上级编号';

comment on table dept is '部门表';
comment on column dept.dname is '部门名称';
comment on column dept.deptno is '部门编号';
comment on column dept.loc is '所在地区';

create table c_bak as select * from cartoon;
select * from c_bak;

------------------------------------------------------------------------------------

drop table reader;
create table book(
       no number primary key,
       title char(500),
       author char(50),
       publish char(500),
       pub_date date,
       price number
);
select * from book;
/*insert into book 
values(100001,'Oracle 9i 数据库系统管理','李代平',
'冶金工业出版社',to_date('2003-01-01','yyyy-MM-dd'),38);
insert into book 
values(100002,'Oracle 9i 中文版入门与提高','赵松涛',
'人民邮电出版社',to_date('2002-07-01','yyyy-MM-dd'),35);
insert into book 
values(100003,'Oracle 9i 开发指南:PL/SQL 程序设计','Joan Casteel',
'电子工业出版社',to_date('2004-04-03','yyyy-MM-dd'),49);
insert into book 
values(100004,'数据库原理辅助与提高','盛定宇',
'电子工业出版社',to_date('2004-03-01','yyyy-MM-dd'),34);
insert into book 
values(100005,'Oracle 9i 中文版实用培训教程','赵伯山',
'电子工业出版社',to_date('2002-01-01','yyyy-MM-dd'),21);
insert into book 
values(100006,'Oracle 8 实用教程','翁正科等',
'电子工业出版社',to_date('2003-07-08','yyyy-MM-dd'),38);*/

create table reader(
    rno number primary key,
    rname char(50)
);
select * from reader;
/*insert into reader values(200001,'张三');
insert into reader values(200002,'李凤');
insert into reader values(200003,'孟欣');
insert into reader values(200004,'谢非');
insert into reader values(200005,'刘英');*/
drop table borrow;
create table borrow(
       no number references book(no),
       rno number references reader(rno),
       borrow_date date 
);
select * from borrow;
/*insert into borrow values(100001,200001,
to_date('2004-04-08 10:06:14','yyyy-MM-dd hh24:mi:ss'));
insert into borrow values(100002,200002,
to_date('2004-04-08 10:06:27','yyyy-MM-dd hh24:mi:ss'));
insert into borrow values(100003,200003,
to_date('2004-04-08 10:06:36','yyyy-MM-dd hh24:mi:ss'));
insert into borrow values(100004,200004,
to_date('2004-04-08 10:06:48','yyyy-MM-dd hh24:mi:ss'));
insert into borrow values(100005,200005,
to_date('2004-04-08 10:06:58','yyyy-MM-dd hh24:mi:ss'));*/
select * from book,reader,borrow where book.no = borrow.no
and reader.rno = borrow.rno;

------------------------------------------------------------------------------------


drop table "Employee";
create table "Employee"(
       "EmplID" varchar(4) primary key not null,
       "EmplName" varchar(12) not null,
       "Sex" varchar(3) not null,
       "Birthday" date not null,
       "Address" varchar(30),
       "Wages" number not null,
       "DeptID" varchar(4) references "Department"("DeptID")
);

select * from "Employee";

comment on table "Employee" is 'Employee表';
comment on column "Employee"."EmplID" is '员工号';
comment on column "Employee"."EmplName" is '姓名';
comment on column "Employee"."Sex" is '性别';
comment on column "Employee"."Birthday" is '出生日期';
comment on column "Employee"."Address" is '地址';
comment on column "Employee"."Wages" is '工资';
comment on column "Employee"."DeptID" is '部门号';

------------------------------------------------------------------------------------

drop table "Department";
create table "Department"(
       "DeptID" varchar(4) primary key not null,
       "DeptName" varchar(30) not null
);
select * from "Department";

comment on table "Department" is 'Department表';
comment on column "Department"."DeptID" is '部门号';
comment on column "Department"."DeptName" is '部门名称';

------------------------------------------------------------------------------------

CREATE TABLE F801(
    日期 DATE,
    类型 VARCHAR2(10),
    金额 number
);
/*INSERT INTO F801 VALUES (to_date('2021-01-01','yyyy_mm_dd'),'借款',100);
INSERT INTO F801 VALUES (to_date('2021-01-31','yyyy_mm_dd'),'借款',-50);
INSERT INTO F801 VALUES (to_date('2021-01-20','yyyy_mm_dd'),'还款',50);
INSERT INTO F801 VALUES (to_date('2021-01-23','yyyy_mm_dd'),'还款',-20);
INSERT INTO F801 VALUES (to_date('2021-02-01','yyyy_mm_dd'),'借款',100);
INSERT INTO F801 VALUES (to_date('2021-02-28','yyyy_mm_dd'),'借款',-50);
INSERT INTO F801 VALUES (to_date('2021-02-20','yyyy_mm_dd'),'还款',50);
INSERT INTO F801 VALUES (to_date('2021-02-23','yyyy_mm_dd'),'还款',-20);
INSERT INTO F801 VALUES (to_date('2021-03-01','yyyy_mm_dd'),'借款',100);
INSERT INTO F801 VALUES (to_date('2021-03-31','yyyy_mm_dd'),'借款',-50);
INSERT INTO F801 VALUES (to_date('2021-03-20','yyyy_mm_dd'),'还款',50);
INSERT INTO F801 VALUES (to_date('2021-03-23','yyyy_mm_dd'),'还款',-20);*/

select * from F801;
---错解
/*
with tt as (select * from (select t.月份,t.类型,sum(t.金额) from(
select to_char(f.日期,'yyyy')||'-'||to_char(f.日期,'MM') as 月份,f.类型,f.金额,
sum(金额)over(partition by extract(month from 日期),f.类型 order by 金额 ) 
from F801 f )t group by t.月份,t.类型 order by t.月份))


select tt.月份,max(decode(tt.类型,借款,tt.借款金额,0)) from 
(select * from (select t.月份,t.类型,sum(t.金额) from(
select to_char(f.日期,'yyyy')||'-'||to_char(f.日期,'MM') as 月份,f.类型,f.金额,
sum(金额)over(partition by extract(month from 日期),f.类型 order by 金额 ) 
from F801 f )t group by t.月份,t.类型 order by t.月份)) tt;
select* from f801;
*/


select t.月份,t.借款 as 借款金额, t.还款 as 还款金额,sum(t.借款)over(order by t.月份) as 累计借款,
sum(t.还款)over(order by t.月份) as 累计还款 from(
select to_char(f.日期,'yyyy-MM') as 月份,
sum(decode(f.类型,'借款',f.金额,0)) 借款,sum(decode(f.类型,'还款',f.金额,0)) 还款
from F801 f group by to_char(f.日期,'yyyy-MM')) t group by t.月份,t.借款,t.还款;

select t.月份,t.借款 as 借款金额,t.还款 as 还款金额,sum(t.借款)over(order by t.月份) as 累计借款,
sum(t.还款)over(order by t.月份) as 累计还款 
from (select to_char(日期,'yyyy-MM') as 月份,sum(借款) as 借款,sum(还款) as 还款 from f801
pivot(sum(金额) for 类型 in ('借款' as 借款,'还款' as 还款))group by to_char(日期,'yyyy-MM') ) t;

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

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

相关文章

迈向百亿亿次人工智能数据基础设施

对我来说,在MinIO已经一个多星期了。沉浸在白板会议、架构审查和客户电话中的最大收获是,产品的简单性既是其显着特征,也是其最具决定性的价值驱动因素之一。在规模上尤其如此。由于人工智能的进步,计算能力的爆炸性增长对数据格局…

ArkUI 开发学习随记——登陆界面,正圆头像,主页顶部,列表项案例源码

目录 案例一:登录界面 案例二:正圆头像,胶囊按钮 案例三:主页顶部 案例四:列表项 案例一:登录界面 代码: build() {Column({space:10}){Image($r("app.media.naxida")).width(100)…

什么是N卡和A卡?有什么区别?

名人说:莫听穿林打叶声,何妨吟啸且徐行。—— 苏轼《定风波莫听穿林打叶声》 本篇笔记整理:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、什么是N卡和A卡?有什么区别?…

福州大学 2022~2023 学年第 1 学期考试 A 卷压轴题参考答案

题目: 定义一个抽象类Structure(含有纯虚函数type函数,用以显示当前结构的类型; 含有show函数), 在此基础上派生出Building类, 用来存储一座楼房的层数、房间数以及它的总平方米数。 建立派生 类House&am…

[Django学习]查询过滤器(lookup types)

1.exact exact用于精确匹配字段的值。适用于需要精确查找某个字段值的场景。 Book.objects.filter(title__exactHarry Potter) 上面的查询会查找标题完全为“Harry Potter”的书籍。 2.iexact iexact忽略大小写地精确匹配字段的值。适用于需要忽略大小写进行精确匹配的场…

已解决java.security.acl.AclNotFoundException异常的正确解决方法,亲测有效!!!

已解决java.security.acl.AclNotFoundException异常的正确解决方法,亲测有效!!! 目录 问题分析 出现问题的场景 报错原因 解决思路 解决方法 分析错误日志 检查ACL文件路径和名称 确认系统权限 修改代码逻辑 确保ACL文…

安卓浏览器区分启动、打开、分享

搞了几个钟头,终于全兼容了,分享有2种类型! void getDataFromIntent(Intent intent) {if (intent.getAction().equals(Intent.ACTION_VIEW)) {urln intent.getDataString();if (urln ! null) {if (urln.contains("\n"))urln url…

数据分析方法之对比思维

数据分析方法论 对比分析是将两个或两个以上具有可比性的数据进行比较,分析其中的差异,以揭示事物的发展规律。 数据分析之对比思维 归纳方法——穆勒五法:分别是求同法、求异法、共用法、共变法、剩余法。求同法:比相同 2.1求…

利用 Python 和 AI 技术制作智能问答机器人

利用 Python 和 AI 技术制作智能问答机器人 引言 在人工智能的浪潮下,智能问答机器人成为了一种非常实用的技术。它们能够处理大量的查询,提供即时的反馈,并且可以通过机器学习技术不断优化自身的性能。本文将介绍如何使用 Python 来开发一…

现在这个行情,又又又要开始准备面试了~~

亲爱的程序员朋友们: 这些资料曾经帮助过许多有志之士顺利拿下抖音、快手、阿里等大厂的Offer,现在也希望它们能为你的面试旅程助力! 关注【程序员世杰】回复【1024】惊喜等你来拿! 截图 关注【程序员世杰】回复【1024】惊喜等你来拿&#xf…

python入门基础知识(错误和异常)

本文部分内容来自菜鸟教程Python 基础教程 | 菜鸟教程 (runoob.com) 本人负责概括总结代码实现。 以此达到快速复习目的 目录 语法错误 异常 异常处理 try/except try/except...else try-finally 语句 抛出异常 用户自定义异常 内置异常类型 常见的标准异常类型 语法…

数据结构---二叉树前中后序遍历

1. 某完全二叉树按层次输出(同一层从左到右)的序列为 ABCDEFGH 。该完全二叉树的前序序列为() A: ABDHECFG B: ABCDEFGH C: HDBEAFCG D: HDEBFGCA 2. 二叉树的先序遍历和中序遍历如下:先序遍历: EFHIGJK; 中序遍历: HFIEJKG. 则二叉…

exe4j使用笔记(jar包转exe工具)

文章目录 配置项1. Welcome2. Project type3. Application info4. Executable info5. Java invocation6. JRE7. Splash screen8. Messages9. Compile executable10. Finished 其他下载地址(官网地址??) 配置项 总共10个配置项。 1. Welcome 略(不用填) 2. Project type …

Unit redis-server.service could not be found.

我的报错如下Unit redis-server.service could not be found. 关键是刷新后台服务 sudo systemctl daemon-reload启动redis-server sudo systemctl start redis-server查看redis-Server服务状态 sudo systemctl status redis-server

MySQL数据库中的索引知识

MySQL数据库中索引的作用是用来加快数据的查询速度。 索引 index(表的层面) 在数据库中使用select来查询数据的时候会一条一条得去查询符合要求的数据,而索引就相当于在这张表中依据某一个字段的数值给这张表的数据创建了一个目录。目录帮…

江协科技51单片机学习- p11 静态数码管显示

前言: 本文是根据哔哩哔哩网站上“江协科技51单片机”视频的学习笔记,在这里会记录下江协科技51单片机开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技51单片机教学视频和链接中的内容。 引用: 51单片机入门教程-2…

如何处理Android应用程序的内存泄漏

如何处理Android应用程序的内存泄漏 在Android开发中,内存泄漏是一个常见且重要的问题。当应用程序不再需要某些对象时,但由于某种原因这些对象仍然被引用,导致它们不能被垃圾回收器(Garbage Collector)回收&#xff…

Cesium中的线性代数和计算机图形学知识介绍

目录 前言1.基础介绍1.1 线性代数1.1.1 向量 (Vectors)1.1.2 矩阵 (Matrices)1.1.3 四元数 (Quaternions) 1.2 计算机图形学1.2.1 投影变换 (Projection Transformations)1.2.2 视图变换 (View Transformations)1.2.3 模型变换 (Model Transformations)1.2.4 光照与着色 (Light…

Java 面试题:强引用、软引用、弱引用、幻象引用有什么区别?

在 Java 中,理解不同类型引用的区别对于掌握内存管理和垃圾回收机制是至关重要的。强引用、软引用、弱引用和幻象引用分别提供了不同的对象引用强度,使开发者能够精细控制对象的生命周期和内存使用情况。 强引用(Strong Reference&#xff09…

rapidjson使用中crash问题分析

问题 在使用rapidjson时,使用Document的Parse方法解析json字符串,程序crash。 分析 可以参考https://github.com/Tencent/rapidjson/issues/1269,由于rapidjson的内存分配器默认认为内存分配成功,没有对分配后做判空判断&#…