MySQL练习2

学习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 = '财务部'));

posted @ 2016-08-22 14:14  线团  阅读(1311)  评论(0编辑  收藏  举报