MySQL数据库技术 第二版 章末 答案—单元5
以下是我个人所尝试过得答案,若有不正确的地方请告知,谢谢!
由于实在是太多内容了,原谅我省略题目内容
单元5 数据查询 ---- 实训5----P104
1、select语句的基本使用
– 1、
SELECT DISTINCT departmentID AS 员工部门号, sex AS 性别
FROM em_copy1;
– 2、
SELECT (InCome - OutCome) AS 实际收入
FROM salary;
– 3、
SELECT NAME AS 姓名,
CASE
WHEN sex=0 THEN "女"
WHEN sex=1 THEN "男"
END AS 性别
FROM employees;
– 4、
SELECT Address AS adress, PhoneNumber AS telephone
FROM employees;
– 5、
SELECT AVG(InCome) AS 员工月收入平均数
FROM salary;
– 6、
SELECT SUM(OutCome) AS 员工总支出
FROM salary;
– 7、
SELECT Address AS 地址, PhoneNumber AS 电话号码
FROM employees
WHERE sex=0;
– 8、
SELECT COUNT(employeeID) AS 员工总数
FROM employees;
– 9、
SELECT employeeID
FROM salary
WHERE
( InCome=( SELECT MAX(InCome) FROM salary ) )
OR
( InCome=( SELECT MIN(InCome) FROM salary ) );
2、条件查询
– 1、
SELECT employeeID
FROM salary
WHERE InCome>2000;
– 2、
SELECT NAME, Address, Birthday
FROM employees
WHERE (Birthday>="1971");
– 3、
/*方一*/
SELECT *
FROM employees
WHERE
(WorkYear>=3)
AND
(sex=1)
AND
Education IN ("本科", "硕士", "博士");
/*方二*/
SELECT *
FROM employees
WHERE
(WorkYear>=3)
AND
(sex=1)
AND
(Education="本科" OR
Education="硕士" OR
Education="博士")
;
– 4、
SELECT NAME, Address, Education
FROM employees
WHERE employeeID LIKE '%0_';
– 5、
SELECT employeeID, InCome
FROM salary
WHERE InCome BETWEEN 2000 AND 3000;
3、多表查询
USE yggl;
– 1、
-- 1、 ---方一
SELECT departments.DepartmentName, employees.*
FROM employees
JOIN departments ON ( employees.DepartmentID = departments.DepartmentID )
WHERE (NAME="王林");
-- 1、 ---方二
SELECT d.DepartmentName, e.*
FROM employees AS e, departments AS d
WHERE (
e.DepartmentID = d.DepartmentID
AND
NAME="王林"
);
– 2、
SELECT employees.*
FROM employees
JOIN departments ON (employees.`DepartmentID`=departments.`DepartmentID`)
WHERE departments.`DepartmentName` IN ("财务部", "研发部", "市场部");
– 3、
SELECT salary.`InCome` AS "薪水", employees.*
FROM employees
JOIN salary ON ( employees.`EmployeeID`=salary.`EmployeeID` );
– 4、
SELECT NAME AS "姓名", salary.`InCome` AS "薪水"
FROM employees
JOIN salary /*薪水*/ ON ( employees.`EmployeeID`=salary.`EmployeeID` )
JOIN departments/*部门*/ ON ( employees.`DepartmentID`=departments.`DepartmentID` )
WHERE
( departments.DepartmentName = "研发部" )
AND
( employees.Birthday < '1970' );
– 5、
SELECT employees.name AS "姓名", employees.Address AS "住址",
CASE
WHEN salary.`InCome` < 2000 THEN "低收入"
WHEN ( salary.`InCome` >= 2000 AND salary.`InCome` <= 3000) THEN "中等收入"
WHEN salary.`InCome` > 3000 THEN "高收入"
END
AS "收入水平"
, salary.`InCome` AS "收入数据化"
FROM employees, salary;
4、分类汇总与排序
– 1、
SELECT COUNT(departmentID) AS "人数"
FROM employees
GROUP BY departmentID;
– 2、
SELECT sex, COUNT(sex) AS "人数"
FROM employees
GROUP BY sex;
– 3、
SELECT employees.`DepartmentID`, departmentname AS "部门名称", COUNT(employees.`DepartmentID`) AS "员工人数"
FROM departments
JOIN employees ON (departments.`DepartmentID` = employees.`DepartmentID`)
GROUP BY departmentname
HAVING COUNT(*)>2;
– 4、
SELECT Education AS "学历", COUNT(*) AS "人数"
FROM employees
GROUP BY Education;
– 5、
-- 5、 --- 年龄越大,出生日期越小
SELECT *
FROM employees
ORDER BY Birthday ASC;
– 6、
SELECT InCome
FROM salary
ORDER BY InCome ASC;
– 7、
SELECT WorkYear, COUNT(*) AS 人数
FROM employees
GROUP BY WorkYear
ORDER BY 人数 ASC;
感谢观看!
更多推荐
MySQL数据库技术 第二版 章末 答案—单元5 ----实训5
发布评论