1. 写一个查询显示当前日期,列标签显示为 Date。
select CURDATE()"DATE" FROM dual;
2. 对每一个雇员,显示 employee number、last_name、salary 和 salary 增加 15%,并且表示成整数,列标签显示为 New Salary。将你的 SQL 语句存到名为 lab3_2.sql 的文本文件中。
select employee_id "employee number",last_name,salary,ROUND(1.15*salary,0)"NEW SALARY"
FROM employees;
4. 修改查询 lab3_2.sql 添加一个列,该列从新薪水 New Salary 列中减去旧薪水,列标签为 Increase。保存内容到文件 lab3_4.sql 中。运行修订的查询。
select employee_id "employee number",last_name,salary,ROUND(1.15*salary,0) AS "NEW SALARY",salary*1.15-salary AS "INCREASE"
FROM employees;
5. 写一个查询用首字母大写,其它字母小写显示雇员的 last names,显示名字的长度,对所有名字开始字母是 J、A 或 M 的雇员,给每列一个适当的标签。用雇员的 last names 排序结果。
select last_name "Name",LENGTH(last_name) AS "Length"
from employees
where last_name LIKE 'J%' OR last_name LIKE 'A%' OR last_name LIKE 'M%'
ORDER BY last_name;
6. 对每一个雇员,显示其last name,并且计算从雇员受雇日期到今天的月数,列标签MONTHS_WORKED。按受雇月数排序结果,四舍五入月数到最靠近的整数月。 注:你的结果将不同。
select last_name,ROUND(TIMESTAMPDIFF(MONTH,hire_date,CURDATE()),0) AS "MONTH_WORKED"
FROM employees
ORDER BY TIMESTAMPDIFF(MONTH,hire_date,CURDATE());
8. 创建一个查询显示所有雇员的 last name 和 salary。格式化为 15 个字符长度,用 $ 左填充,列标签 SALARY。
select last_name,lpad(replace(REPLACE(salary,',',''),'.00',''),15,'$') AS SALARY
FROM employees;
10. 显示 last name、hire date 和 雇员开始工作是周几,列标签 DAY,用星期一作为周的起始日排序结果。
select last_name,hire_date,CASE DAYOFWEEK(hire_date)
WHEN 1 THEN 'Sunday'
WHEN 2 THEN 'Monday'
WHEN 3 THEN 'Tuesday'
WHEN 4 THEN 'Wednesday'
WHEN 5 THEN 'Thursday'
WHEN 6 THEN 'Friday'
WHEN 7 THEN 'Saturday'
end "DAY"
from employees
ORDER BY DAYOFWEEK(hire_date-1);
11. 创建一个查询显示雇员的 last names 和 commission (佣金) 比率。如果雇员没有佣金,显示 “No Commission”,列标签 COMM。
select last_name,IF(commission_pct IS NULL,'No Commission',commission_pct) "COMM"
from employees;
12. 创建一个查询显示雇员的 last names 并带星号显示他们的年薪,每个星号表示1000美圆。按薪水降序排序数据。列标签为 EMPLOYEES_AND_THEIR_SALARIES。
select CONCAT(last_name,rpad('*',round(salary/1000,0),'*'))"EMPLOYEES_AND_THEIR_SALARIES"
FROM employees
ORDER BY salary DESC;
13. 用 CASE 语法,写一个查询,按照下面的数据显示所有雇员的基于 JOB_ID 列值的级别。
工作 级别
AD_PRES A
ST_MAN B
IT_PROG C
SA_REP D
ST_CLERK E
不在上面的 0
select job_id,CASE job_id
WHEN "AD_PRES" THEN "A"
WHEN "ST_MAN" THEN "B"
WHEN "IT_PROG" THEN "C"
WHEN "SA_REP" THEN "D"
WHEN "ST_CLERK" THEN "E"
ELSE "0"
END "G"
FROM employees;
加油加油^-^