学习MySQL过程中做的练习题,感觉是不错的例子就记录下来。

练习要使用到的表:

表一:员工表–> yg

y_id y_name y_sex y_age y_address b_id
1 赵老大 19 天津 3
2 钱老二 25 北京 1
3 孙老四 61 上海 2
4 李老四 23 广州 3
5 周老五 22 福建 1
6 吴老六 33 深圳 3
7 郑老七 31 天津 1
8 王老八 45 不详 2

表二:部门表–>bumen

b_id b_name
1 财务部
2 后勤部
3 人事部

1、查询年龄在25至30岁之间的男员工的姓名和住址。

SELECT y_name, y_address
FROM yg
WHERE(
y_age BETWEEN 18 AND 25
AND
y_sex = '男');

2、查询财务部所有40岁以下男员工的所有信息

SELECT *
FROM yg
WHERE(
y_sex = '男'
AND
y_age < 40
AND
b_id = (
SELECT b_id
FROM bumen
WHERE b_name = '财务部'));

3、查询人事部年龄最大的女员工姓名

SELECT y_name, MAX(y_age)
FROM yg
WHERE
(y_sex = '女'
AND
b_id =
(SELECT b_id
FROM bumen
WHERE b_name = '人事部'));

4、新到一名员工,已知姓名,性别,年龄,将此员工加入到员工表

INSERT INTO yg
(y_name, y_sex, y_age)
VALUES
('小明','男',18);

5、在员工表中,将人事部年龄大于30岁的女同事,调到后勤部

UPDATE yg
SET
b_id =
(SELECT b_id
FROM bumen
WHERE b_name = '后勤部')
WHERE
(y_age >40
AND
y_sex = '女'
AND
b_id =
(SELECT b_id
FROM bumen
WHERE b_name = '人事部'));

6:查询每个部门年龄最大的员工,显示部门名字和年龄。

SELECT yg.y_name, bumen.b_name
FROM yg, bumen
WHERE yg.b_id = bumen.b_id
GROUP BY yg.b_id
HAVING MAX(y_age);

7:查询每个部门各有多少人,显示部门名字和人数,按人数倒序,如果人数相同,按部门编号正序。

SELECT bumen.b_name, COUNT(yg.y_name)
FROM bumen, yg
WHERE bumen.b_id = yg.b_id
GROUP BY yg.b_id
ORDER BY COUNT(yg.y_name) DESC,bumen.b_id;

8:将孙老三的的名字改为孙老四,并调到财务部。

UPDATE yg
SET
y_name = '孙老四',
b_id =
(SELECT b_id
FROM bumen
WHERE b_name = '财务部')
WHERE y_name = '孙老三';

9:将后勤部年龄大于60岁的员工删除。

DELETE
FROM yg
WHERE
(y_age > 60
AND
b_id =
(SELECT b_id
FROM bumen
WHERE b_name = '后勤部'));

10:查询财务部年龄不在20-30之间的男生信息。

SELECT *
FROM yg
WHERE
(y_sex = '男'
AND
y_age NOT BETWEEN 20 AND 30
AND
b_id =
(SELECT b_id
FROM bumen
WHERE b_name = '财务部'));

MySQL练习2的更多相关文章

  1. Hadoop 中利用 mapreduce 读写 mysql 数据

    Hadoop 中利用 mapreduce 读写 mysql 数据   有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...

  2. mysql每秒最多能插入多少条数据 ? 死磕性能压测

    前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感 ...

  3. LINUX篇,设置MYSQL远程访问实用版

    每次设置root和远程访问都容易出现问题, 总结了个通用方法, 关键在于实用 step1: # mysql -u root mysql mysql> Grant all privileges o ...

  4. nodejs进阶(6)—连接MySQL数据库

    1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...

  5. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  6. 闰秒导致MySQL服务器的CPU sys过高

    今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...

  7. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  8. Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制

    将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...

  9. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境

    首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...

  10. 当忘记mysql数据库密码时如何进行修改

    因为长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件 ...

随机推荐

  1. 《Entity Framework 6 Recipes》中文翻译系列 (24) ------ 第五章 加载实体和导航属性之查询内存对象

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-4  查询内存对象 问题 你想使用模型中的实体对象,如果他们已经加载到上下文中, ...

  2. 【Android环境搭建】解决安装使用SDK Manager更新时的问题

    问题描述: 安装使用SDK Manager更新时出现问题 Failed to fetch URL  https://dl-ssl.google.com/android/repository/repos ...

  3. 学习RBAC 用户·角色·权限·表

  4. Android开发学习之路-PopupWindow和仿QQ左滑删除

    这周作业,要做一个类似QQ的左滑删除效果的ListView,因为不想给每个item都放一个按钮,所以决定用PopupWindow,这里记录一下 先放一下效果图: 先说明一下这里面的问题: ①没有做到像 ...

  5. 修改windows自带的Ctrl+Space输入法切换快捷键

    使用场景: 多为我等码农使用一些编辑器时,编辑器的默认代码提示热键为 ctrl+space ,但这个热键被系统的输入法开关占用.如果遇到可以设置快捷键的编辑器还好,要是不能设置的话(比如火狐浏览器的代 ...

  6. Atitit图像处理的用途

    Atitit图像处理的用途 1.1. 分类识别 (人脸检测,肤色识别,人类检测:1 1.2. 炫丽的动态按钮生成:色相旋转+自己的草书等图片合成,图片自动裁剪1 1.3. 集成调用自绘gui接口:识别 ...

  7. 20个JS优化代码技巧

    原文网址链接为:http://www.jstips.co/ .截取了一部分本人认为比较实用的技巧分享给大家.其中一小部分技巧为JS面向对象的写法,不宜一一列出.关于JS面向对象的写法可参考本人前几篇随 ...

  8. SpringMVC配置项学习笔记

    1. <mvc:annotation-driven /> <mvc:annotation-driven />是一种简写形式,默认会注册DefaultAnnotationHand ...

  9. CSS中div覆盖另一个div

    将一个div覆盖在另一个div上有两种手段:一是设置margin为负值,二是设置绝对定位. 可以根个人情况设置z-index的值 1->position 为absolute的情况 <htm ...

  10. 谈谈基于OAuth 2.0的第三方认证 [上篇]

    对于目前大部分Web应用来说,用户认证基本上都由应用自身来完成.具体来说,Web应用利用自身存储的用户凭证(基本上是用户名/密码)与用户提供的凭证进行比较进而确认其真实身份.但是这种由Web应用全权负 ...