学通4中数据库SQL教程练习和答案

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 编写一个SQL语句,输出下面的结果

SELECT字段的别名练习(答案)

编写一个SQL语句,输出下面的结果




mysql> select empno 员工号,salary 月薪, salary*14 14薪 from employees;+-----------+----------+-----------+| 员工号    | 月薪     | 14薪      |+-----------+----------+-----------+|         1 | 20000.00 | 280000.00 ||         2 | 19100.00 | 267400.00 ||         3 | 23900.00 | 334600.00 ||         4 | 15000.00 | 210000.00 ||         5 | 14200.00 | 198800.00 ||         6 |  9700.00 | 135800.00 ||         7 |  8900.00 | 124600.00 ||         8 | 14900.00 | 208600.00 ||         9 | 15000.00 | 210000.00 |+-----------+----------+-----------+9 rows in set (0.00 sec)

WHERE练习答案




mysql> select name,salary,salary*1.1 "updated salary",hire_date from employees  where hire_date<'2010-01-01';+-----------+----------+----------------+------------+| name      | salary   | updated salary | hire_date  |+-----------+----------+----------------+------------+| 周福生    | 20000.00 |      22000.000 | 2009-12-02 || 赵卫华    | 15000.00 |      16500.000 | 2009-11-12 |+-----------+----------+----------------+------------+2 rows in set (0.00 sec)


AND、OR 和NOT运算符练习





mysql>  select * from employees where deptno<>3 and salary>15000;
mysql>  select * from employees where not (deptno=3 or salary<=15000);


BETWEEN练习的答案





mysql> select name,salary from employees where salary between 10000 and 15000;+-----------+----------+| name      | salary   |+-----------+----------+| 赵六      | 15000.00 || 李明      | 14200.00 || 程娟      | 14900.00 || 赵卫华    | 15000.00 |+-----------+----------+4 rows in set (0.00 sec)

LIKE练习的答案




mysql> select email from employees where email like '_h%@gmail.com';+----------------------+| email                |+----------------------+| zhou@gmail.com       || chengjuan@gmail.com  || zhaoweihua@gmail.com |+----------------------+3 rows in set (0.00 sec)

ORDER BY练习答案







mysql> select name,deptno,hire_date from employees order by deptno,hire_date desc;+-----------+--------+------------+| name      | deptno | hire_date  |+-----------+--------+------------+| 赵六      |      1 | 2019-12-01 || 王五      |      1 | 2013-01-03 || 赵卫华    |      1 | 2009-11-12 || 孙军      |      2 | 2022-05-22 || 李四      |      2 | 2011-02-10 || 周福生    |      2 | 2009-12-02 || 李明      |      3 | 2021-09-11 || 钱杰      |      3 | 2019-06-12 || 程娟      |      3 | 2013-07-22 |+-----------+--------+------------+9 rows in set (0.00 sec)

NOT IN的坑练习答案





mysql> select deptno,dname from dept dwhere d.deptno not in (select e.deptno from emp e where e.deptno is not null);+--------+-----------+| deptno | dname     |+--------+-----------+|      5 | Operation |+--------+-----------+1 row in set (0.00 sec)
mysql> select deptno,dname from dept d where not exists (select 1 from emp e where d.deptno=e.deptno);+--------+-----------+| deptno | dname     |+--------+-----------+|      5 | Operation |+--------+-----------+1 row in set (0.00 sec)

INSERT练习答案


insert into employees(empno,name,deptno,salary) values(17,'张小英',1,DEFAULT);

UPDATE练习答案




update employees set salary=salary*1.1 where empno in (select managerno from departments);


DELETE练习答案


delete from employees where deptno=(select deptno from departments where managerno=2);


INNER JION内连接练习答案




select j.*,e.name,d.dname from job_history j join employees e on j.empno=e.empno join departments d on e.deptno=d.deptno;

自连接练习答案




select j1.empno from(select empno from job_history j1 where deptno=2) j1join(select empno from job_history j2 where deptno=3) j2on j1.empno=j2.empno;

外连接练习答案





select e.empno,name,start_date,j.deptno from job_history j right join employees e on j.empno=e.empno;


Union练习的答案






select name,hire_date,'创始人' 资深程度 from employees where hire_date <'2010-01-01'unionselect name,hire_date,'老员工' 资深程度 from employees where hire_date between '2010-01-01' and '2019-12-31'unionselect name,hire_date,'新员工' 资深程度 from employees where hire_date >'2019-12-31';


HAVING练习


select empno,count(*) from job_history group by empno having count(*)>1;


子查询练习答案





select name,salaryfrom employeeswhere salary>(            select avg(salary)            from employees  6              );
NAME           SALARY---------- ----------周福生          20000王五            19100李四            23900



IN运算符中的子查询练习答案





select name from employeeswhere empno not in (                     select distinct empno                     from job_history                    );



子查询和连接的练习答案


select name  from employees left join job_history using (empno) where start_date is null;



exists的练习




select name from employees where not exists   (select 1 from job_history where employees.empno=job_history.empno);


SELECT子句中的子查询练习答案


select dname,(select sum(salary) from employees where deptno=d.deptno) 部门工资总和  from departments d;


PARTITION BY的练习答案









select e2.*from(   select e1.* ,   rank() over (partition by deptno order by hiredate) as rank_date   from employees e1)  e2where e2.rank_date=2;


CASE表达式练习的答案








select name, hiredate,case when hiredate<'2010-01-01' then '创始人' when hiredate between '2010-01-01' and '2019-12-31' then '老员工'else '新员工' end 资深程度from employeeswhere hiredate is not null;


CTE练习答案







with em_ch as( select * from employees where empno in        (select distinct empno from job_history))select * from em_ch;

视图练习的答案






create view emp_qq asselect empno,name,salary,hiredate,email from employees where email like '%@qq.com'order by hiredatewith check option;
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
SQL 缓存 监控
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
本文详细解析了数据库、缓存、异步处理和Web性能优化四大策略,系统性能优化必知必备,大厂面试高频。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
|
12天前
|
SQL 缓存 Java
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
本文详细介绍了MyBatis的各种常见用法MyBatis多级缓存、逆向工程、分页插件 包括获取参数值和结果的各种情况、自定义映射resultMap、动态SQL
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
|
6天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
7天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。
|
17天前
|
SQL 数据采集 监控
局域网监控电脑屏幕软件:PL/SQL 实现的数据库关联监控
在当今网络环境中,基于PL/SQL的局域网监控系统对于企业和机构的信息安全至关重要。该系统包括屏幕数据采集、数据处理与分析、数据库关联与存储三个核心模块,能够提供全面而准确的监控信息,帮助管理者有效监督局域网内的电脑使用情况。
15 2
|
22天前
|
SQL JSON Java
没有数据库也能用 SQL
SPL(Structured Process Language)是一款开源软件,允许用户直接对CSV、XLS等文件进行SQL查询,无需将数据导入数据库。它提供了标准的JDBC驱动,支持复杂的SQL操作,如JOIN、子查询和WITH语句,还能处理非标准格式的文件和JSON数据。SPL不仅简化了数据查询,还提供了强大的计算能力和友好的IDE,适用于多种数据源的混合计算。
|
28天前
|
存储 SQL 关系型数据库
【入门级教程】MySQL:从零开始的数据库之旅
本教程面向零基础用户,采用通俗易懂的语言和丰富的示例,帮助你快速掌握MySQL的基础知识和操作技巧。内容涵盖SQL语言基础(SELECT、INSERT、UPDATE、DELETE等常用语句)、使用索引提高查询效率、存储过程等。适合学生、开发者及数据库爱好者。
40 0
【入门级教程】MySQL:从零开始的数据库之旅
|
29天前
|
SQL 数据管理 数据库
SQL语句实例教程:掌握数据查询、更新与管理的关键技巧
SQL(Structured Query Language,结构化查询语言)是数据库管理和操作的核心工具
|
23天前
|
SQL 数据库
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)
|
29天前
|
SQL NoSQL MongoDB
一款基于分布式文件存储的数据库MongoDB的介绍及基本使用教程
一款基于分布式文件存储的数据库MongoDB的介绍及基本使用教程
41 0