mysql综合实验

USE dept_emp;    
CREATE TABLE dept (
    deptno INT(2) NOT NULL COMMENT '部门编号',
    dname VARCHAR (15) COMMENT '部门名称',
    loc VARCHAR (20) COMMENT '地理位置' 
);

-- 添加主键
ALTER TABLE dept ADD PRIMARY KEY (deptno);
INSERT INTO dept (deptno,dname,loc)VALUES (10,'财务部','高新四路');
INSERT INTO dept (deptno,dname,loc)VALUES (20,'人事部','科技二路');
INSERT INTO dept (deptno,dname,loc)VALUES (30,'销售部','长安区');
INSERT INTO dept (deptno,dname,loc)VALUES (40,'运输部','雁塔区');

CREATE TABLE emp(
    empno INT(4) NOT NULL COMMENT '员工编号',
    ename VARCHAR(10) COMMENT '员工名字',
    job VARCHAR(10) COMMENT '职位',
    mgr INT(4) COMMENT '上司',
    hiredate DATE COMMENT '入职时间',
    sal INT(7) COMMENT '基本工资',
    comm INT(7) COMMENT '补贴',
    deptno INT(2) COMMENT '所属部门编号'
);

-- 添加主键
ALTER TABLE emp ADD PRIMARY KEY (empno);

-- 添加外键约束
ALTER TABLE emp ADD CONSTRAINT f_ed_key
FOREIGN KEY (deptno) 
REFERENCES dept(deptno);
INSERT INTO `emp` VALUES('7369','张倩','办事员','7902','2002-12-17','820',NULL,'20');
INSERT INTO `emp` VALUES('7499','刘博','售货员','7698','1992-02-20','1900','300','30');
INSERT INTO `emp` VALUES('7521','李兴','售货员','7698','1995-07-22','1250','500','30');
INSERT INTO `emp` VALUES('7566','李雷','人事部长','7839','1991-04-02','975',NULL,'20');
INSERT INTO `emp` VALUES('7654','刘浩','售货员','7698','1991-09-28','1250','1400','30');
INSERT INTO `emp` VALUES('7698','刘涛','销售部长','7839','1997-05-01','2850',NULL,'30');
INSERT INTO `emp` VALUES('7782','华仔','人事部长','7839','1995-06-09','2450',NULL,'10');
INSERT INTO `emp` VALUES('7788','张飞','人事专员','7566','1998-04-19','3000',NULL,'20');
INSERT INTO `emp` VALUES('7839','马晓云','董事长',NULL,'1991-11-17','5000',NULL,'10');
INSERT INTO `emp` VALUES('7844','马琪','售货员','7698','1996-09-08','1500','0','30');
INSERT INTO `emp` VALUES('7876','李涵','办事员','7788','1997-05-23','1100',NULL,'20');
INSERT INTO `emp` VALUES('7900','李小涵','销售员','7698','1993-2-13','950',NULL,'30');
INSERT INTO `emp` VALUES('7902','张三','人事组长','7566','1992-10-08','3000',NULL,'20');
INSERT INTO `emp` VALUES('7934','张三丰','人事长','7782','1997-06-23','1300',NULL,'10');

CREATE TABLE salgrade(
grade INT (10) COMMENT '工资等级',
losal INT (10) COMMENT '最低限额',
hisal INT (10) COMMENT '最高限额'
);
INSERT INTO salgrade (grade, losal, hisal)VALUES (1, 700, 1200);
INSERT INTO salgrade (grade, losal, hisal)VALUES (2, 1201, 1400);
INSERT INTO salgrade (grade, losal, hisal)VALUES (3, 1401, 2000);
INSERT INTO salgrade (grade, losal, hisal)VALUES (4, 2001, 3000);
INSERT INTO salgrade (grade, losal, hisal)VALUES (5, 3001, 9999);

-- 单表查询

-- 1.选择部门30中的所有员工

select * from emp where deptno=30;

-- 2.列出所有办事员的姓名,编号和部门编号

select ename,empno,deptno,job from emp where job='办事员';

-- 3.找出佣金高于薪金的员工

Select ename,comm,sal from emp where comm>sal;

-- 4.找出没有佣金的员工

Select ename,comm,sal from emp where comm=0;

-- 5.找出佣金高于薪金的60%的员工

Select ename,comm,sal from emp where comm>sal*0.6;

-- 6.找出部门10中所有人事部长和部门20中所有办事员的详细资料

select * from emp where(deptno=10 and job='人事部长') or (deptno=20 and job='办事员');

-- 7.找出收取佣金的员工

select * from emp where comm>0;

-- 8.找出不收取佣金或收取的佣金低于100的员工

mysql> select * from emp where comm<0 or comm<100;

-- 9.找出姓张的员工的信息

select * from emp where ename like '张%';

-- 10.显示员工的姓名和受雇日期,新的员工排在最前面

select ename,hiredate from emp order by hiredate desc;

-- 11.按工作的降序排序,若工作相同则按薪金排序

SELECT ename,job,sal FROM emp ORDER BY job DESC,sal ;

-- 12.查出不姓刘的员工的信息

select * from emp where ename not like '刘%';

-- 13.取出姓李的员工

select * from emp where ename like '李%';

-- 多表查询

-- 1. 查询出每一位雇员的编号、姓名、职位、部门名称、位置

select empno,ename,job,dept.* from emp,dept where emp.deptno = dept.deptno;

-- 2.要求查询出每一位雇员的姓名、职位、领导的姓名

select e.ename,e.job,(select ename from emp where e.mgr=empno) 领导名字 from emp e;

-- 3.查询出每个雇员的编号、姓名、基本工资、职位、领导的姓名、部门名称及位置。

SELECT e.empno, e.ename, e.sal, e.job, (SELECT ename FROM emp WHERE e.mgr = emp.empno) AS 领导名字, d.dname, d.loc
FROM emp e, dept d
WHERE e.deptno = d.deptno;

-- 4.列出在部门"销售部"工作的员工的姓名,假定不知道销售部的部门编号。

select emp.ename from emp,dept where emp.deptno=dept.deptno and dept.dname ='销售部';

-- 5.列出与"李兴"从事相同工作的所有员工。

Select e.ename,e.job,d.dname
from emp e
join dept d on e.deptno = d.deptno
where job=(select job from emp where ename = '李兴') and ename !='李兴';

-- 6.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。

select e.ename,e.sal,d.dname from emp e inner join dept d on e.deptno=d.deptno where sal>(select max(sal) from emp where deptno=30);

-- 7.列出受雇日期早于其直接上级的所有员工。

select a.empno,a.ename,d.dname from emp a 
join emp b on a.mgr=b.empno 
join dept d on a.deptno=d.deptno 
where a.hiredate<b.hiredate;

-- 分组函数查询

-- 1.按照部门编号分组,求出每个部的人数,平均工资

select e.deptno,d.dname,count(e.ename) as 人数,avg(e.sal) as 平均工资 from emp e
join dept d on e.deptno=d.deptno
group by e.deptno,d.dname;

-- 2.按照职位分组,求出每个职位的最高和最低工资

select max(sal) as 最高工资,min(sal) as 最低工资,job from emp group by job;

-- 3.计算出每个各职位的平均工资

select job,avg(sal) as 平均工资 from emp group by job;

-- 4.查询出每个部门的名称、部门的人数、平均工资

select d.dname,count(e.ename) as 人数,avg(e.sal) as 平均工资 from emp e
join dept d on e.deptno=d.deptno
group by e.deptno,d.dname;

-- 5.要求统计出每个部门的详细信息,并且要求这些部门的平均工资高于2000;

select e.deptno,d.dname,count(e.ename) as 人数,avg(sal) as 平均工资
from emp e
join dept d on e.deptno=d.deptno
group by e.deptno,d.dname
having avg(e.sal) >2000;

-- 6.要求查询出工资比华仔还要高的全部雇员信息

select * from emp where sal >(select sal from emp where ename like '华仔');

-- 7.要求查询出高于公司平均工资的全部雇员信息

select * from emp where sal >(select avg(sal) from emp);

-- 8.查询出每个部门的编号、名称、位置、部门人数、平均工资

select d.deptno,d.dname,d.loc,count(e.ename) as 部门人数,avg(sal) as 平均工资
from emp e
join dept d on e.deptno=d.deptno
group by d.deptno,d.dname,d.loc;

-- 9.列出至少有一个员工的所有部门。

select distinct d.deptno,d.dname,d.loc from dept d
join emp e on d.deptno=e.deptno;

-- 等级查询

-- 1.查询每个工资等级各有多少员工

select sg.grade,count(e.ename) as 员工数量
from salgrade sg
left join emp e on e.sal between sg.losal and sg.hisal
group by sg.grade;

-- 2.查询部门中(所有人)的平均工资等级

mysql> select e.deptno,avg(sg.grade) as 平均工资等级
    -> from emp e
    -> join salgrade sg on e.sal between sg.losal and sg.hisal
    -> group by e.deptno;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows 11 UEFI引导修复的方法有哪些?

若Windows 11 UEFI 引导加载程序损坏了&#xff0c;您的电脑将无法启动&#xff0c;那么Win11怎么修复UEFI引导&#xff1f;下面我们就来了解一下。 通过自动修复进行UEFI引导修复 1. 将可启动U盘连接到损坏的电脑&#xff0c;进入BIOS设置您的电脑从U盘启动电脑。然后&#x…

TypeScript语法总结

JavaScript 与 TypeScript 的区别 TypeScript 是 JavaScript 的超集&#xff0c;扩展了 JavaScript 的语法&#xff0c;因此现有的 JavaScript 代码可与 TypeScript 一起工作无需任何修改&#xff0c;TypeScript 通过类型注解提供编译时的静态类型检查。 TypeScript 可处理已…

【论文解读】LERF:语言嵌入的辐射场(ICCV 2023 Oral)

来源&#xff1a;投稿 作者&#xff1a;橡皮 编辑&#xff1a;学姐 论文链接&#xff1a;https://arxiv.org/abs/2303.09553 项目主页&#xff1a;https://lerf.io](https://lerf.io 图 1&#xff1a;语言嵌入辐射场 (LERF)。 LERF 将 CLIP 表示建立在密集、多尺度的 3D 场中。…

Unity导出Android项目踩坑记录

导出的时候需要注意以下地方的配置&#xff1a; 1、buildSetting-> 设置ExportProject 2、buildsetting ->playerSetting ->设置IL2CPP 3、设置ndk edit->preferences->external tools->ndk 如果unity的ndk版本和android项目里的ndk版本不一致会报错&…

跨平台开发:构建适配多设备的直播电商APP

如今&#xff0c;跨平台开发成为构建适配多设备的直播电商APP的关键之一。本文将深入探讨跨平台开发的优势、选择适当的技术栈以及解决多设备适配的挑战。 一、跨平台开发的优势 1.1节省开发成本 通过一套代码即可在iOS和Android等多个平台上运行&#xff0c;极大地提高了开…

docker安装 mysql 8.0.32

首先下载 mysql 其次如果虚拟机以前安过mysql 需要把mysql关闭 命令 永久关闭mysql 但是当前不生效 需要重启虚拟机 systemctl enable mysqld 如果不想重启虚拟机 可以执行 systemctl stop mysqld //指定版本 docker pull mysql:8.0.32 // 拉取最新的…

Docker-安装实践(mysql,redis集群,tomcat)

docker实践(提供几个安装案例&#xff09; 安装Tomcat # 拉取镜像,可以指定标签不指定默认为最新 docker pull tomcat docker run -itd -p 8080:8080 --name tomcat tomcat:latest #这样内部默认80端口&#xff0c;主机的映射端口会随机分配一个 docker run -itd -P tomcat…

mac-hadoop3.3.6 源码构建以及踩坑记录

1. 为什么需要构建源码 因为hadoop的可执行文件 是在专门的机器上编译的 其中native库 不一定能适用于每个机器 导致在启动hadoop过程中 出现烦人的警告 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes w…

分类预测 | Matlab实现WOA(海象)-XGboost分类【24年新算法】基于海象优化算法(WOA)优化XGBoost的数据分类预测

分类预测 | Matlab实现WOA(海象)-XGboost分类【24年新算法】基于海象优化算法(WOA)优化XGBoost的数据分类预测 目录 分类预测 | Matlab实现WOA(海象)-XGboost分类【24年新算法】基于海象优化算法(WOA)优化XGBoost的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本…

mariadb数据库从入门到精通

mariadb数据库的安装以及安全初始化 mariadb数据库的安装以及安全初始化 mariadb数据库的安装以及安全初始化一、实验前提二、mariadb数据库的安装三、mariadb数据库安全初始化3.1 设定数据库基本的安全初始化3.2关闭对外开放端口 系列文章目录一、查看数据库二、进入库并且查看…

什么是安全SCDN,有什么作用?

前两天有个站长被朋友推荐联系到了德迅云安全&#xff0c;想要对自己网站做一些安全防护&#xff0c;聊天中问及到了安全SCDN是什么意思&#xff0c;有哪些作用&#xff1f;那么德迅云安全今天就来简单讲述一下安全SCDN&#xff0c;来了解下什么是安全SCDN&#xff0c;以及它有…

Pycharm无法刷新远程解释器的框架: Can‘t get remote credentials for deployment server

在Pycharm上部署项目到远程服务器&#xff0c;有时候需要启动SSH会话&#xff0c;启动的时候发现没反应&#xff0c;且事件日志显示&#xff1a;无法刷新远程解释器的框架: Can’t get remote credentials for deployment server 观察pycharm界面最下边&#xff0c;发现“无默…

vector的模拟实现

一、vector的基本结构 template<class T> class vector { public:typedef T* iterator;typedef const T* const_iterator; private:iterator _start;//vector的迭代器&#xff0c;指向起始位置iterator _finish;//指向存放最后一个元素的下一个位置iterator _end_of_sto…

C++类与对象(四):再谈构造函数(详解初始化列表)、Static成员

上次把默认的成员函数部分梳理完毕了&#xff1a;C初阶类与对象&#xff08;三&#xff09;&#xff1a;详解复制构造函数和运算符重载 今天接着讲下面的内容&#xff1a; 文章目录 1.再谈构造函数1.1构造函数体赋值1.2初始化列表1.2.1格式和概念1.2.2由来情况1情况2 1.2.3特性…

C语言第三弹---数据类型和变量

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 数据类型和变量 1、数据类型介绍1.1、整型1.2、浮点型1.3、字符型1.4、布尔类型1.5、各种数据类型的长度1.5.1、sizeof操作符1.5.2、数据类型的长度1.5.3、sizeo…

全网最详细!!Python 爬虫快速入门

1. 背景 最近在工作中有需要使用到爬虫的地方&#xff0c;需要根据 Gitlab Python 实现一套定时爬取数据的工具&#xff0c;所以借此机会&#xff0c;针对 Python 爬虫方面的知识进行了学习&#xff0c;也算 Python 爬虫入门了。 需要了解的知识点&#xff1a; Python 基础语…

【蓝桥杯EDA设计与开发】立创开源社区分享的关于蓝桥被EDA真题与仿真题的项目分析

立创开源社区内有几个项目分享了往年 EDA 设计题目与仿真题&#xff0c;对此展开了学习。 【本人非科班出身&#xff0c;以下对项目的学习仅在我的眼界范围内发表意见&#xff0c;如有错误&#xff0c;请指正。】 项目一 来源&#xff1a;第十四届蓝桥杯EDA赛模拟题一 - 嘉立…

JS-WebAPIs-其他事件(三)

• 页面加载事件 页面加载事件主要有二种事件&#xff0c;分别是load和DOMContentLoaded 加载外部资源&#xff08;如图片、外联CSS和JavaScript等&#xff09;加载完毕时触发的事件为什么要学&#xff1f; 有些时候需要等页面资源全部处理完了做一些事情老代码喜欢把 scrip…

Git教程学习:01 Git简介与安装

目录 1 版本控制1.1 什么是版本控制系统&#xff1f;1.2 本地版本控制系统1.3 集中式版本控制系统1.4 分布式版本控制系统 2 Git简史3 Git的安装3.1 在Linux上安装3.2 初次运行Git前的配置 1 版本控制 1.1 什么是版本控制系统&#xff1f; 版本控制系统(Version Control Syst…

LLaVA-Plus: Learning to Use Tools for Creating Multimodal Agents

LLaVA-Plus: Learning to Use Tools for Creating Multimodal Agents 最近在调研一些多模态大模型相关的论文&#xff0c;发现Arxiv上出的论文根本看不过来&#xff0c;遂决定开辟一个新坑《一页PPT说清一篇论文》。自己在读论文的过程中会用一页PPT梳理其脉络和重点信息&#…