学习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. IoC在ASP.NET Web API中的应用

    控制反转(Inversion of Control,IoC),简单地说,就是应用本身不负责依赖对象的创建和维护,而交给一个外部容器来负责.这样控制权就由应用转移到了外部IoC容器,控制权就实现了所谓的 ...

  2. Java 浅析三大特性之一继承

    上文Java 浅析三大特性之一封装我们说到Java是一个注重编写类,注重于代码和功能复用的语言.Java实现代码复用的方式有很多,这里介绍一个重要的复用方式--继承. 在介绍继承之前,我们要明确一点, ...

  3. 【原】Python 用例:二进制写入和读取文件内容

    import pickle as p shoplistfile='shoplist.data' shoplist=['apple','carrot'] # because the dump opera ...

  4. 我也来说说DDD~大话目录

    回到占占推荐博客索引 DDD之前没有接触过,但一但有了接触就一发不可收拾,他会带去进入一个全新的世界! DDD不是新技术,而是新思想,新模式,是软件开发领域的一次突破,它更接近于业务,对于业务的改动它 ...

  5. 2013 duilib入门简明教程 -- 结合win32和MFC (16)

        虽然duilib自带在MFC中使用duilib的Demo,但只是MFC窗口和duilib窗口不重叠的情况.如果要在MFC窗口中嵌入duilib控件,或者在duilib控件中嵌入MFC的控件的话 ...

  6. fir.im Weekly - 让 iOS 应用更加安全

    攻易防难,关于 iOS 应用安全看起来有些神秘.iOS Security , 源于@吴发伟_则平博客翻译的关于iOS安全的一系列文章,现在站点已经系统收集了大量关于 iOS 逆向.安全.反编译.静动态 ...

  7. iOS-App上架流程

    前言:作为一名IOS开发者,把开发出来的App上传到App Store是必须的.下面就来详细介绍下具体流程. 1.打开苹果开发者中心:https://developer.apple.com 打开后点击 ...

  8. JS原生第八篇 (帅哥)

    1.1 复习     1. clientX          clientWidth   可视区域的宽度 clientWidth     width  +  padding offsetWidth   ...

  9. JS数字计算精度误差的解决方法

    本篇文章主要是对javascript避免数字计算精度误差的方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助. 如果我问你 0.1 + 0.2 等于几?你可能会送我一个白眼,0.1 + 0. ...

  10. C#一探究竟——枚举

    枚举是值类型而System.Enum却是引用类型的原因   Q:在C#里,我们如何表达枚举类型? A:你可以使用enum关键字(keyword)来声明一个枚举类型(enum type): // Cod ...