数据查询
(1) 基本数据查询
a) 分别查询表employeesregionscountrieslocations表中的所有行和列
例:Select * from employees;
b) 创建一个查询,显示每个雇员的 last name, job_id, hire_date, employee_idemployee_id显示在第一列, HIRE_DATE 列指定一个别名 STARTDATE
Select employee_id,last_name,job_id,hire_date startdate from employees;
c) 创建一个查询从EMPLOYEES表中显示唯一的工作代码(job_id)
Select distinct job_id from employees;
d) 创建一个查询,显示收入超过 $12,000 的雇员的名字和薪水。
Select first_name,last_name,salary from employees where salary>12000;
e) 创建一个查询,显示雇员号为 176 的雇员的名字和部门号
Select first_name,last_name,department_id from employees
where employee_id=176;
f) 显示受雇日期在 1998220 199851 之间的雇员的名字、岗位(job_id)和受雇日期(hire_date)。按受雇日期顺序排序查询结果。
Select first_name,last_name,job_id,hire_date
From employees
Where hire_date between ’20-2-98’ and ‘1-5-98’
Order by hire_date (desc);
g) 显示所有在部门 20 50 的雇员的名字和部门号,并以名字按字母顺序排序。
Select first_name,last_name,department_id
From employees
Where department_id in(20,30)
Order by first_name;
h) 显示每一个在 1994 年受雇的雇员的名字和受雇日期
Select first_name,last_name,hire_date
From employees
Where hire_date like ‘%94’;
i) 对每一个雇员,显示 employee_idlast_namesalary salary 增加 15%,并且表示成整数,列标签显示为 New Salary
Select first_name,last_name, salary,round(salary*1.15,0) “New Salary”
From employees;
j) 显示所有没有主管经理的雇员的名字和工作岗位。
Select first_name,last_name, job_id
From employees
Where manager_id is null;
k) 显示所有名字中第三个字母是 a 的雇员的名字
Select first_name,last_name
From employees
Where first_name like ‘__a%’;
l) 显示所有名字中有一个 a 和一个 e 的雇员的名字。
Select first_name,last_name
From employees
Where first_name like ‘%a%’ and first_name like ‘%e%’;
m) 写一个查询显示当前日期,列标签显示为 Date
Select sysdate “date” from dual;
n) 查询表employeesdepartment_id列,department_id10时显示为“计算机工程系”,为20时显示为“汽车工程系”,其它显示为“其它”,分别用casedecode实现。
Select department_id,case department_id when 10 then '计算机工程系'
                              When 20 then '汽车工程系'
                              Else '其它'
                  End
From employees;
Select department_id,
decode(department_id,10,'计算机工程系',20,'汽车工程系','其它')
From employees;
o) 查询表employeessalary,如果salary小于3000显示为“低工资”,salary小于5000显示为“中”,其余显示为“高工资
Select salary,case when salary<3000 then ‘低工资
              When salary<5000 then ‘
              Else ‘高工资’ end from employees;
(2) 连接查询和子查询
a) 写一个查询显示所有雇员的 last_namedepartment_idand department_name
Select e.last_name,d.department_id,d.department_name
From employees e,departments d
Where e.department_id=d.department_id;
b) 写一个查询显示所有有佣金(commission_pcct不为空)的雇员的 last_namedepartment_namelocation_ID 和城市。
Select e.last_name,d.department_name,d.location_id,l.city
From employees e,departments d,locations l
Where e.department_id=d.department_id and d.location_id=l.location_id
And emission_pct is not null;
c) 写一个查询显示那些工作在 Toronto(城市名) 的所有雇员的 last_namedistinct查询job_titledepartment_id department_name
Select e.last_name,j.job_title,d.department_id,d.department_name
From employees e,departments d,locations l,jobs j
Where e.department_id=d.department_id and d.location_id=l.location_id
      And e.job_id=j.job_id and l.city=’Toronto’;
d) 显示雇员的 last name employee_id 连同他们的经理的 last name manager_id。列标签分别为 EmployeeEmp#Manager Mgr#
Select a.last_name ployee_id Emp#,
b.last_name ployee_id Mgr#
From employees a,employees b
Where a.manager_ployee_id;
e) 创建一个查询显示那些在雇员 Davies 之后入本公司工作的雇员的name hire_date
Select first_name,last_name from employees
Where hire_date>(select hire_date from employees where last_name=’Davies’);
f) 显示所有雇员的最高、最低、合计和平均薪水,列标签分别为:MaximumMinimumSum Average
Select max(salary) Maximum,min(salary) Minimum,
sum(salary) Sum ,avg(salary) Average
from employees;
g) 写一个查询显示每一工作岗位的人数。
Select job_id,count(*) from employees group by job_id;
h) 写一个查询显示最高和最低薪水之间的差。列标签是 DIFFERENCE
Select max(salary)-min(salary) DIFFERENCE from employees;
i) 显示经理号和经理付给雇员的最低薪水。排除那些经理未知的人。排除最低薪水小于等于 $6,000 的组。按薪水降序排序输出。
Select manager_id,min(salary) from employees
Where manager_id is not null
Group by manager_id
Having min(salary)<=6000;
j) 创建一个查询显示雇员总数,和在 199519961997 1998受雇的雇员人数。创建适当的列标题。
Select count(*) total,
      Sum(decode(to_char(hire_date,’YYYY’),’1995’,1,0)) “1995”,
      Sum(decode(to_char(hire_date,’YYYY’),’1996’,1,0)) “1996”,
      Sum(decode(to_char(hire_date,’YYYY’),’1997’,1,0)) “1997”,
      Sum(decode(to_char(hire_date,’YYYY’),’1998’,1,0)) “1998”

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。