Oracle SQL 面试题

Oracle 面试题及答案整理,最新面试题 根据数据特性选择适合的分区类型,如范围分区(Range)、列表分区(List)、散列分区(Hash)或复合分区(Composite)。自动存储管理(ASM)是Oracle提供的一种数据库文件系统和磁盘管理器,用于简化数据库文件的布局和管理。触发器是Oracle数据库中的一个特殊类型的存储过程,它在特定数据库操作发生时自动执行。数据泵(Data Pump)是Oracle数据库的一种工具,用于高效的数据导入和导出。索引是一个单独的数据结构(通常是B-Tree),可以快速访问表中的特定信息,减少全表扫描的需要。 阅读详情

 

1、关于group by表内容:

   2005-05-09 胜
   2005-05-09 胜
   2005-05-09 负
   2005-05-09 负

   2005-05-10 胜
   2005-05-10 负
   2005-05-10 负

   如果要生成下列结果, 该如何写sql语句?

               胜 负
   2005-05-09 2 2
   2005-05-10 1 2

创建过程如下:

create table tmp(rq varchar(10),shengfu nchar(1));

insert into tmp values('2005-05-09','胜');
insert into tmp values('2005-05-09','
胜
');
insert into tmp values('2005-05-09','
负
');
insert into tmp values('2005-05-09','
负
');
insert into tmp values('2005-05-10','
胜
');
insert into tmp values('2005-05-10','
负
');
insert into tmp values('2005-05-10','
负');

方法一:利用子查询

select a.rq,a.胜,b.负 from 
(select rq,count(shengfu) as 胜 from tmp where shengfu='胜' group by rq) a,
(select rq,count(shengfu) as 负 from tmp where shengfu='负' group by rq) b
   where a.rq=b.rq

方法二:高级查询---使用case表达式

case表达式可以在sql中实现if-then-else型的逻辑,而不用去使用PL/SQL。case工作方式与decode类似,但是我们应该使用case,因为它与ansi兼容。

有两种类型的case表达式

a 简单case表达式,使用case表达式确定返回值

b 搜索case表达式,使用条件确定返回值

select rq,sum(case when shengfu='胜' then 1 else 0 end) as 胜,

       sum(case when shengfu='负' then 1 else 0 end) as 负
from tmp 
group by rq

方法三:通过表的内连接与子查询联合实现,可以说是另一种方式,思想类似于方法一。

   select a.rq,a.胜,b.负 from
   (select rq,count(shengfu) 胜 from tmp where shengfu='胜'group by rq) a innerjoin
   (select rq,count(shengfu) 负 from tmp where shengfu='负'group by rq) b

    on a.rq=b.rq


2.表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。

create table tmp2(a int,b int ,c int);

insert into tmp values(10,20,30);

insert into tmp values(5,20,30);

insert into tmp values(10,7,30);

select (case when a>b then a else b end),(case when b>c then b else c end) from tmp2;


3.一个日期判断的sql语句

请取出tab5表中日期(SendTime字段)为当天的所有记录?(SendTime字段为datetime型,包含日期与时间)

select * from table t where to_char(t.SendTime,'yyyy-mm-dd')=to_char(sysdate,'yyyy-mm-dd')

此题关键在于转换sendtime字段的格式,转换成日期格式。

4.有一张表,里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询出这三条记录并按以下条件显示出来(并写出您的思路):  
   大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。  
       显示格式:  
       语文              数学                英语  
       及格              优秀                不及格    
-------------------------------------------------------------------------------------------
select 
(case when语文>=80 then '优秀' when语文>60 then '及格' else '不及格' end) as 语文,
(case when 数学>=80 then '优秀' when数学>60 then '及格' else '不及格' end) as数学,
(case when英语>=80 then '优秀' when英语>60 then '及格' else '不及格' end) as 英语
from table

想到利用case表达式是关键。


5.请用一个sql语句得出结果
从table1,table2中取出如table3所列格式数据 


table1

月份mon 部门dep   业绩yj
-------------------------------
一月份      01        10
一月份      02        10
一月份      03         5
二月份      02         8
二月份      04         9
三月份      03         8

table2

部门dep      部门名称depname


      01      国内业务一部
      02      国内业务二部
      03      国内业务三部
      04      国际业务部

table3 (result)

部门dep     一月份      二月份      三月份


      01      10        null         null
      02      10         8           null
      03      5          null          8
      04      null      9           null


1)
select t.depname,
(select yj from table1 where mon='一月份' and dep=t.dep) 一月份,
(select yj from table1 where mon='二月份' and dep=t.dep) 二月份,
(select yj from table1 where mon='三月份' and dep=t.dep) 三月份
from table1 t


2)求总销售额
select 
sum
(case when t1.mon='一月份' then t1.yj else 0 end) 一月份,
sum(case when t1.mon='二月份' then t1.yj else 0 end) 二月份,
sum(case when t1.mon='三月份' then t1.yj else 0 end) 三月份
from tab7 t,tab6 t1 where t.dep=t1.dep

6.一个表中的Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数。

select
 id,count(*) from tab8 group by id having count(*)>1

select * from (select tab8,count(id) as num from tab8 group by id) t where t.num>1


7.用一条SQL语句 查询出每门课都大于80分的学生姓名

name   kecheng   fenshu 
张三     语文       81
张三     数学
       75
李四     语文
       76
李四     数学
       90
王五     语文
       81
王五     数学
       100
王五     英语
       90

a): 
select distinct name from tab9 where name not in (select distinct name from tab9 where fengshu<=80)

b): select * from tab9 t7 where t7.name not in (select t5.name from (select * from (select t1.kecheng from tab9 t1 group by t1.kecheng),(select t2.name fromtab9 t2 group by t2.name)) t4,(select * from tab9) t5 where t4.name = t5.name and t4.kecheng = t5.kecheng and t5.fengshu < 80)


8.一个叫department的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球对,现在四个球对进行比赛,用一条sql语句显示所有可能的比赛组合.

select t.bh||'vs'||t1.bh from tab10 t,tab10 t1 where t.bh<>t1.bh这个是分主客场的

select t.bh||'vs'||t1.bh from tab10 t,tab10 t1 where t.bh<>t1.bh and t.bh>t1.bh这个是不分的

9.怎么把这样一个表儿
year   month amount
1991   1     1.1
1991   2     1.2
1991   3     1.3
1991   4     1.4
1992   1     2.1
1992   2     2.2
1992   3     2.3
1992   4     2.4
查成这样一个结果
year m1   m2   m3   m4
1991 1.1 1.2 1.3 1.4
1992 2.1 2.2 2.3 2.4 

a):
select t.year,
(select a.amout from tab11 a where a.month=1 and a.year=t.year) m1, 
(select b.amout from tab11 b where b.month=2 and b.year=t.year) m2,
(select c.amout from tab11 c where c.month=3 and c.year=t.year) m3,
(select d.amout from tab11 d where d.month=4 and d.year=t.year) m4
from tab11 t group by t.year

10.拷贝表(拷贝数据,源表名:a 目标表名:b) 

SQL: insert into b(a, b, c) select d,e,f from b;

create table test as select * from dept; --从已知表复制数据和结构   

create table test as select * from dept where 1=2; --从已知表复制结构但不包括数据  



11.显示文章、提交人和最后回复时间 

select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b 


13.两张关联表,删除主表中已经在副表中没有的信息 
delete from
 fubiao a where a.fid not in(select id from zhubiao)
14.有两个表tab12和tab13,均有key和value两个字段,如果tab13的key在tab12中也有,就把tab13的value换为tab12中对应的value

update tab13 set value=(select value from tab12 where tab12.key=tab13.key)

从零到一:R与RStudio的安装与配置全攻略 本文提供了R与RStudio的完整安装与配置指南,涵盖Windows、Mac和Linux三大操作系统。从基础环境搭建到高级性能优化,详细介绍了R语言安装、RStudio配置、项目管理和实用技巧,帮助数据科学初学者快速搭建高效的分析工作环境。 阅读详情

相关推荐

别再为授权费头疼了!手把手教你免授权搞定西门子、马扎克等12种主流数控机床的数据采集

本文提供了一套免授权采集西门子、马扎克等12种主流数控机床数据的实战指南,帮助中小型机加工车间节省80%以上的采集成本。通过TCP/UDP协议逆向工程和跨平台数据整合,实现经济、灵活且可持续的数据采集方案,涵盖设备兼容性处理、数据频率优化等关键问题。

weixin_26873711的博客 709

oracle常见面试题

初始化的情况下,serv表的serv_id,prod_id,user_type字段是已知的,terminal_name字段是空的,现在主要根据prod_id,user_type字段的值来更新terminal_name字段。用户资料表:serv( serv_id number(10), pro_id number(10), user_type varchar2(30), terminal_name varchar2(30) )其中,serv_id 为用户标识,是serv表的主键,prod_id为产品标识;

2301_77822280的博客 5031

大数据之父_BIM先驱Charles (Chuck) M. Eastman逝世——致敬“BIM之父”

原标题:BIM先驱Charles (Chuck) M. Eastman逝世——致敬“BIM之父”BIM研究的先驱、佐治亚理工教授Charles (Chuck) M. Eastman于本周一(11月9日)在其Atlanta家中逝世。特转韩国Yonsei大学Ghang Lee教授的讣文以作纪念。过世原因未说明。BIM的出现是与当今时代科技的发展分不开的。在信息时代建筑发展面临的挑战巨大:建筑物越建越高...

weixin_39941262的博客 3302

sql语句 oracle面试50题

7. **如何显示`employees`和`departments`表中所有员工的名字及其对应的部门名称?5. **如何计算`employees`表中所有员工的平均工资?1. **如何从`employees`表中选择所有记录?6. **如何按部门分组并计算每个部门的平均工资?12. **如何创建一个基于`name`列的索引?2. **如何筛选出工资大于5000的所有员工?11. **解释索引的作用及何时应该使用它们。8. **找出比公司平均工资高的所有员工。4. **如何更新特定员工的信息?

weixin_66625287的博客 199

汇川AM402、H3U和上位机C#ModebusTcp通讯

目录一、测试任务二、测试环境三、PLC工程1、组态配置2、ip地址、端口号 3、全局变量定义四、C#端Winform程序创建1创建主界面 2、创建子窗口 3、运行生成,界面效果4、Modebus协议说明5、Modebus操作说明六、测试1、寄存器读测试 2、MW1300寄存器的BIT位3、写寄存器测试4、PLC断电或者断网 七、工程下载连接1、PLC作为ModebusTCP端,端口号都是502,PC端上位机软件作为TcpClient去连接多台PLC。PC端读写PLC寄存器。2、PC端在有的PLC断电、断网的

panjinliang066333的博客 2万+

YALMIP介绍及怎么在Matlab中加YALMIP、SDPT3

目录YALMIP简介怎么在Matlab中加YALMIP?1. 创建决策变量:2. 添加约束:3. 参数配置4. 求解怎么在MatlabR2019a中加YALMIP?1.下载工具包2.放置工具包3.添加路径4.测试安装结果怎么在MatlabR2019a中加SDPT3? YALMIP简介 怎么在Matlab中加YALMIP? yalmip是一位“集大成者”,它不仅自己包含基本的线性规划求解算法,比如linprog(线性规划)、bintprog(二值线性规划)、bnb(分支界定算法)等,他还提供了对cpl

m0_51431440的博客 2万+

Oracle SQL语句面试题一

以下是Oracle 数据库中hr 用户下面的表。下面的sql语句是以hr身份进入的。若是以system 身份进入需要在表名前面加hr. (如hr.employees)。 以下是表的基本结构 employees 表:EMPLOYEE_ID NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME VARCHAR2(25) EMAIL VARCHAR2(25) PHO

chenfengbao的博客 4159

wintab开发例程

 タブレットとスタイラスペンを使うと、パソコンに手書きの線を入力できます。筆圧を入力することができるので毛筆のような表現も可能です。ペンの傾きを入力できる機種もあり、アイデア次第で面白いことに使えそうです。  私は昔(94年頃)、WACOMのタブレットを用いたプログラム開発をしたことがあります。当初A3版ほどの大きさのUDというタブレットを使っていて、その後 ArtPad という小さいサイズの

grass168的专栏 3242

数据库面试题(SQL+ORACLE)

数据库基础(面试常见题) 一、数据库基础 1. 数据抽象:物理抽象、概念抽象、视图级抽象,内模式、模式、外模式 2. SQL语言包括数据定义、数据操纵(Data Manipulation),数据控制(Data Control) 数据定义:Create Table,Alter Table,Drop Table, Craete/Drop Index等 数据操纵:Select ,insert,u...

weixin_30552811的博客 1154

ESP-IDF的安装及其在VScode中编译环境的搭建

从安装目录的\Espressif\frameworks\esp-idf-v5.3.2\examples路径中拷贝一个工程到项目中,比如拷贝\get-started下的hello_world文件夹。安装时可能会遇到如下问题,提示:"e:\ssc\software\ESP-IDF\v5.3.2\Espressif\tools\idf-python\3.11.2\python.exe -m pip" is not valid. (ERROR_INVALID_PIP)接着等待安装完成即可,其他步骤同方式1。

Freddy_Ssc的博客 4373

WSL2+Ubuntu20.04纯root环境搭建指南:告别权限烦恼的终极方案

本文提供了一份详细的WSL2+Ubuntu20.04纯root环境搭建指南,旨在为本地开发与学习打造一个免去权限干扰、极致流畅的Linux子系统环境。通过启用WSL2、安装Ubuntu 20.04,并执行核心的root用户设置,开发者可以彻底告别频繁的sudo操作,提升在文件操作、容器调试和系统配置等方面的效率。

time3的博客 474

部分常见ORACLE面试题以及SQL注意事项(转载)

部分常见ORACLE面试题以及SQL注意事项   一、表的创建: 一个通过单列外键联系起父表和子表的简单例子如下: CREATE TABLE parent(id INT NOT NULL,                      PRIMARY KEY (id) ) CREATE TABLE child(id INT, parent_id INT,

秋水の歌的专栏 1691

大数据知识面试题-Hadoop(2022版)

序列号 内容 链接 1 大数据知识面试题-通用(2022版) 待续… 2 大数据知识面试题-Hadoop(2022版) 待续… 3 大数据知识面试题-MapReduce和yarn(2022版) 待续… 4 大数据知识面试题-Zookeepr (2022版) 待续… 5 大数据知识面试题-Hive (2022版) 待续… 6 大数据知识面试题-Flume(2022版) 待续… 7 大数据知识面试题-Hbase(2022版) 待续… 8 大数据知识面试题-sqoop(....

拉格朗日的学习笔记 1万+

oracle sql面试题

 雇员表:EMPLOYEE (EMPNO     CHARACTER(6)   NOT NULL, --雇员编号,定义为主键   FIRSTNAME  VARCHAR(12)     NOT NULL, --雇员第一个名字   MIDINIT   CHARACTER(1),            --雇员中间名字的首字母   LASTNAME 

kexianmiao的专栏 4135

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

mysql和oracle面试题_【SQL 面试题2】Mysql 和Oracle数据库

1.如果匹配上,将DictB的Desc更新成DictA中对应的字段Desc首先创建两张表格:CREATE TABLE DictA(id1 number, desc1 varchar2(10));CREATE TABLE DictB(id1 number, desc1 varchar2(10));INSERT INTO DictA VALUES (1001, '基金');INSERT INTO D...

weixin_29100399的博客 1877

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

oracle面试 sql语句,Oracle面试题之SQL tunting

Oracle面试题之SQL tunting1:列举几种表连接方式答:一共有三种连接方式(SQL优化),嵌套循环(Nested Loops(NL)),哈希连接,也叫散列连接(Hash Join(HJ)),排序合并连接,也叫归并连接(Sort Merge Join(SMJ))。注:Oracle一次只能连接两个表。不管查询中有多少个表,Oracle在连接中一次仅能操作两张表。当执行多个表的连接时,优化器...

weixin_39614750的博客 470

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

oracle sql调优面试,数据库优化常见的面试题

求职面试在当今社会越来越引起人们的重视。那关于面试数据库优化的面试题有哪些呢?下面是小编为你整理的数据库优化常见的一些面试题 ,希望对你有帮助。数据库优化的面试题1. sql2000和sql2005有什么区别?a、 最直观的一点就是两者的界面有很明显的不同。sql2005的操作风格更接近于vs2005。b、 sql2005比sql2000存储的数据量要大很多,sql2005支持数据库逻辑分区;c、...

weixin_26763955的博客 1374

oracle之sql面试题,oracle sql面试题

1删除重复记录delete from t where t.rowid not in ( selectmax(rowid) from t group by name); 2根据2表的关联列,更新1个表的多个字段update tset t.address = ( select e.address from e,t where t.name = e.name),t.phone = ( se...

weixin_42619061的博客 591

oracle常见sql面试题,oracle sql面试题2

一.简单SQL查询:1):统计每个部门员工的数目select dept,count(*) from employee group by dept;2):统计每个部门员工的数目大于一个的记录select dept,count(*) from employee group by dept having count(*)>1;3):统计工资超过1200的员工所在部门的名称select e.firs...

weixin_36389335的博客 956

部分常见ORACLE面试题以及SQL注意事项

部分常见ORACLE面试题以及SQL注意事项一、表的创建:一个通过单列外键联系起父表和子表的简单例子如下:CREATE TABLE parent(id INT NOT NULL, PRIMARY KEY (id)) CREATE TABLE child(id INT, parent_id INT, INDEX par_...

weixin_30551963的博客 721

oracle的按月统计sql(一个数据库面试题)

原文地址:oracle的按月统计sql(一个数据库面试题) 题目:   两个数据库表,schema如下:   CREATE TABLE REG_USERS (   ID           NUMBER,   NAME         VARCHAR2(30 BYTE),   CREATE_DATE  DATE    --注册日期 )   CREATE

peterxiaoq的专栏 1196

Oracle 之 SQL 面试题 录

多上网查查 SQL  面试题 1.学号(自动编号) 姓名 性别 年龄­ 0001 xw 男 18­ 0002 mc 女 16­ 0003 ww 男 21­ 0004 xw 男 18­ 请写出实现如下功能的SQL语句:­ 删除除了学号(自动编号)字段以外,其它字段都相同的冗余记录!­ DELETE FROM table1­ WHERE (学号 NOT IN­ (SELECT...

微赚淘客开发者博客 371

java oracle 面试题_java,oracle面试题,如下,sql怎么写

展开全部如题我先进行分32313133353236313431303231363533e4b893e5b19e31333363393739析:第一句话中按月找出平均 填写时间大于3天的人员信息 :那么可用理解为 根据月份查找 员工平均延迟填写日期大于3天的 人员信息。第二句话一个人员的日志填写日期有多条则取最早的一条,如果有一天未填写,则取系统当前时间,不含小时。以上这句话需要注意两点 第一点,...

weixin_39679468的博客 109

Oracle sql 语句执行顺序【面试题】

文章目录1 概述2 执行顺序3 整体:从内到外,从下到上,从右到左 1 概述 1. 面试题:sql 是从 select 开始执行的吗? 答:不是。是从 from 开始。 2 执行顺序 -- 查询处理的步骤:按序号。一步步筛选,直至满足所有条件 (7) select (8) distinct .. -- (10) top mysql (1) from .. -- sql 入口 (3) join .. (2) on .. (4) where .. (5) group by .. (6

鱼丸丶粗面 929

部分常见ORACLE面试题以及SQL注意事项(更新......)

部分常见ORACLE面试题以及SQL注意事项   一、表的创建: 一个通过单列外键联系起父表和子表的简单例子如下: CREATE TABLE parent(id INT NOT NULL,                      PRIMARY KEY (id) ) CREATE TABLE child(id INT, parent_id INT,

jihuanliang的专栏 5141

sql经典面试题——oracle

1、 用一条SQL 语句 查询出每门课都大于80 分的学生姓名name kecheng fenshu 张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 数学 100王五 英语 90 A: select dist...

weixin_34228387的博客 201
上一篇: java基础面试题
下一篇: Spring面试题大全
johnnydev
博客等级 码龄15年 16粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值