数据库查询语句
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据查询
(1)基本数据查询
a)分别查询表employees、regions、countries和locations表中的所有
行和列
例:Select * from employees;
b)创建一个查询,显示每个雇员的last name, job_id, hire_date, 和
employee_id,employee_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)显示受雇日期在1998年2月20日和1998年5月1日之间的雇
员的名字、岗位(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_id、last_name、salary 和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)查询表employees的department_id列,department_id为10时显示为“计算机工程系”,为20时显示为“汽车工程系”,其它显示为
“其它”,分别用case和decode实现。
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)查询表employees的salary列,如果salary小于3000显示为“低工资”,salary小于5000显示为“中”,其余显示为“高工资”
Select salary,case when salary<3000 then …低工资‟
When salary<5000 then …中‟
Else …高工资‟ end from employees;
(2)连接查询和子查询
a)写一个查询显示所有雇员的last_name、department_id、and
department_name
Select st_name,d.department_id,d.department_name
From employees e,departments d
Where e.department_id=d.department_id;
b)写一个查询显示所有有佣金(commission_pcct不为空)的雇员的
last_name、department_name、location_ID 和城市。
Select st_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 mission_pct is not null;
c)写一个查询显示那些工作在Toronto(城市名) 的所有雇员的
last_name、job_title、department_id 和department_name。
Select st_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