MySQL:数据库练习题-1

这篇具有很好参考价值的文章主要介绍了MySQL:数据库练习题-1。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

表一:employees

USE yggl
SELECT * FROM employees
INSERT into employees VALUES
('102201','刘明','本科',19721018,1,3,'虎踞路100-2','83606608',5),
('102208','朱骏','硕士',19650928,1,2,'牌楼巷5-3-106','84708817',5),
('108991','钟敏','硕士',19790810,0,4,'中山路10-3-105','83346722',3),
('111006','张石兵','本科',19741001,1,1,'解放路34-1-203','84563418',5),
('210678','林涛','大专',19770402,1,2,'中山北路24-35','83467336',3),
('302566','李玉珉','本科',19680920,1,3,'热河路209-3','58765991',4),
('308759','叶凡','本科',19781118,1,2,'北京西路3-7-52','83308901',4),
('504209','陈林琳','大专',19690903,0,5,'汉中路120-4-12','84468158',4)

表二:salary

SELECT * FROM salary
INSERT into salary VALUES
('000001',2100.8,123.09),
('010008',1582.62,88.03),
('020010',2860,198),
('020018',2347.68,180),
('102201',2569.88,185.65),
('102208',1980,100),
('108991',3259.98,281.52),
('111006',1987.01,79.58),
('210678',2240,121),
('302566',2980.7,210.2),
('308759',2531.98,199.08),
('504209',2066.15,108)

表三:departments


SELECT * FROM departments
INSERT into departments VALUES
(1,"财务部",NULL),
(2,"人力资源部",NULL),
(3,"经理办公室",NULL),
(4,"研发部",NULL),
(5,"市场部",NULL)

练习题及答案:

---1、查询empioyees表的员工部门号和性别,要求消除重复行

SELECT DISTINCT 性别,员工部门号 FROM employees

---2、计算每个雇员的实际收入(实际收入=收入-支出)

SELECT 员工编号,收入-支出 as 实际收入 from salary

---3、查询employees表中的姓名和性别,要求性别值为1时显示为“男”,为0时显示为“女”

SELECT 姓名,性别 from employees WHERE 性别=1 as '男' 

---4、查询每个雇员的地址和电话号码,显示的列标题为adress,telephone

SELECT 地址 AS "adress",电话号码 AS "telephone" from employees 

---5、计算salary表中员工月收入的平均数

SELECT avg(收入) as 员工月收入的平均数 from salary

---6、计算所有员工的总支出

SELECT sum(支出) as 所有员工的总支出 from salary

---7、显示女雇员的地址和电话号码

SELECT 地址,电话号码 from employees where 性别=0

---8、计算员工总数

SELECT count(*) as 员工总数 from employees

---9、显示最高收入和最低收入的员工的员工编号

SELECT max(收入) as 最高收入,min(收入) as 最低收入 FROM salary

二、条件查询

---1、显示月收入高于2000元的员工编号

SELECT 员工编号 from salary where 收入>2000

---2、查询1970年以后出生的员工的姓名和地址

SELECT 姓名,地址 from employees where 出生日期>19700000

---3、显示工作年限3年以上(含3年),学历在本科以上(含本科)的男性员工的信息

SELECT * from employees where 工作年限>=3 and 学历 in("本科","硕士") and 性别=1

---4、查找员工编号中倒数第2个数字为0的姓名,地址和学历

SELECT 姓名,地址,学历 from employees where 员工编号 like "%0_"

---5、查询月收入在2000远~3000远的员工编号

SELECT 员工编号 from salary where 收入 BETWEEN 2000 and 3000

三.多表查询

---1、查询“王林”的基本情况和所工作的部门名称

SELECT employees.*,departments.部门名称 FROM employees
JOIN departments ON employees.员工部门号=departments.部门编号
WHERE employees.姓名='王林'

---2、查询财务部、研发部、市场部的员工信息。

SELECT employees.*,departments.部门名称 FROM employees
JOIN departments ON employees.员工部门号=departments.部门编号
WHERE departments.部门名称 IN ('财务部','研发部','市场部')

---3、查询每个雇员的基本情况和薪水情况。

SELECT employees.*,salary.* FROM employees
JOIN salary ON employees.员工编号=salary.员工编号

---4、查询研发部在1970年以前出生的员工姓名和薪水情况。

SELECT e.姓名,s.* FROM employees e,salary s,departments d
WHERE e.员工编号=s.员工编号 AND e.员工部门号=d.部门编号
AND e.出生日期 < '1970' AND 部门名称='研发部'

---5、查询员工的姓名、住址和收入水平,要求2 000元以下显示为“低收入”,
2000元~3000元显示为“中等收入”,3000元以上时显示为“高收入”。

SELECT e.姓名,e.地址,
CASE
       WHEN 收入 < '2000' THEN '低收入'
       WHEN 收入 BETWEEN '2000' AND '3000' THEN '中等收入'
       WHEN 收入 > '3000' THEN '高收入'
END AS '收入等级'
FROM employees e,salary s
WHERE e.员工编号=s.员工编号

四、分类汇总与排序

---1、按部门列出该部门工作的员工人数。

SELECT count(*),d.部门编号 FROM employees e JOIN departments d 
ON e.员工部门号=d.部门编号 GROUP BY 员工部门号

---2、分别统计男性员工和女性员工人数。

SELECT count(*),
CASE
       WHEN 性别='1' THEN '男'
       WHEN 性别='0' THEN '女'
END AS '性别'
FROM employees e GROUP BY 性别

---3、查找雇员数超过2人的部门名称和员工数量。

SELECT COUNT(*),d.部门名称 FROM employees e JOIN departments d ON e.员工部门号=d.部门编号
GROUP BY 员工部门号 HAVING COUNT(e.员工部门号) > 2

---4、按员工学历分组统计各种学历人数。

SELECT COUNT(*),e.学历 FROM employees e GROUP BY 学历

---5、将员工信息按出生日期从大到小排序。

SELECT * FROM employees ORDER BY 出生日期 DESC

---6、将员工薪水按收入多少从小到大排序。

SELECT * FROM salary ORDER BY 收入

---7、按员工的工作年限分组,统计各个工作年限的人数,并按人数从小到大排序。
 文章来源地址https://www.toymoban.com/news/detail-444788.html

SELECT COUNT(*),employees.工作年限 FROM employees GROUP BY 工作年限
ORDER BY COUNT(工作年限)

到了这里,关于MySQL:数据库练习题-1的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 数据库SQL语言实战(五)(数据库系统概念第三章练习题)

    数据库SQL语言实战(五)(数据库系统概念第三章练习题)

    目录 前言知识 一、 关系模式 二、 属性域 例子 介绍 作用 三、Select常数 举例 解释  四、集合差运算 本质 举例  结论 练习题 3.17 3.18  3.21  总结  注:本文的SQL语言适用的是 Oracle数据库 与mySQL可能存在略微不同 模式的定义 :模式则是指数据库中 所有关系模式 的集合,它

    2024年04月22日
    浏览(18)
  • 数据库系统概述——第六章 关系数据理论(知识点复习+练习题)

    数据库系统概述——第六章 关系数据理论(知识点复习+练习题)

    🌟 博主: 命运之光 🦄 专栏: 离散数学考前复习(知识点+题) 🍓 专栏: 概率论期末速成(一套卷) 🐳 专栏: 数字电路考前复习 🦚 专栏: 数据库系统概述 ☀️ 博主的其他文章: 点击进入博主的主页​​​​​ 前言: 身为大学生考前复习一定十分痛苦,你有没有过

    2024年02月09日
    浏览(16)
  • 数据库系统概述——第一章 绪论(知识点复习+练习题)

    数据库系统概述——第一章 绪论(知识点复习+练习题)

    ✨ 博主: 命运之光 🦄 专栏: 离散数学考前复习(知识点+题) 🍓 专栏: 概率论期末速成(一套卷) 🐳 专栏: 数字电路考前复习 🦚 专栏: 数据库系统概述 ✨ 博主的其他文章: 点击进入博主的主页​​​​​ 前言: 身为大学生考前复习一定十分痛苦,你有没有过以

    2024年02月09日
    浏览(13)
  • 数据库系统概述——第三章 关系数据库标准语言SQL(知识点复习+练习题)

    数据库系统概述——第三章 关系数据库标准语言SQL(知识点复习+练习题)

    🌟 博主: 命运之光 🦄 专栏: 离散数学考前复习(知识点+题) 🍓 专栏: 概率论期末速成(一套卷) 🐳 专栏: 数字电路考前复习 🦚 专栏: 数据库系统概述 ☀️ 博主的其他文章: 点击进入博主的主页​​​​​ 前言: 身为大学生考前复习一定十分痛苦,你有没有过

    2024年02月10日
    浏览(13)
  • 2小时解不完的数据库练习题,来挑战一下吧!

    2小时解不完的数据库练习题,来挑战一下吧!

    我已经记不起来,有多久没更新文章了。 5月中旬我还在上班,中旬以后一系列发生的事情,真的远远超出了可承受范围,只能硬着头皮面对! 我是谁,我应该是谁,又能怎样,只能向前····· class表 course表 score表 student表 teacher表 1、查询所有的课程的名称以及对应的任课

    2024年02月09日
    浏览(10)
  • MySQL的数据备份与还原--练习题

    MySQL的数据备份与还原--练习题

    MySQLdump是MySQL提供的一个非常有用的数据库备份工具。MySQLdump命令执行时,可以将数据库备份成一个文本文件,该文件中实际上包含了多个CREATE 和 INSERT语句,使用这些语句可以重新创建表和插入数据。  看题: CREATE DATABASE booksDB;     use booksDB;     CREATE TABLE books     (   

    2024年02月17日
    浏览(15)
  • MySQL练习题(6)

    MySQL练习题(6)

    1、使用mysqldump命令备份数据库中的所有表   2、备份booksDB数据库中的books表 3、使用mysqldump备份booksDB和test数据库 4、使用mysqldump备份服务器中的所有数据库 5、使用mysql命令还原第二题导出的book表 6、进入数据库使用source命令还原第二题导出的book表 1、建立一个utf8编码的数据

    2024年02月16日
    浏览(15)
  • MySQL综合练习题

    MySQL综合练习题

    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

    2024年01月22日
    浏览(13)
  • MySQL45道练习题

    MySQL45道练习题

    作业需要数据表SQL语句已给  1. 查询\\\" 01 \\\"课程比\\\" 02 \\\"课程成绩高的学生的信息及课程分数  1.1 查询同时存在\\\" 01 \\\"课程和\\\" 02 \\\"课程的情况 1.2 查询存在\\\" 01 \\\"课程但可能不存在\\\" 02 \\\"课程的情况(不存在时显示为 null ) 1.3 查询不存在\\\" 01 \\\"课程但存在\\\" 02 \\\"课程的情况 2.查询平均成绩大于

    2024年01月25日
    浏览(13)
  • MySQL单表查询练习题

    MySQL单表查询练习题

    目录 第一题  第二题  第三题   1.创建数据表pet,并对表进行插入、更新与删除操作,pet表结构如表8.3所示。 (1)首先创建数据表pet,使用不同的方法将表8.4中的记录插入到pet表中。 mysql create table pet( name varchar(20) not null, owner varchar(20), species varchar(20) not null, sex char(1) not nu

    2024年02月13日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包