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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 编写一个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
相关文章
|
3天前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
24 11
|
17天前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
16天前
|
SQL 监控 安全
SQL Servers审核提高数据库安全性
SQL Server审核是一种追踪和审查SQL Server上所有活动的机制,旨在检测潜在威胁和漏洞,监控服务器设置的更改。审核日志记录安全问题和数据泄露的详细信息,帮助管理员追踪数据库中的特定活动,确保数据安全和合规性。SQL Server审核分为服务器级和数据库级,涵盖登录、配置变更和数据操作等事件。审核工具如EventLog Analyzer提供实时监控和即时告警,帮助快速响应安全事件。
|
27天前
|
SQL 关系型数据库 MySQL
体验使用DAS实现数据库SQL优化,完成任务可得羊羔绒加厚坐垫!
本实验介绍如何通过数据库自治服务DAS对RDS MySQL高可用实例进行SQL优化,包含购买RDS实例并创建数据库、数据导入、生成并优化慢SQL、执行优化后的SQL语句等实验步骤。完成任务,即可领取羊羔绒加厚坐垫,限量500个,先到先得。
145 12
|
23天前
|
SQL 存储 BI
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
|
23天前
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
28天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第16天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括配置系统源、安装 SQL Server 2019 软件包以及数据库初始化,确保 SQL Server 正常运行。
|
24天前
|
存储 机器学习/深度学习 监控
南大通用GBase 8s数据库onbar基础使用教程
数据备份与恢复是确保数据安全和业务连续性的关键。onbar作为GBase 8s数据库的备份工具,需配合存储管理器使用,通过配置BAR_BSALIB_PATH等参数,实现数据的备份与恢复。本文详细介绍了onbar的配置、备份、恢复及监控流程,帮助数据库管理员构建高效的数据保护方案。
|
26天前
|
SQL Java 数据库连接
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
|
13天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
87 15
下一篇
DataWorks