Oracle day11

/*create table tbemp --职员表
(
  eid    number(7)    primary key,  --职员编号
  ename  varchar2(20) not null,     --职员姓名
  esex   varchar2(3)  not null check(esex in('男','女')),    
  eage   number       not null check(eage>=18),
  eaddr  varchar2(50) not null,  --职员地址
  etel   varchar2(30) not null,  --职员电话
  eemail varchar2(30)   --职员邮箱
);
-------------------------------------
insert into tbemp (eid,ename,esex,eage,eaddr,etel)
values(1,'陈飞飞','男',22,'广东省广州市棠德小区6栋808号','020-3434123');

insert into tbemp(eid,ename,esex,eage,eaddr,etel)
values(2,'杜娟娟','女',23,'广东省广州市上社村1栋2号','020-34345233');

insert into tbemp (eid,ename,esex,eage,eaddr,etel)
values(3,'刘一刀','男',25,'广东省广州市城市广场606号','020-12344321');

insert into tbemp(eid,ename,esex,eage,eaddr,etel)
values(4,'张小杰','男',27,'广东省深圳4221工厂','0755-9876543');

insert into tbemp (eid,ename,esex,eage,eaddr,etel)
values(5,'阿房女','女',23,'河北小桥市青色路87号','0689-5656564');
------------------------------
create table tbprod
(
  pid    number(7)    primary key,  --商品编号
  ptype  varchar2(20) not null,     --商品类型
  pmark  varchar2(20) not null,     --商品品牌
  pspec  varchar2(30)               --商品规格
);
---------------------------------------
insert into tbprod values(1,'电视机','创维','48英寸等离子电视机');
insert into tbprod values(2,'电视机','创维','56英寸数字电视机');
insert into tbprod values(3,'电视机','创维','32英寸背投');
insert into tbprod values(4,'电视机','熊猫','48英寸等离子电视机');
insert into tbprod values(5,'电视机','熊猫','56英寸数字电视机');

insert into tbprod values(6,'电视机','TCL','32英寸背投');
insert into tbprod values(7,'笔记本','宏基','奔腾双核 T6666');
insert into tbprod values(8,'笔记本','宏基','酷睿2双核 E7500 ');
insert into tbprod values(9,'笔记本','联想','奔腾双核 T6666');
insert into tbprod values(10,'笔记本','联想','酷睿2双核 E7500 ');*/


/*create table tbsales
(
  srno       number(7)  primary key,    --记录编号
  eid        number(7)  not null,   --职员编号
  pid        number(7)  not null,    --商品编号
  pqty       number(7)  not null check(pqty>0),    --销售数量
  pamount    number(7)  not null check(pamount>0),   --销售价值
  sdate date      --销售时间
);
--------------------------------------------
insert into tbsales values(1,1,1,10,21000,to_date('2010-3-12','yyyy-mm-dd'));
insert into tbsales values(2,1,2,5,20000,to_date('2010-3-12','yyyy-mm-dd'));
insert into tbsales values(3,1,4,12,23500,to_date('2010-3-14','yyyy-mm-dd'));
insert into tbsales values(4,1,5,4,16500,to_date('2010-3-14','yyyy-mm-dd'));
insert into tbsales values(5,2,3,3,31000,to_date('2010-3-11','yyyy-mm-dd'));
insert into tbsales values(6,2,6,4,40000,to_date('2010-3-13','yyyy-mm-dd'));
insert into tbsales values(7,3,7,5,40000,to_date('2010-3-13','yyyy-mm-dd'));
insert into tbsales values(8,3,8,3,36000,to_date('2010-3-14','yyyy-mm-dd'));
insert into tbsales values(9,4,9,6,41500,to_date('2010-3-12','yyyy-mm-dd'));
insert into tbsales values(10,4,10,5,50000,to_date('2010-3-14','yyyy-mm-dd'));
insert into tbsales values(11,1,1,10,21000,to_date('2010-4-12','yyyy-mm-dd'));
insert into tbsales values(12,1,2,5,20000,to_date('2010-4-12','yyyy-mm-dd'));
insert into tbsales values(13,1,4,12,23500,to_date('2010-4-14','yyyy-mm-dd'));
insert into tbsales values(14,1,5,4,16500,to_date('2010-4-14','yyyy-mm-dd'));
insert into tbsales values(15,2,3,3,31000,to_date('2010-4-11','yyyy-mm-dd'));
insert into tbsales values(16,2,6,4,40000,to_date('2010-4-13','yyyy-mm-dd'));
insert into tbsales values(17,3,7,5,40000,to_date('2010-4-13','yyyy-mm-dd'));
insert into tbsales values(18,3,8,3,36000,to_date('2010-4-14','yyyy-mm-dd'));
insert into tbsales values(19,4,9,6,41500,to_date('2010-4-12','yyyy-mm-dd'));
insert into tbsales values(20,4,10,5,50000,to_date('2010-4-14','yyyy-mm-dd'));*/


select * from tbemp;
select * from tbprod;
select * from tbsales;
--1.查询24到26岁的职员的姓名,性别:
select ename,esex from tbemp where eage between 24 and 26;

--2.查询家住广州的女职员的姓名,电话,地址:
select ename,etel,eaddr from tbemp where esex = '女' and eaddr like '%广州市%';

--3.查询'陈飞飞','阿房女','张小杰'的电话,地址:
select etel,eaddr from tbemp where ename in ('陈飞飞','阿房女','张小杰');

--4.查询广州和深圳的职员的姓名,性别,年龄:
select ename,esex,eage from tbemp where eaddr like '%广州%'or ename like '%深圳%';

--5.查询所有职员,所有商品的销售情况,包括:职员姓名,商品类别,商品品牌,商品规格,销售数量,销售价值,销售时间,按销售时间从高到低排列
select e.ename,p.ptype,p.pmark,p.pspec,s.pqty,s.pamount,s.sdate from tbsales s left join tbprod p
on s.pid = p.pid left join tbemp e on e.eid = s.eid order by s.sdate desc ;


--6.查询笔记本4月份的销售情况。包括:商品编号、商品品牌、商品规格、销售数量、销售价值,按销售数量从低到高排列
select p.pid,p.pmark,p.pspec,s.pqty, s.pamount,s.sdate from
tbprod p join tbsales s on p.pid = s.pid 
where p.ptype = '笔记本' and extract(month from s.sdate) = 4 order by s.pqty;

--7.查询陈飞飞3月份的销售情况,包括:商品编号、销售数量、销售价值
select p.pid,s.pqty,s.pamount from tbemp e join tbsales s on e.eid = s.eid
join tbprod p on p.pid = s.pid where e.ename = '陈飞飞' and extract(month from s.sdate) = 3;

--8.查询创维56英寸数字电视机的销售情况。包括:销售数量、销售价值、销售时间
select s.pqty,s.pamount,s.sdate from tbsales s 
join tbprod p on p.pid = s.pid where p.pspec = '56英寸数字电视机' and p.pmark = '创维';

--9.查询广州男职员4月份的销售情况。包括:职员姓名、商品类别、商品品牌、商品规格、销售数量、销售价值
select e.ename,p.ptype,p.pmark,p.pspec,s.pqty,s.pamount from 
tbemp e join tbsales s on e.eid = s.eid
join tbprod p on p.pid = s.pid
where e.esex = '男' and eaddr like '%广州市%' and extract(month from s.sdate) = 4;

--10.总共有多少个职员?
select count(*) from tbemp;

--11.创维电视机被销售了多少次?(即总共有几条销售记录)
select count(*) from tbsales s 
join tbprod p on p.pid = s.pid where p.ptype = '电视机' and p.pmark = '创维'

--12.查询笔记本单笔销售价值最高的单笔销售价格:
select max(s.pamount/s.pqty) from tbsales s 
join tbprod p on p.pid = s.pid where p.ptype = '笔记本' 

--13.查询TCL电视机的平均销售价格:
select distinct s.pamount/s.pqty from tbsales s 
join tbprod p on p.pid = s.pid where p.ptype = '电视机' and p.pmark = 'TCL'

--14.查询联想笔记本4月份的销售总额:
select  sum(s.pamount) from tbsales s 
join tbprod p on p.pid = s.pid where p.ptype = '笔记本'
and p.pmark = '联想' and extract(month from s.sdate) = 4

--15.按类型、品牌统计商品的销售总数量:(销售总数量低于20的不统计)
select p.ptype,p.pmark,sum(s.pqty) from tbsales s 
join tbprod p on p.pid = s.pid group by p.ptype,p.pmark
having sum(s.pqty)>=20;

--16.按品牌、规格统计笔记本的平均销售价格:(按销售价格从高到低的顺序显示)
select distinct p.pmark,p.pspec,s.pamount/s.pqty from tbsales s 
join tbprod p on p.pid = s.pid where p.ptype = '笔记本'
order by s.pamount/s.pqty desc;

--17.按姓名统计男职员3月份的销售总额:销售总额低于80000的不统计
select e.ename,sum(s.pamount) from tbemp e join tbsales s on e.eid = s.eid
join tbprod p on p.pid = s.pid where e.esex = '男'-
and extract(month from s.sdate) = 3 
group by e.ename having sum(s.pamount) >= 80000

--18.找出销售总额最高的前三名职员的姓名:
select t.*,rownum from
(select e.ename,sum(s.pamount) amount from tbemp e join tbsales s on e.eid = s.eid
join tbprod p on p.pid = s.pid group by e.ename order by amount desc) t
where rownum < 4;

--19.按姓名统计每个职员一共完成了多少笔销售业务:
select e.ename,sum(s.pqty) pqty from tbemp e join tbsales s on e.eid = s.eid
join tbprod p on p.pid = s.pid group by e.ename;

--20.找出完成销售业务笔数最少的职员的姓名和他完成的业务数:
with t as
(select e.ename,sum(s.pqty) pqty from tbemp e join tbsales s on e.eid = s.eid
join tbprod p on p.pid = s.pid group by e.ename)
select * from t where t.pqty = (select min(pqty) from t)


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

select * from dept_bak;

insert into dept_bak values(50,'科技','北京');
insert into dept_bak values(60,'财务','上海');
savepoint a;
update dept_bak set loc='北京' where deptno=40;
savepoint b;
insert into dept_bak values(70,'组织','广州');
--在该事务提交之前,可以执行rollback 命令全部或部分回滚事务中的操作。语句为: 
rollback to b;--(回滚最后一个insert 操作)
rollback to a;--(回滚后面的 insert 操作和 update操作)
rollback;--(回滚全部操作)
-----------------------------------------------------------------------------

/*CREATE TABLE F216(numb number);
insert into f216 values (1);
insert into f216 values (2);
insert into f216 values (3);
insert into f216 values (4);
insert into f216 values (5);
insert into f216 values (6);
insert into f216 values (7);
insert into f216 values (8);
insert into f216 values (9);*/

--求出每三个或两个不同数相加的和等于10,该如何求解,有多少个解:
select * from f216;


select
((select count(*) from(
select distinct (f1.numb * f2.numb*f3.numb) a from f216 f1 join f216 f2 on f1.numb != f2.numb 
join f216 f3 on f2.numb !=f3.numb where f1.numb!=f3.numb and f1.numb+f2.numb+f3.numb = 10))
+
(select count(*) from(
select distinct abs(f1.numb - f2.numb) from f216 f1 join f216 f2 on f1.numb != f2.numb 
where f1.numb+f2.numb = 10 )) ) from dual;


select 
(select sum(decode(f1.numb+f2.numb,10,1,0))/2 from f216 f1,f216 f2 where f1.numb != f2.numb)
+
(select sum(decode(f1.numb+f2.numb+f3.numb,10,1,0)) from f216 f1,f216 f2 ,f216 f3 
where f1.numb != f2.numb and f2.numb!= f3.numb and f1.numb != f3.numb and f1.numb>f2.numb and f2.numb>f3.numb )
from dual;

--最优解
select
(select count(*) from F216 f1 
join F216 f2 on f1.numb>f2.numb
where f1.numb+f2.numb=10 )
+
(select count(*) from F216 f1 
join F216 f2 on f1.numb>f2.numb
join F216 f3 on f2.numb>f3.numb
where f1.numb+f2.numb+f3.numb=10)
from dual;

delete from emp_bak;
update dept_bak set loc = '潍坊';
select * from v$lock;

-------------------检查Oracle数据库是否存在死锁-------------------
SELECT l.session_id sid
  ,s.serial#
  ,l.locked_mode 锁模式
  ,s.status 会话状态
  ,o.object_name 被锁对象名
  ,l.oracle_username 登录用户
  ,l.os_user_name 机器用户名
  ,s.machine 机器名
  ,s.terminal 终端用户名
  ,s.logon_time 登录数据库时间
FROM v$locked_object l,all_objects o,v$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid
ORDER BY sid,s.serial#;

------------------------杀死用户----------------------
alter system kill session '35,3453';


----------------------查看sql执行时间----------------------------
select *
from(
  select
    sa.SQL_TEXT "执行 SQL",
    sa.EXECUTIONS "执行次数",
    round(sa.ELAPSED_TIME / 1000000, 2) "总执行时间",
    round(sa.ELAPSED_TIME / 1000000 / sa.EXECUTIONS, 2) "平均执行时间",
    sa.COMMAND_TYPE,
    sa.PARSING_USER_ID "用户ID",
    u.username "用户名",
    sa.HASH_VALUE
  from v$sqlarea sa
  left join all_users u
  on sa.PARSING_USER_ID = u.user_id
  where sa.EXECUTIONS > 0
  order by (sa.ELAPSED_TIME / sa.EXECUTIONS) desc)
where rownum <= 50;
------------------------------------------------------------------------
/*CREATE TABLE f16(
xd_time date
,user_name varchar2(10));
insert into f16 values (to_date('20170101 22:01:23','yyyyMMdd hh24:mi:ss'),'张三');
insert into f16 values (to_date('20170102 14:20:02','yyyyMMdd hh24:mi:ss'),'张三');
insert into f16 values (to_date('20170102 23:13:55','yyyyMMdd hh24:mi:ss'),'李四');
insert into f16 values (to_date('20170102 23:51:20','yyyyMMdd hh24:mi:ss'),'李四');
insert into f16 values (to_date('20170103 23:07:15','yyyyMMdd hh24:mi:ss'),'李四');*/

select * from f16;
--7.根据如下订单表,按购买时间统计出每天的新客人数和老客人数:
/*
名词定义如下:
新客:当天有购买,且之前没有购买的人为新客,新客人数+1;
老客:当天有购买,且之前也有购买的人为老客,老客人数+1;
此题的考察点有窗口函数的使用以及case when的语法:
*/


select distinct t."date",sum(t.新客人数)over(partition by t."date" order by 新客人数) 新客人数,
sum(t.旧客人数)over(partition by t."date" order by 旧客人数) 旧客人数
from(select to_char(xd_time,'yyyy-MM-dd') as "date",decode(times,1,1,0) 新客人数,
case when times>1 then 1 else 0 end 旧客人数
from(select xd_time,user_name,row_number()over(partition by user_name order by xd_time) times from f16 ) )t order by t."date";

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

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

相关文章

比较(四)利用python绘制平行坐标图

比较&#xff08;四&#xff09;利用python绘制平行坐标图 平行坐标图&#xff08;Parallel coordinate plot&#xff09;简介 平行坐标图可以显示多变量的数值数据&#xff0c;最适合用来同一时间比较许多变量&#xff0c;并表示它们之间的关系。缺点也很明显&#xff0c; 不…

自己只能跑llama3-8b模型,告诉你一个免费使用llama3-70b的方法

我们前期介绍了Llama 3大模型&#xff0c;以及本地部署了Llama 3 8b模型&#xff0c;但是想体验一下llama3-70b的模型的话&#xff0c;需要很大的计算资源&#xff0c;且要求极高的内存。llama3-8b的模型约4.7G &#xff0c;而llama3-70b的模型约40G&#xff0c;若想在自己的电…

Servlet常用类剖析

通过继承HttpServlet实现Servlet程序 实际开发中&#xff0c;一般使用继承HttpServlet类的方法去实现Servlet程序。 步骤&#xff1a; 1、编写一个类去继承HttpServlet类 2、根据业务需要重写doGet或doPost方法 3、到web.xml中配置Servlet程序 1、编写一个类&#xff0c;Altin…

Spring整合CXF,发布RSETful 风格WebService

import javax.ws.rs.core.MediaType; import com.hoo.entity.MapBean; import com.hoo.entity.User; import com.hoo.entity.Users; /* 注释&#xff08;Annotation&#xff09;&#xff1a;在 javax.ws.rs.* 中定义&#xff0c;是 JAX-RS (JSR 311) 规范的一部分。 Path…

【蓝队小WIKI】攻防演练中防守方重点知识点整理

一、蓝队防守策略&#xff1a; 工作流程概述 Hvv蓝队技战法&#xff1a;Hvv蓝队技战法 - FreeBuf网络安全行业门户 3个阶段&#xff0c;4大要点&#xff0c;蓝队防守全流程纲要解读&#xff1a;攻防演练合集 | 3个阶段&#xff0c;4大要点&#xff0c;蓝队防守全流程纲要解读 -…

oracle 11g rac安装grid 执行root脚本add vip -n 。。。on node= ... failedFailed 错误处理

问题&#xff1a; CRS-4402: The CSS daemon was started in exclusive mode but found an active CSS daemon on node racdg1-1, number 1, and is terminating An active cluster was found during exclusive startup, restarting to join the cluster PRCN-2050 : The requ…

js小题:通过字符串执行同名变量怎么做

在JavaScript中&#xff0c;你不能直接使用一个字符串来直接引用一个变量&#xff0c;因为JavaScript是一种静态类型语言&#xff08;尽管它的类型在运行时可以变化&#xff09;&#xff0c;变量的名字在编译时就被确定了。但是&#xff0c;有几种方法可以实现类似的功能&#…

构建LangChain应用程序的示例代码:41、如何结合使用大型语言模型(LLMs)和 bash 进程来执行简单的文件系统命令指南

Bash 命令链使用指南 概述 本指南展示了如何结合使用大型语言模型&#xff08;LLMs&#xff09;和 bash 进程来执行简单的文件系统命令。 代码示例 from langchain_experimental.llm_bash.base import LLMBashChain from langchain_openai import OpenAI# 初始化 OpenAI 的…

k8s部署grafana beyla实现app应用服务依赖图可观测

k8s部署grafana beyla OS: Static hostname: test Icon name: computer-vm Chassis: vm Machine ID: 22349ac6f9ba406293d0541bcba7c05d Boot ID: 83bb7e5dbf27453c94ff9f1fe88d5f02 Virtualization: vmware Operating System: Ubuntu 22.04.4 LTS Kernel: Linux 5.15.0-105-g…

BEVM基于OP-Stack发布首个以WBTC为GAS连接以太坊和比特币生态的中继链

为了更好的连接以太坊和比特币生态&#xff0c;BEVM团队正在基于OPtimism的OP Stack来构建一个以WBTC为GAS兼容OP-Rollup的中继链&#xff0c;这条中继链将作为一种完全去中心化的中间层&#xff0c;把以太坊上的主流资产(WBTC/ ETH/USDC/USDT等)引入到BEVM网络。 不仅如此&am…

AlgorithmStar 度量 计算组件

AlgorithmStar 度量 计算组件 AlgorithmStar 本文将会基于 AlgorithmStar 1.40 以及以上的版本来演示&#xff0c;度量 计算 组件 的使用&#xff01; 目录 文章目录 AlgorithmStar 度量 计算组件目录获取到依赖库度量计算组件 计算实例距离计算代表 - 欧几里德距离计算组件…

Redis数据库(一):Redis数据库介绍与安装

Redis是一种高性能的开源内存数据库&#xff0c;支持多种数据结构&#xff08;如字符串、列表、集合等&#xff09;&#xff0c;具有快速的读写速度。它提供持久化、主从复制、高可用性和分布式部署等功能&#xff0c;适用于缓存、实时分析、消息队列等应用场景。Redis使用简单…

UE5 场景物体一键放入蓝图中

场景中&#xff0c;选择所有需要加入到蓝图的模型或物体。 点击 蓝图按钮&#xff0c;点击“将选项转换为蓝图” 在创建方法中&#xff0c;选择“子Actor”或着 “获取组件” 如果需要保持相对应的Actor的父子级别&#xff08;多层&#xff09;&#xff0c;那么选择“获取组件…

计算机组成原理 | 数据的表示、运算和校验(4)基本运算方法

补码加减&#xff08;运算与控制&#xff09; (-Y)补 [Y补]变补&#xff0c;这个要好好理解 (-Y)补&#xff1a;先将Y的符号位置反&#xff0c;在求-Y的补码&#xff08;数字为变反加1&#xff09; [Y补]变补&#xff1a;先求Y的补码&#xff08;数字为变反加1&#xff09;&…

protobuf实践+生成C++代码的解析

目录 1.实践1&#xff08;简单使用&#xff09; 2.实践2&#xff08;存储列表类数据&#xff09; 3.实践3&#xff08;定义RPC方法&#xff09; 4.解析protobuf的message类 5.解析protobuf的service类 6.Rpcchannel是什么呢&#xff1f; 1.实践1&#xff08;简单使用&…

Django中,update_or_create()

在Django中&#xff0c;可以使用update_or_create()方法来更新现有记录或创建新记录。该方法接受一个字典作为参数&#xff0c;用于指定要更新或创建的字段和对应的值。 update_or_create()方法的语法如下&#xff1a; 代码语言&#xff1a;python obj, created Model.obje…

python遍历文件夹中所有图片

python遍历文件夹中的图片-CSDN博客 这个是之前的版本&#xff0c;现在这个版本会更好&#xff0c;直接进来就在列表中 path glob.glob("1/*.jpg")print(path)print(len(path))path_img glob.glob("1/*.jpg")path_img.extend(path)print(len(path_img))…

问题解决:数据库自增id到最大报错

pgsql数据库id自增到长度问题&#xff1a; django.db.utils.DataError: nextval: reached maximum value of sequence "ip_prefix_info_id_seq" (32767) schema_name: ip_management_app table_name: ip_prefix_info # 先把自增id改到serial8&#xff0c;范围改大#…

行列视(RCV)在系统管理中的应用:解决生产型企业数据治理的挑战

行列视&#xff08;RCV&#xff09;作为一款面向生产型企业的综合性数据应用系统&#xff0c;在系统管理中扮演着至关重要的角色&#xff0c;特别是在解决生产型企业数据治理的挑战方面&#xff0c;表现出了卓越的性能。 首先&#xff0c;生产型企业面临着复杂而繁琐的数据治理…

学期结束如何发布期末成绩?

当期末的试卷最后一张被收起&#xff0c;当教室里的喧嚣逐渐沉寂&#xff0c;学生们的心中充满了对成绩的期待与忐忑。期末成绩&#xff0c;关乎着学生的心情&#xff0c;更关系到他们的未来学习动力。那么&#xff0c;如何在保护学生隐私的同时&#xff0c;高效地公布成绩呢&a…