mysql查询练习题
建库建表
a.建立一个公司数据库(gongsi)
CREATE DATABASE gongsi
b.建立一张部门表(部门编号b_id,部门名称b_name) ,
其中b_id为主键,自增长,b_name不允许为空
CREATE TABLE bumen (
b_id INT PRIMARY KEY AUTO_INCREMENT,
b_name VARCHAR(10) NOT NULL
)ENGINE=INNODB
c.建立一张员工表(员工编号y_id,姓名y_name,性别y_sex,年龄y_age,住址y_address,部门编号b_id),
其中y_id为主键自增长。
住址默认为’不详’
b_id依赖于部门表的b_id
CREATE TABLE yg(
y_id INT PRIMARY KEY AUTO_INCREMENT,
y_name VARCHAR(10),
y_sex ENUM('男','女'),
y_age INT,
y_address VARCHAR(18) DEFAULT '不详',
b_id INT,
FOREIGN KEY (b_id) REFERENCES bumen(b_id)
)ENGINE=INNODB
1、查询年龄在25至30岁之间的男员工的姓名和住址。
SELECT y_name,y_address FROM bumen,yg WHERE
bumen.b_id=yg.b_id AND y_sex=’男’ AND
y_age BETWEEN 25 AND 30
2、查询财务部所有40岁以下男员工的所有信息
SELECT * FROM bumen,yg WHERE bumen.b_id=yg.b_id AND
b_name='财务部' AND y_age<=40 AND y_sex=’男’
3、查询人事部年龄最大的女员工姓名
Select * from yg where y_age=(
Select max(y_age) from yg,bumen where bumen.b_id=yg.b_id
And y_sex=’女’ AND b_name=’人事部’
)
And y_sex=’女’ AND b_id=(Select b_id from bumen where b_name=’人事部’)
4、2号新到一名员工,已知姓名,性别,年龄,将此员工加入到员工表
INSERT INTO yg (y_name,y_sex,y_age)VALUES('小灰灰','男',13)
5、在员工表中,将人事部年龄大于30岁的女同事,调到后勤部
UPDATE yg SET b_id=(SELECT b_id FROM bumen WHERE b_name='后勤部')
WHERE y_id IN(
SELECT * FROM
(SELECT y_id FROM yg WHERE b_id=(SELECT b_id FROM bumen WHERE b_name='人事部')
AND y_age>30) xx
)AND y_sex='女'
6:查询每个部门年龄最大的员工,显示部门名字和年龄。
SELECT b_name,y_age FROM bumen,yg WHERE bumen.b_id=yg.b_id
GROUP BY b_name
HAVING MAX(y_age)
7:查询每个部门各有多少人,显示部门名字和人数,按人数倒序,如果人数相同,按部门编号正序。
SELECT b_name,COUNT(*) FROM bumen,yg WHERE
bumen.b_id=yg.b_id
GROUP BY bumen.b_id
ORDER BY COUNT(*)DESC,bumen.b_id ASC
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 IN(
SELECT b_id FROM bumen WHERE b_name='后勤部')
10:查询财务部年龄不在20-30之间的男生信息。
SELECT * FROM bumen,yg WHERE bumen.b_id=yg.b_id
AND b_name='财务部' AND y_sex=’男’
AND y_age NOT BETWEEN 20 AND 30
mysql查询练习题的更多相关文章
- mysql查询练习题-2016.12.16
>>>>>>>>>> 练习时间:2016.12.16 编辑时间:2016-12-20-->22:12:08 题: 涉及:多表查询.ex ...
- mysql 查询 练习题及答案
CREATE DATABASE school;USE school;/*1.创建student表格*//*id为主键 非空 唯一 */CREATE TABLE student (id INT(10) ...
- Qracle、Sql server 、mysql查询练习题
1. select * from emp; 2. select empno, ename, job from emp; 3. select empno 编号, ename 姓名, job 工作 fro ...
- 2016/3/16 45道MySQL 查询练习题
一. 设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...
- 【Python全栈-后端开发】MySQL数据库-练习题
MySQL数据库-练习题 一.表关系 请创建如下表,并创建相关约束 二.操作表 1.自行创建测试数据 2.查询“生物”课程比“物理”课程成绩高的所有学生的学号: 3.查询平均成绩大于60分的同学的学号 ...
- MySQL 查询练习记录
MySQL 查询练习记录 最近在复习mysql,在b站上找了一个感觉还不错的视频,把视频中查询练习相关的内容记录了下来,以便自己日后查阅和复习. 视频连接:https://www.bilibili.c ...
- MySQL-注释-Navicat基本使用-复杂查询练习题-解题思路-pymysql操作数据库-SQL注入-05
目录 mysql语句注释 navicat 的基本使用 特色(个人总结) 与数据服务器建立连接 创建&打开数据库.表 创建 打开 修改操作表结构 修改表结构 查询修改操作表数据 基本语句对应的操 ...
- MYSQL经典练习题,熟悉DQL
MYSQL经典练习题 (本练习题可让你熟悉DQL,快速的上手DQL) 首先,先在数据库中建立基本数据库以及表项: DROP DATABASE IF EXISTS `test`; CREATE DATA ...
- MySQL查询练习2
MySQL查询练习2 导读: 本次MySQL的查询语句是本人考试题目: 所有题目都已通过: 该查询练习并没有sql文件进行检查: 如果有书写以及其他错误欢迎指出. 题目正文: 1.找出借书超过5本的借 ...
随机推荐
- stark组件前戏(2)之单例模式
单,一个. 例,实例.对象. 通过利用Python模块导入的特性:在Python中,如果已经导入过的文件再被重新导入时候,python不会重新解释一遍,而是选择从内容中直接将原来导入的值拿来用. ...
- 解决maven项目Invalid bound statement (not found)的方法
用IDEA 做的ssm 的maven项目,登陆时出现上图问题. 原因是它读取不到DevUserMapper.xml文件和取它xml文件,后面查询在编译好的文件中,xml文件并没有引入进来,这就是导致出 ...
- mysql进阶三四五六
排序查询 一.语法 select 查询表 from 表 where 筛选条件 order by 排序列表[asc / desc] 特点: 1.asc:升序 desc:降序 2.排序列表之中支持单字段, ...
- exkmp略解
推导 ext[i]表示母串s[i..lens]和子串t[1..lent]的最长公共前缀. nxt[i]表示t[i..lent]和t[1..lent]的最长公共前缀. 假设ext[1..k]已经算好,现 ...
- Install ADDS on Windows Server 2012 R2 with PowerShell
Install ADDS on Windows Server 2012 R2 with PowerShell Posted by ethernuno on 20/04/2014 In this tut ...
- 手机APP设计网
http://hao.xueui.cn/ http://www.25xt.com/
- wordpress 区分多语言站点
$blog_title = get_bloginfo( 'name' ); $table_name = ''; if ( $blog_title == 'Driver Easy' ) { $table ...
- bat 处理adb脚本
@echo off REM Funtion: 测试parsermode 接口CdxParserGetMediaInfo 和CdxParserRead REM Code by lzp 2017-05-0 ...
- Python多进程之multiprocessing模块和进程池的实现
1.利用multiprocessing可以在主进程中创建子进程,提升效率,下面是multiprocessing创建进程的简单例子,和多线程的使用非常相似 ''' 代码是由主进程里面的主线程从上到下执行 ...
- 【bzoj3544】[ONTAK2010]Creative Accounting 前缀和+STL-set
题目描述 给定一个长度为N的数组a和M,求一个区间[l,r],使得$(\sum\limits_{i=l}^{r}{a_i})\ mod\ M$的值最大,求出这个值,注意这里的mod是数学上的mod(即 ...