要求
(1) 查询公司目前的员工数量
(2) 查询公司中女性员工的数量
(3) 查询在公司工作超过20年的员工姓名,职务,工资
(4) 统计公司不同年份入职员工的平均工资,最高工资以及人数
(5) 查询所有电话为6开头的客户信息。
(6) 按每个女性员工55岁男性员工60岁计算查询每个员工的姓名,生日,入职时间以及他(她)的退休时间。
(7) 查询公司中男性员工所占比率
(8) 查询上海客户的数量
(9) 统计公司在不同城市的客户数量
(10) 查询1996年10月订货的平均金额、最高金额、最低金额
(11) 查询员工信息,并按上任日期升序排列
(12) 查询公司96年11月的销售记录
(13) 统计公司里所有干部的 姓名,职务,年龄并按照年龄降序排序
(14) 查询每个月公司的销售额
(15) 查询公司中王姓员工的信息
(16) 查询公司中所有姓名有三个字的员工信息
(17) 查询公司员工的平均年龄
(18) 查询所有产品信息,并按产品编号升序排列
(19) 查询所供应商信息,并供应商名称降序排列
(20) 查询1996年10的采购总金额
过程
(1) 查询公司目前的员工数量
SELECT COUNT(*) AS 员工数量 FROM employee
与我们理想值20相匹配-------正确
(2) 查询公司中女性员工的数量
SELECT COUNT(*) AS 女性员工数量 FROM employee WHERE SEX='F'
(5) 查询在公司工作超过20年的员工姓名,职务,工资
SELECT emp_name AS 员工姓名 ,title AS 职务, salary AS 工资 FROM employee WHERE mod_date-date_hired > 20
(4) 统计公司不同年份入职员工的平均工资,最高工资以及人数
SELECT YEAR(date_hired) AS 年份,AVG(salary) AS 平均工资, MAX(salary) AS 最高工资, COUNT(*) AS 员工人数 FROM employee GROUP BY YEAR(date_hired) ORDER BY 年份
(5) 查询所有电话为6开头的客户信息。
SELECT * FROM customer WHERE tel_no LIKE '6%'
(6) 按每个女性员工55岁男性员工60岁计算查询每个员工的姓名,生日,入职时间以及他(她)的退休时间。
SELECT emp_name AS 姓名,birthday AS 生日,date_hired as 入职日期, CASE WHEN sex='F' THEN DATE_ADD(birthday,INTERVAL 55 YEAR) WHEN sex='M' THEN DATE_ADD(birthday,INTERVAL 60 YEAR) END AS 退休日期 FROM employee
(7) 查询公司中男性员工所占比率
SELECT ((SELECT COUNT(*) FROM employee WHERE sex='M' )/(SELECT COUNT(*) FROM employee)) AS 男性员工占比 FROM employee
(8) 查询上海客户的数量
SELECT COUNT(*) AS 上海客户数量 FROM customer WHERE addr LIKE '上海%'
(9) 统计公司在不同城市的客户数量
SELECT addr AS 城市 ,count(*) AS 客户数量 FROM customer GROUP BY addr
(10) 查询1996年10月订货的平均金额、最高金额、最低金额
SELECT AVG(qty * unit_price) AS 平均金额,max(qty * unit_price) AS 最高金额,min(qty * unit_price) AS 最低金额 FROM sale_item where year(order_date)=1996 AND MONTH(order_date)=10
(11) 查询员工信息,并按上任日期升序排列
SELECT * FROM employee ORDER BY date_hired
(12) 查询公司96年11月的销售记录
SELECT prod_name as 名称,qty AS 数量, unit_price AS 单价, qty * unit_price AS 金额 FROM sale_item,product WHERE year(order_date)=1996 AND MONTH(order_date)=11 AND sale_item.prod_id=product.prod_id
(13) 统计公司里所有干部的 姓名,职务,年龄并按照年龄降序排序
SELECT emp_name AS 姓名,title AS 职务,(YEAR(mod_date)-YEAR(birthday)) AS 年龄 FROM employee WHERE title != '职员' ORDER BY 年龄 DESC
(14) 查询每个月公司的销售额
SELECT MONTH(order_date) AS 月份,sum(qty*unit_price) AS 销售额 FROM sale_item GROUP BY MONTH(order_date) ORDER BY MONTH(order_date)
(15) 查询公司中王姓员工的信息
SELECT * FROM employee WHERE emp_name LIKE '王%'
(16) 查询公司中所有姓名有三个字的员工信息
SELECT * FROM employee WHERE CHAR_LENGTH(emp_name)=3
(17) 查询公司员工的平均年龄
SELECT AVG((YEAR(mod_date)-YEAR(birthday))) as 平均年龄 FROM employee
(18) 查询所有产品信息,并按产品编号升序排列
SELECT prod_name AS 商品名称,coalesce(stk_qty,0) as 库存数量,coalesce(sup_name,null) as 供货商名称 FROM product left join stock on product.prod_id=stock.prod_id left join supply on stock.sup_id=supply.sup_id ORDER BY product.prod_id
根据商品的信息,编号应该如此排列,而我查询的产品信息是名称,及它出自于那个商家,然后它的数量。
(19) 查询所供应商信息,并供应商名称降序排列
SELECT * FROM supply ORDER BY sup_id DESC
(20) 查询1996年10的采购总金额
SELECT sum(qty * unit_price) AS 总金额 FROM pur_item WHERE YEAR(pur_date)=1996 AND MONTH(pur_date)=10