关系型数据库和MySQL作业

作业:使用下面的SQL在MySQL中创建数据库、二维表并插入数据,然后完成下面的查询操作。

create database hrs default charset utf8mb4;use hrs;create table tb_dept
(
dno int not null comment '编号',
dname varchar(10) not null comment '名称',
dloc varchar(20) not null comment '所在地',
primary key (dno)
);insert into tb_dept values (10, '会计部', '北京'),(20, '研发部', '成都'),(30, '销售部', '重庆'),(40, '运维部', '深圳');create table tb_emp
(
eno int not null comment '员工编号',
ename varchar(20) not null comment '员工姓名',
job varchar(20) not null comment '员工职位',
mgr int comment '主管编号',
sal int not null comment '员工月薪',
comm int comment '每月补贴',
dno int comment '所在部门编号',
primary key (eno),
foreign key (dno) references tb_dept(dno),
foreign key (mgr) references tb_emp(eno)
);insert into tb_emp values (7800, '张三丰', '总裁', null, 9000, 1200, 20),(2056, '乔峰', '分析师', 7800, 5000, 1500, 20),(3088, '李莫愁', '设计师', 2056, 3500, 800, 20),(3211, '张无忌', '程序员', 2056, 3200, null, 20),(3233, '丘处机', '程序员', 2056, 3400, null, 20),(3251, '张翠山', '程序员', 2056, 4000, null, 20),(5566, '宋远桥', '会计师', 7800, 4000, 1000, 10),(5234, '郭靖', '出纳', 5566, 2000, null, 10),(3344, '黄蓉', '销售主管', 7800, 3000, 800, 30),(1359, '胡一刀', '销售员', 3344, 1800, 200, 30),(4466, '苗人凤', '销售员', 3344, 2500, null, 30),(3244, '欧阳锋', '程序员', 3088, 3200, null, 20),(3577, '杨过', '会计', 5566, 2200, null, 10),(3588, '朱九真', '会计', 5566, 2500, null, 10);
  1. 查询月薪最高的员工姓名和月薪

    select ename, sal from tb_emp where sal=(select max(sal) from tb_emp);
    
  2. 查询员工的姓名和年薪((月薪+补贴)*13)

    select ename, (sal+ifnull(comm, 0))*13 as annsal from tb_emp;
    
  3. 查询有员工的部门的编号和人数

    select dno, count(dno) as total from tb_emp group by dno;
    
  4. 查询所有部门的名称和人数

    select dname, ifnull(total, 0) as total from tb_dept t1 left outer join (select dno, count(dno) as total from tb_emp group by dno) t2 on t1.dno=t2.dno;
    
  5. 查询月薪最高的员工(Boss除外)的姓名和月薪

    select ename, sal from tb_emp where sal=(select max(sal) from tb_emp where mgr is not null);
    
  6. 查询月薪超过平均月薪的员工的姓名和月薪

    select ename, sal from tb_emp where sal>(select avg(sal) from tb_emp);
    
  7. 查询月薪超过其所在部门平均月薪的员工的姓名、部门编号和月薪

    select ename, t1.dno, sal from tb_emp t1 inner join (select dno, avg(sal) as avgsal from tb_emp group by dno) t2 on t1.dno=t2.dno where sal>avgsal;
    
  8. 查询部门中月薪最高的人姓名、月薪和所在部门名称

    select ename, sal, dname from tb_dept t3 inner join (select ename, sal, t1.dno from tb_emp t1 inner join (select dno, max(sal) as maxsal from tb_emp group by dno) t2 on t1.dno=t2.dno where sal=maxsal) t4 on t3.dno=t4.dno;
    
  9. 查询主管的姓名和职位

    select ename, job from tb_emp where eno in (select distinct mgr from tb_emp where mgr is not null);
    
  10. 查询月薪排名4~6名的员工排名、姓名和月薪

select rank, ename, sal from (select @n:=@n+1 as rank, ename, sal from tb_emp, (select @n:=0) t1 order by sal desc) t2 limit 3,3;

关系型数据库和MySQL作业及答案相关推荐

  1. Day 36: 关系型数据库和MySQL概述

    关系型数据库和MySQL概述 关系型数据库概述 数据持久化 - 将数据保存到能够长久保存数据的存储介质中,在掉电的情况下数据也不会丢失. 数据库发展史 - 网状数据库.层次数据库.关系数据库.NoSQ ...

  2. sqoop 把 hdfs 和关系型数据库 (mysql等)互导

    简介 Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导入到Hadoop的HDFS中 ...

  3. 关系型数据库和mysql教材_关系型数据库(MySQL)

    数据库系统DBS(DataBase System):数据库管理系统DBMS(DataBase Management System)+数据库DB(DataBase) [关系型数据库]概念: 表table ...

  4. 患者数据库mysql_关系型数据库之MySQL基础总结_part1

    一:数据库的操作语言的种类 MySQL 是我们最常使用的关系型数据库,对于MySQL的操作的语言种类又可以分为:DDL,DML,DCL,DQL DDL:是数据库的定义语言:主要对于数据库信息的一些定义 ...

  5. MemSQL:号称世界上最快的内存-关系型数据库 兼容MySQL但快30倍

    MemSQL是一款内存数据库,它通过将数据存在内存中,将SQL语句预编译为C++而获得极速的执行效率.MemSQL宣称这是世界上最快的分布式关系型数据库,兼容MySQL但快30倍,能实现每秒150万次 ...

  6. 关系型数据库之Mysql备份(五)

    二进制日志简要: 二进制日志通常作为备份的重要资源,所以再说备份之前我们来回顾下前面专题讲过的二进制日志内容. 1.二进制日志内容 引起mysql服务器改变的任何操作. 复制功能依赖于此日志. 从服务 ...

  7. 简述与oracle相关的程序组,北语网院18秋《Oracle数据库开发》作业_4答案

    交卷时间:2018-11-04 23:45:51 一.老虎奥鹏 www.aopengzuoye.com 1. (4分)在Oracle中,在执行SQL语句时,你不小心使用Update命令将所有的ID值设 ...

  8. 关系型数据库选型MySQL、 Oracle、SQL server、DB2、PostgreSql

    https://www.yuque.com/docs/share/c90884d6-b0fb-4580-bf36-ff360b94ffdb?# <数据库对比> 我整理到语雀了 不好复制

  9. 腾讯关系型数据库达成“双百”里程碑——6大企业级MySQL特性全面解析

    腾讯关系型数据库-企业级MySQL(原CDB,腾讯云TencentDB for MySQL)达成了 百万核 和 百PB 的"双百"里程碑!存储规模同比增速高达 80% ,连续两年在 ...

最新文章

  1. 一个老工程师对理工科学生的忠告
  2. JSP_运维_JSP项目部署到server(适合0经验新手)
  3. java date 格式化_Date类日期格式化
  4. phpstrom连接服务器上传文件
  5. Leetcode-260. 只出现一次的数字 III
  6. 取木棒21根c语言,关于m根火柴 ,人机最多取n根火柴(21根火柴进阶)
  7. C++总结篇(1)命名空间及引用
  8. C#调用C和C++函数的一点区别
  9. 【语义分割】评价指标代码函数:np.sum()、np.nansum()、np.nanmean()、np.diag()、np.bincount()
  10. 四周年了,谈谈一个程序员的职场心得
  11. Swift 5 用TableView实现动态Excel表格Spreadsheet
  12. 分享110个ASP源码,有一款适合你
  13. 郭天祥的10天学会51单片机_第四节
  14. applet java_Java applet 类
  15. 计算机用户密码无法输入,电脑数字密码输入不了怎么办
  16. 阿里p8级软件测试被裁,能拿多少赔偿金?
  17. python实现名片管理器
  18. Python编程中列表、字典、元组的使用方法总结
  19. mybatis-plus代码生成器,程序员偷懒神器
  20. 达人篇:6.3)试验设计DOE,Design of Experiments

热门文章

  1. Keil(MDK)STM32和51版本详细安装
  2. wchar_t 转换 string std::string 转换 wchar_t
  3. mysql怎么求时间差
  4. Druid连接池开启数据库监控功能
  5. 解密Android7.0 8.0进程保活与拉活的实现方式 如何才能让APP常驻内存 躲避系统的追杀
  6. mysql与oracle实现行转列并指定分隔符
  7. win7系统笔记本做无线路由器
  8. isdisposed java_Java Shell.isDisposed方法代碼示例
  9. 有源滤波器——APF
  10. springboot手写JDBC面对2000并发量毫无压力