六、MySQL 数据库练习题1(包含前5章练习题目及答案)

MySQL 数据库练习题(包含前5章所有知识点及答案)

前置知识:

一、数据库开发与实战专栏导学及数据库基础概念入门
二、MySQL 介绍及 MySQL 安装与配置
三、MySQL 数据库的基本操作
四、MySQL 存储引擎及数据类型
五、数据导入与基本的 SELECT 语句

一、数据库概述练习题

1、说说你了解的常见的数据库。
2、谈谈你对MySQL历史、特点的理解。
3、说说你对 DB、DBMS、SQL 的理解。
4、你知道哪些非关系型数据库的类型呢?
5、表与表的记录之间存在哪些关联关系?

二、MySQL 环境搭建练习题

1、安装好 MySQL 之后在 Windows 和 Linux 系统中哪些位置能看到 MySQL?
2、Windows 卸载 MySQL 主要卸载哪几个位置的内容?
3、能够独立完成 MySQL8.0、MySQL5.7 版本的下载、安装、配置 (掌握)。
4、MySQL5.7 在配置完以后,如何修改配置文件?
5、熟悉常用的数据库管理和操作的工具。

三、查询练习

1、查询员工12个月的工资总和,并起别名为 ANNUAL SALARY。

SELECT employee_id,last_name,salary * 12 AS "ANNUAL SALARY" FROM employees;
SELECT employee_id,last_name,salary * 12 * (1 + IFNULL(commission_pct,0)) "ANNUAL SALARY" FROM employees;

2、查询 employees 表中去除重复的 job_id 以后的数据。

SELECT DISTINCT job_id FROM employees;

3、查询工资大于 12000 的员工姓名和工资。

mysql> SELECT last_name,salary FROM employees WHERE salary>12000;

4、查询员工号为 176 的员工的姓名和部门号。

mysql> SELECT last_name,department_id FROM employees WHERE employee_id=176;
+-----------+---------------+
| last_name | department_id |
+-----------+---------------+
| Taylor    |            80 |
+-----------+---------------+
1 row in set (0.00 sec)

5、显示表 departments 的结构,并查询其中的全部数据。

mysql> DESC departments;
+-----------------+-------------+------+-----+---------+-------+
| Field           | Type        | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| department_id   | int         | NO   | PRI | 0       |       |
| department_name | varchar(30) | NO   |     | NULL    |       |
| manager_id      | int         | YES  | MUL | NULL    |       |
| location_id     | int         | YES  | MUL | NULL    |       |
+-----------------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

mysql> SELECT * FROM departments;

6、选择工资不在 5000 到 12000 的员工的姓名和工资。

mysql> SELECT last_name,salary FROM employees WHERE NOT salary BETWEEN 5000 AND 12000;
mysql> SELECT last_name,salary FROM employees WHERE salary < 5000 OR salary > 12000;

7、选择在20或50号部门工作的员工姓名和部门号。

SELECT last_name,department_id FROM employees WHERE department_id IN(20, 50);
SELECT last_name,department_id FROM employees WHERE department_id = 20 OR department_id = 50;

8、选择公司中没有管理者的员工姓名及job_id。

mysql> SELECT last_name,job_id FROM employees WHERE manager_id <=> NULL;
+-----------+---------+
| last_name | job_id  |
+-----------+---------+
| King      | AD_PRES |
+-----------+---------+
1 row in set (0.00 sec)

mysql> SELECT last_name,job_id FROM employees WHERE manager_id IS NULL;
+-----------+---------+
| last_name | job_id  |
+-----------+---------+
| King      | AD_PRES |
+-----------+---------+
1 row in set (0.00 sec)

mysql> SELECT last_name,job_id FROM employees WHERE ISNULL(manager_id);
+-----------+---------+
| last_name | job_id  |
+-----------+---------+
| King      | AD_PRES |
+-----------+---------+
1 row in set (0.00 sec)

mysql> SELECT last_name,job_id FROM employees WHERE NOT manager_id IS NOT NULL;
+-----------+---------+
| last_name | job_id  |
+-----------+---------+
| King      | AD_PRES |
+-----------+---------+
1 row in set (0.00 sec)

9、选择公司中有奖金的员工姓名,工资和奖金级别。

mysql> SELECT last_name,salary,commission_pct FROM employees WHERE commission_pct IS NOT NULL;

10、选择员工姓名的第三个字母是a的员工姓名。

mysql> SELECT last_name FROM employees WHERE last_name LIKE '__a%';

11、选择姓名中有字母a和k的员工姓名。

mysql> SELECT last_name FROM employees WHERE last_name LIKE '%a%k%' OR last_name LIKE '%K%a%';
+------------+
| last_name  |
+------------+
| Kochhar    |
| Kaufling   |
| Markle     |
| Atkinson   |
| Philtanker |
| Kumar      |
+------------+

12、显示出表 employees 表中 first_name 以 'e' 结尾的员工信息。

mysql> SELECT first_name FROM employees WHERE first_name LIKE '%e';
mysql> SELECT first_name FROM employees WHERE first_name REGEXP 'e$';

13、显示出表 employees 部门编号在 80-100 之间的姓名、工种。

mysql> SELECT last_name,job_id FROM employees WHERE department_id BETWEEN 80 AND 100;

14、显示出表 employees 的 manager_id 是 100,101,110 的员工姓名、工资、管理者id。

mysql> SELECT last_name,job_id FROM employees WHERE department_id BETWEEN 80 AND 100;

15、查询员工的姓名和部门号和年薪,按年薪降序,按姓名升序显示。

SELECT last_name,department_id,salary * 12 AS "AnnualSalary" FROM employees ORDER BY AnnualSalary DESC, last_name ASC;

16、选择工资不在 8000 到 17000 的员工的姓名和工资,按工资降序,显示第21到40位置的数据。

# 注意初始位置是从0开始的,显示第21条记录之后的数据,初始位置就应该为20
SELECT last_name,salary FROM employees WHERE NOT salary BETWEEN 8000 AND 17000 ORDER BY salary DESC LIMIT 20 OFFSET 20;
SELECT last_name,salary FROM employees WHERE NOT salary BETWEEN 8000 AND 17000 ORDER BY salary DESC LIMIT 20, 20;

17、查询邮箱中包含E的员工姓名,邮箱及部门号,并先按邮箱的字节数降序,再按部门号升序。

SELECT last_name,email,department_id FROM employees WHERE email LIKE '%E%' ORDER BY LENGTH(email) DESC, department_id ASC;
SELECT last_name,email,department_id FROM employees WHERE email REGEXP '[E]' ORDER BY LENGTH(email) DESC, department_id ASC;

至此今天的学习就到此结束了,笔者在这里声明,笔者写文章只是为了学习交流,以及让更多学习数据库的读者少走一些弯路,节省时间,并不用做其他用途,如有侵权,联系博主删除即可。感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!


在这里插入图片描述

    好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
    如果我的博客对你有帮助、如果你喜欢我的博客内容,请 点赞评论收藏 一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
 编码不易,大家的支持就是我坚持下去的动力。点赞后不要忘了 关注 我哦!

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Amo Xiang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值