请使用Oracle 11g软件下默认账户scott提供的emp表和dept表完成如下SQL练习题,要求将sql语句及执行结果截图上传。 1. 请统计各部门的薪水情况:要求提供部门id、员工数、最高/最低/平均工资,对结果列取别名后展示。 2. 请找出比30号部门的所有员工工资都高的其他部门的员工信息。 3. 请找出各部门工资最高的员工, 展示其员工姓名、工资、所在部门名字【要求使用派生表实现】。 4. 找出其manager id为7698或7566,工资在1500-2850之外的,职位为CLERK或 ANALYST的员工信息。 5. 请找出工资大于2000的职员数最多的部门,列出部门号,工资大于2000的员工数。 6. 请找出员工工资均大于1000的部门其员工信息【要求不使用exists子查询】。 7. 请找出员工工资均大于1000的部门其员工信息【要求使用exists子查询】。 8. 请找出BLAKE所管理的员工信息。 9. 请找出以’S’开头或结尾的职位为MANAGER的员工信息及其所在部门名。 10. 创建视图,其内容为MANAGER的员工信息, 并通过视图插入新的MANAGER员工信息并对其进行删除【要求该视图只能针对MANAGER类型的员工记录进行操作】。

时间: 2023-06-24 16:04:12 浏览: 54
抱歉,由于我是一个AI语言模型,无法提供截图服务。但我可以给你提供SQL语句。 1. ``` SELECT d.deptno AS "部门ID", COUNT(e.empno) AS "员工数", MAX(e.sal) AS "最高工资", MIN(e.sal) AS "最低工资", AVG(e.sal) AS "平均工资" FROM emp e, dept d WHERE e.deptno = d.deptno GROUP BY d.deptno; ``` 2. ``` SELECT * FROM emp WHERE sal > ALL (SELECT sal FROM emp WHERE deptno = 30) AND deptno != 30; ``` 3. ``` SELECT e.ename AS "员工姓名", e.sal AS "工资", d.dname AS "所在部门名" FROM emp e, dept d, (SELECT deptno, MAX(sal) AS max_sal FROM emp GROUP BY deptno) max_sal_emp WHERE e.deptno = d.deptno AND e.deptno = max_sal_emp.deptno AND e.sal = max_sal_emp.max_sal; ``` 4. ``` SELECT * FROM emp WHERE (mgr = 7698 OR mgr = 7566) AND sal NOT BETWEEN 1500 AND 2850 AND (job = 'CLERK' OR job = 'ANALYST'); ``` 5. ``` SELECT d.deptno AS "部门号", COUNT(*) AS "员工数" FROM emp e, dept d WHERE e.deptno = d.deptno AND e.sal > 2000 GROUP BY d.deptno HAVING COUNT(*) >= ALL (SELECT COUNT(*) FROM emp WHERE sal > 2000 GROUP BY deptno); ``` 6. ``` SELECT e.* FROM emp e, dept d WHERE e.deptno = d.deptno GROUP BY e.deptno HAVING MIN(e.sal) > 1000; ``` 7. ``` SELECT e.* FROM emp e WHERE EXISTS (SELECT * FROM dept d WHERE e.deptno = d.deptno GROUP BY d.deptno HAVING MIN(e.sal) > 1000); ``` 8. ``` SELECT * FROM emp WHERE mgr = (SELECT empno FROM emp WHERE ename = 'BLAKE'); ``` 9. ``` SELECT e.*, d.dname FROM emp e, dept d WHERE e.deptno = d.deptno AND (e.job LIKE 'S%' OR e.job LIKE '%S') AND e.job = 'MANAGER'; ``` 10. ``` CREATE VIEW manager_view AS SELECT * FROM emp WHERE job = 'MANAGER'; INSERT INTO manager_view VALUES (10000, 'NEW MANAGER', 'MANAGER', NULL, SYSDATE, 3000, NULL, 20); DELETE FROM manager_view WHERE ename = 'NEW MANAGER'; ```

相关推荐

### 回答1: 好的,以下是针对Oracle的emp和dept表练习的回答: 1. 查询emp表中所有员工的姓名和工资 SELECT ename, sal FROM emp; 2. 查询emp表中职位为“SALESMAN”的员工信息 SELECT * FROM emp WHERE job = 'SALESMAN'; 3. 查询emp表中工资在2000到3000之间的员工信息 SELECT * FROM emp WHERE sal BETWEEN 2000 AND 3000; 4. 查询emp表中工资在3000以上的员工姓名和工资 SELECT ename, sal FROM emp WHERE sal > 3000; 5. 查询emp表中按照工资升序排序后的前5条记录 SELECT * FROM emp ORDER BY sal ASC FETCH FIRST 5 ROWS ONLY; 6. 查询emp表中按照工资降序排序后的第6到第10条记录 SELECT * FROM ( SELECT emp.*, ROW_NUMBER() OVER (ORDER BY sal DESC) AS row_num FROM emp ) WHERE row_num BETWEEN 6 AND 10; 7. 查询emp表中每个部门的平均工资、最高工资和最低工资 SELECT deptno, AVG(sal), MAX(sal), MIN(sal) FROM emp GROUP BY deptno; 8. 查询dept表中部门名称以“SALES”开头的部门信息 SELECT * FROM dept WHERE dname LIKE 'SALES%'; 9. 查询dept表中部门名称以“SALES”开头的部门中的员工信息 SELECT * FROM emp WHERE deptno IN ( SELECT deptno FROM dept WHERE dname LIKE 'SALES%' ); 10. 查询dept表中至少有两个员工的部门信息 SELECT * FROM dept WHERE deptno IN ( SELECT deptno FROM emp GROUP BY deptno HAVING COUNT(*) >= 2 ); ### 回答2: Oracle emp和dept表是Oracle数据库中的两个系统自带的数据表,用来演示和练习数据库的基本操作和查询语句。 emp表是一个雇员信息表,包含了雇员的基本信息,如雇员编号、姓名、职位、工资、入职日期等等。它的结构如下: |列名|数据类型| |----|-------| |EMPNO|NUMBER(4)| |ENAME|VARCHAR2(10)| |JOB|VARCHAR2(9)| |MGR|NUMBER(4)| |HIREDATE|DATE| |SAL|NUMBER(7, 2)| |COMM|NUMBER(7, 2)| |DEPTNO|NUMBER(2)| dept表是一个部门信息表,包含了部门的基本信息,如部门编号、名称、所在位置等等。它的结构如下: |列名|数据类型| |----|-------| |DEPTNO|NUMBER(2)| |DNAME|VARCHAR2(14)| |LOC|VARCHAR2(13)| 通过这两个表,我们可以进行各种数据库操作和查询练习,比如: 1. 插入数据:可以通过INSERT语句向emp和dept表中插入新的数据,如INSERT INTO emp(empno, ename, job, sal) VALUES (1001, '张三', '工程师', 5000)。 2. 更新数据:可以使用UPDATE语句更新emp和dept表中的数据,如UPDATE emp SET sal = 6000 WHERE empno = 1001。 3. 删除数据:可以使用DELETE语句删除emp和dept表中的数据,如DELETE FROM emp WHERE empno = 1001。 4. 查询数据:可以使用SELECT语句查询emp和dept表中的数据,如SELECT * FROM emp WHERE sal > 3000。 5. 连接查询:可以使用JOIN语句对emp和dept表进行连接查询,如SELECT e.ename, d.dname FROM emp e INNER JOIN dept d ON e.deptno = d.deptno。 总之,通过使用emp和dept表进行练习,我们可以学习和理解Oracle数据库的基本操作,提高数据库管理和查询的能力。 ### 回答3: Oracle的emp(员工)和dept(部门)表是一种练习使用Oracle数据库的常见方法。emp表包含了公司员工的相关信息,如员工编号、姓名、职位、上级、入职日期和薪水等。dept表则记录了公司的各个部门的信息,包括部门编号、部门名称和部门所在地等。 使用这两个表,可以进行许多常见的数据库操作和查询,以帮助练习和熟悉Oracle数据库。 以下是一些常见的操作和查询示例: 1. 查询所有员工的信息: SELECT * FROM emp; 2. 查询所有部门的信息: SELECT * FROM dept; 3. 查询员工编号为7369的员工信息: SELECT * FROM emp WHERE empno = 7369; 4. 查询薪水大于3000的员工信息: SELECT * FROM emp WHERE sal > 3000; 5. 查询部门编号为10的部门名称和所在地: SELECT dname, loc FROM dept WHERE deptno = 10; 6. 查询员工表中的各个职位及其对应的平均薪水: SELECT job, AVG(sal) FROM emp GROUP BY job; 7. 查询部门表中的各个部门及其员工人数: SELECT dname, COUNT(empno) FROM emp GROUP BY dname; 通过练习使用emp和dept表,可以熟悉Oracle数据库的基本操作和查询语句。这有助于提高数据库管理和数据分析的能力,并为日后进行更复杂的数据库操作打下坚实的基础。
### 回答1: 创建dept和emp表的命令为: CREATE TABLE dept( deptno NUMBER(2) PRIMARY KEY, dname VARCHAR2(14), loc VARCHAR2(13) ); CREATE TABLE emp( empno NUMBER(4) PRIMARY KEY, ename VARCHAR2(10), job VARCHAR2(9), mgr NUMBER(4), hiredate DATE, sal NUMBER(7,2), comm NUMBER(7,2), deptno NUMBER(2) ); ### 回答2: Oracle创建dept和emp表的方法如下: 1. 打开Oracle的数据库管理工具(如SQL Developer)并登录。 2. 创建dept表。 先创建一个数据库,同时保证当前用户拥有相应的权限。 CREATE DATABASE emp_dept; 切换到该数据库: USE emp_dept; 在该数据库中创建一个名为dept的表: CREATE TABLE dept( deptno NUMBER(2) PRIMARY KEY, dname VARCHAR2(14), loc VARCHAR2(13) ); 以上命令中,dept表共有3列,每一列数据类型分别为NUMBER和VARCHAR2。 其中,deptno为主键,其定义为NUMBER类型且长度为2,代表每一个部门的唯一标识。dname代表部门名称,loc代表部门所在地。 3. 创建emp表。 依照以上步骤,先确保当前数据库为emp_dept,然后创建一个名为emp的表: CREATE TABLE emp( empno NUMBER(4) PRIMARY KEY, ename VARCHAR2(10), job VARCHAR2(9), mgr NUMBER(4), hiredate DATE, sal NUMBER(7,2), comm NUMBER(7,2), deptno NUMBER(2) ); 以上命令中,emp表共有8列,每一列数据类型分别为NUMBER,VARCHAR2和DATE。 其中,empno定义为主键,其定义为NUMBER类型且长度为4,代表每一个员工的唯一标识。ename代表员工姓名,job代表员工职位。 mgr代表员工的直接上级的员工编号,hiredate代表员工入职时间,sal代表员工的薪水,comm代表员工的奖金,deptno代表员工所属的部门标识。 4. 插入测试数据。 完成以上表的创建之后,需要往表内插入一些测试数据。以下是部分数据的插入语句: INSERT INTO dept (deptno, dname, loc) values (10, 'ACCOUNTING', 'NEW YORK'); INSERT INTO dept (deptno, dname, loc) values (20, 'RESEARCH', 'DALLAS'); INSERT INTO dept (deptno, dname, loc) values (30, 'SALES', 'CHICAGO'); INSERT INTO dept (deptno, dname, loc) values (40, 'OPERATIONS', 'BOSTON'); INSERT INTO emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (7369, 'SMITH', 'CLERK', 7902, TO_DATE('1980-12-17', 'YYYY-MM-DD'), 800, NULL, 20); INSERT INTO emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (7499, 'ALLEN', 'SALESMAN', 7698, TO_DATE('1981-02-20', 'YYYY-MM-DD'), 1600, 300, 30); INSERT INTO emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (7521, 'WARD', 'SALESMAN', 7698, TO_DATE('1981-02-22', 'YYYY-MM-DD'), 1250, 500, 30); INSERT INTO emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (7566, 'JONES', 'MANAGER', 7839, TO_DATE('1981-04-02', 'YYYY-MM-DD'), 2975, NULL, 20); INSERT INTO emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (7654, 'MARTIN', 'SALESMAN', 7698, TO_DATE('1981-09-28', 'YYYY-MM-DD'), 1250, 1400, 30); 以上代码会向dept表和emp表中插入一些测试数据。 这样,Oracle的dept和emp表创建完毕。这两张表不仅可以用作数据存储,同时还可以用作查询、联结等操作的样本。 ### 回答3: Oracle是一个关系数据库管理系统,使用SQL语言进行操作和管理。在Oracle中,可以使用CREATE TABLE语句创建表。本文将详细介绍如何创建dept和emp表。 1. 创建dept表 dept表用于存储部门信息,包括部门编号(deptno)、部门名称(dname)、所在地(loc)三个字段。可以使用以下SQL语句创建dept表: CREATE TABLE dept( deptno NUMBER(2) PRIMARY KEY, dname VARCHAR2(14), loc VARCHAR2(13) ); 解释一下SQL语句的各个部分: - CREATE TABLE dept:创建名为dept的表 - deptno NUMBER(2) PRIMARY KEY:定义deptno字段为数字类型,长度为2,同时作为主键 - dname VARCHAR2(14):定义dname字段为字符串类型,长度为14 - loc VARCHAR2(13):定义loc字段为字符串类型,长度为13 运行以上SQL语句后,dept表将会被创建。 2. 创建emp表 emp表用于存储员工信息,包括员工编号(empno)、员工姓名(ename)、职位(job)、上级领导编号(mgr)、入职日期(hiredate)、基本工资(sal)、奖金(comm)、所在部门编号(deptno)八个字段。可以使用以下SQL语句创建emp表: CREATE TABLE emp( empno NUMBER(4) PRIMARY KEY, ename VARCHAR2(10), job VARCHAR2(9), mgr NUMBER(4), hiredate DATE, sal NUMBER(7,2), comm NUMBER(7,2), deptno NUMBER(2) REFERENCES dept(deptno) ); 解释一下SQL语句的各个部分: - CREATE TABLE emp:创建名为emp的表 - empno NUMBER(4) PRIMARY KEY:定义empno字段为数字类型,长度为4,同时作为主键 - ename VARCHAR2(10):定义ename字段为字符串类型,长度为10 - job VARCHAR2(9):定义job字段为字符串类型,长度为9 - mgr NUMBER(4):定义mgr字段为数字类型,长度为4 - hiredate DATE:定义hiredate字段为日期类型 - sal NUMBER(7,2):定义sal字段为数字类型,长度为7,小数点后保留2位 - comm NUMBER(7,2):定义comm字段为数字类型,长度为7,小数点后保留2位 - deptno NUMBER(2) REFERENCES dept(deptno):定义deptno字段为数字类型,长度为2,同时作为外键,参考dept表中的deptno字段 运行以上SQL语句后,emp表将会被创建。
1. 查询emp表中所有员工的姓名和工资。 可以使用如下SQL语句进行查询: SELECT 姓名, 工资 FROM emp; 2. 查询salgrade表中所有工资等级的上限和下限。 可以使用如下SQL语句进行查询: SELECT 上限, 下限 FROM salgrade; 3. 查询dept表中所有部门的名称和所在地。 可以使用如下SQL语句进行查询: SELECT 部门名称, 所在地 FROM dept; 4. 查询emp表中工资大于5000的员工的姓名和工资。 可以使用如下SQL语句进行查询: SELECT 姓名, 工资 FROM emp WHERE 工资 > 5000; 5. 查询dept表中所在地为"上海"的部门的名称和所在地。 可以使用如下SQL语句进行查询: SELECT 部门名称, 所在地 FROM dept WHERE 所在地 = '上海'; 6. 查询emp表中工资在5000到10000之间的员工的姓名和工资。 可以使用如下SQL语句进行查询: SELECT 姓名, 工资 FROM emp WHERE 工资 BETWEEN 5000 AND 10000; 7. 查询emp表中工资最高的员工的姓名和工资。 可以使用如下SQL语句进行查询: SELECT 姓名, 工资 FROM emp ORDER BY 工资 DESC LIMIT 1; 8. 查询dept表中共有多少个不同的部门。 可以使用如下SQL语句进行查询: SELECT COUNT(DISTINCT 部门名称) FROM dept; 9. 查询salgrade表中工资等级在3到5之间的等级的上限和下限。 可以使用如下SQL语句进行查询: SELECT 上限, 下限 FROM salgrade WHERE 等级 BETWEEN 3 AND 5; 10. 查询emp表中员工姓名为"张三"且所在部门为"销售部"的员工的工资。 可以使用如下SQL语句进行查询: SELECT 工资 FROM emp WHERE 姓名 = '张三' AND 所在部门 = '销售部';

最新推荐

requests-0.4.1.tar.gz

py依赖包

视频继续播放-谷歌浏览器插件

为了解决某个视频网站上咨询是否在的情况,开发了该插件,插件主要用于javascript的学习,插件适用于最新版的谷歌浏览器,无不良导向

手机wrap网站仿手机上POCO手机wap图片网站模板

手机wrap网站仿手机上POCO手机wap图片网站模板本资源系百度网盘分享地址

全国34个省份2000-2021人口-人口出生率、死亡率和自然增长率.xlsx

数据年度2000-2021 数据范围:全国34个省份,含港澳台 数据年度:2000-2021,22个年度的数据 excel数据文件包原始数据(由于多年度指标不同存在缺失值)、线性插值、ARIMA填补三个版本,提供您参考使用。 其中,ARIMA回归填补无缺失值。 填补说明: 线性插值。利用数据的线性趋势,对各年份中间的缺失部分进行填充,得到线性插值版数据,这也是学者最常用的插值方式。 ARIMA回归填补。基于ARIMA模型,利用同一地区的时间序列数据,对缺失值进行预测填补。

教师工作量-教师工作量系统-教师工作量系统源码-教师工作量管理系统-基于springboot的教师工作量系统-毕设java代码

教师工作量-教师工作量系统-教师工作量系统源码-教师工作量管理系统-教师工作量管理系统java代码-教师工作量系统设计与实现-基于springboot的教师工作量系统-基于Web的教师工作量系统设计与实现-教师工作量网站-教师工作量网站代码-教师工作量平台-教师工作量平台代码-教师工作量项目-教师工作量项目代码-教师工作量代码 1、技术栈:java,springboot,vue,ajax,maven,mysql,MyBatisPlus等 开发语言:Java 框架:SpringBoot JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:SQLyog/Navicat 开发软件:eclipse/myeclipse/idea Maven包:Maven 浏览器:谷歌浏览器 2、系统的实现 用户信息 图片素材 视频素材 摘 要 I 目 录 III 第1章 绪论 1 1.1选题动因 1 1.2背景与意义 1 第2章 相关技术介绍 3 2.1 MySQL数据库 3 2.2 Vue前端技术 3 2.3 B/S架构模式 4 2.4 ElementUI介绍 4 第3章 系统分析 5

网络技术-综合布线-河南农村宽带客户细分的研究.pdf

网络技术-综合布线-河南农村宽带客户细分的研究.pdf

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire

理解Socket编程的基础概念

# 1. 介绍Socket编程的基本概念 ## 1.1 什么是Socket编程 Socket编程是一种在网络编程中使用的抽象概念,它允许应用程序通过网络进行通信。通过Socket编程,可以实现客户端与服务器端之间的数据交换和通信。 ## 1.2 Socket编程的应用范围 Socket编程广泛应用于网络通信领域,包括但不限于Web服务、即时通讯、网络游戏、远程控制等。 ## 1.3 Socket编程的基本原理 Socket编程基于网络套接字(socket)的概念,通过套接字建立连接、传输数据和关闭连接来实现通信。在Socket编程中,使用不同的协议(如TCP、UDP)来实现数据传输和通信

c语言桌子上有几堆糖果,每堆糖果的数量记录在一个整型数组 nums 中。我们可以每次选择任意一堆,拿走其中的一颗或者两颗糖果,求拿完所有糖果的最少次数。

好的,以下是 C 语言的实现代码: ```c #include <stdio.h> #include <stdlib.h> int min(int a, int b) { return a < b ? a : b; } int minSteps(int* nums, int numsSize) { int dp[numsSize + 1]; dp[0] = 0; dp[1] = 1; for (int i = 2; i <= numsSize; i++) { dp[i] = min(dp[i-1] + 1, dp[i-2] + 1)

供应链管理制度(全).ppt

供应链管理制度