sql语句

来源:网络收集 时间:2025-04-30 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

----------------------------第二章----------------------- --1.查询员工表中所有员工的信息。 SELECT * FROM employees;

--2.查询员工表中员工的员工号、姓名、每个员工涨工资100元以后的年工资(按12个月计算)。

SELECT employee_id,last_name,(100+salary)*12 FROM employees;

--3.查询员工first_name和last_name,要求结果显示为“姓last_name名first_name”格式。 SELECT '姓'||last_name||'名'||first_name 员工姓名 FROM employees;

--4.查询所有员工所从事的工作有哪些类型(要求去掉重复值)。 SELECT DISTINCT job_id FROM employees;

SELECT DISTINCT department_id,job_id FROM employees; ----------------------------第三章-------------------------- --1.查询last_name是Chen的员工的信息。 SELECT *

FROM employees

WHERE last_name='Chen';

--2.查询参加工作时间在1997-7-9之后,并且不从事IT_PROG工作的员工的信息。 SELECT *

FROM employees

WHERE hire_date>'09-7月-1997' AND job_id NOT IN ('IT_PROG');

SELECT * FROM employees WHERE hire_date>='9-7月-97' and job_id not like 'IT_PROG';

--3.查询员工last_name的第三个字母是a的员工的信息。 --(oracle中的模糊通配符是%,单字通配符_) SELECT *

FROM employees

WHERE last_name LIKE '__a%';

--4.查询除了10、20、110号部门以外的员工的信息。 SELECT *

FROM employees

WHERE department_id NOT IN (10,20,110);

--5.查询部门号为50号员工的信息,先按工资降序排序,再按姓名升序排序。 SELECT *

FROM employees

WHERE department_id=50

ORDER BY salary DESC,last_name;

SELECT * FROM employees WHERE department_id=50

order by salary desc,first_name asc,last_name ASC; --6.查询没有上级管理的员工(经理号为空)的信息。 SELECT *

FROM employees

WHERE manager_id IS NULL;

--7.查询员工表中工资大于等于4500并且部门为50或者60的员工的姓名(last_name), 工资,部门号。

SELECT last_name,salary,manager_id FROM employees

WHERE salary>=4500 AND department_id IN (50,60);

SELECT last_name,salary,department_id FROM employees WHERE salary>=4500 and department_id in (50,60) --------------------------------第四章---------------------

--1.计算2000年1月1日到现在有多少月,多少周(四舍五入)。

select round(months_between(sysdate,to_date('2000-01-01','yyyy-mm-dd')),0) from dual; select round((sysdate - to_date('2000-01-01','yyyy-mm-dd'))/7) from dual; --2.查询员工last_name的第三个字母是a的员工的信息(使用2个函数)。 SELECT last_name,salary,job_id FROM employees

WHERE last_name LIKE '__a%';

SELECT last_name,salary,job_id FROM employees

WHERE substr(last_name,3,1)='a';

--3.使用trim函数将字符串?hello?、? Hello ?、?bllb?、? hello ?分别处理得到下列字符串ello、Hello、ll、hello。

SELECT TRIM('h' FROM 'hello') ello, TRIM(' ' FROM 'Hello') Hello, TRIM('b' FROM 'bllb') LL,

TRIM(' ' FROM 'hello ') AS HELLO FROM dual;

--4.将员工工资按如下格式显示:123,234.00 RMB

SELECT last_name,to_char(salary,'999,999.00')||'RMB' \FROM employees;

select employee_id ,

to_char(salary,'999,999,999,99.00L')as salary from employees

--5.查询员工的last_name及其经理(manager_id),要求对于没有经理的显示“No Manager”字符串。

SELECT last_name,nvl(to_char(manager_id),'No Manager') Manager FROM employees;

--6.将员工的参加工作日期按如下格式显示:月份/年份。

SELECT last_name,extract(MONTH FROM hire_date)||'/'||extract(YEAR FROM hire_date) FROM employees;

--注意:to_char方法可以这样用

select last_name,to_char(hire_date,'mm/yyyy')as hire_date from employees; --7.在employees表中查询出员工的工资,并计算应交税款: --如果工资小于1000,税率为0,

--如果工资大于等于1000并小于2000,税率为10%, --如果工资大于等于2000并小于3000,税率为15%, --如果工资大于等于3000,税率为20%。 SELECT last_name,salary, CASE (salary/1000) WHEN 0 THEN 0

WHEN 1 THEN salary*0.1 WHEN 2 THEN salary*0.15 ELSE salary*0.2 END TAX FROM employees;

--------------------------------第五章---------------------------

--1.查询员工的编号,姓名,以及部门名称(分别使用Oracle语法,自然连接,using子句,on子句)。

select employee_id,last_name,first_name,department_name from employees,departments

select employee_id,last_name,first_name,department_name from employees

natural join departments

select employee_id,last_name,first_name,department_name from employees join departments using(department_id)

SELECT e.employee_id,e.last_name,e.first_name ,d.department_name FROM employees e JOIN departments d

ON (e.department_id = d.department_id);

--2.查询部门名称为Shipping的员工的编号、姓名及所从事的工作。 SELECT employee_id,last_name, job_title FROM employees e JOIN jobs j

ON e.job_id = j.job_id JOIN departments d

ON e.department_id=d.department_id WHERE department_name='Shipping';

--3.查询所有工资大于等于6000元的员工姓名及其直接领导人的姓名、工资。要求查询结果中在员工和直接领导人之间加入字符串“works for”。

select e1.last_name,e1.salary,e1.last_name ||' works for '|| e2.last_name work_for,e2.last_name,e2.salary

from employees e1,employees e2

where e1.manager_id=e2.employee_id and e1.salary>=6000 order by e1.salary;

--4.查询员工的编号,姓名,以及部门名称,包括没有员工的部门。 select employee_id,last_name,department_name from employees e,departments d

where e.department_id(+) = d.department_id

select employee_id,last_name,department_name from employees e

RIGHT OUTER JOIN departments d

ON e.department_id= d.department_id;

--5.查询员工的编号,姓名,以及部门名称,包括不属于任何部门的员工。 select employee_id,last_name,department_name FROM employees e

LEFT OUTER JOIN departments d

ON e.department_id= d.department_id;

--6.显示比员工?Abel?参加工作时间晚的员工姓名,工资,参加工作时间。 select e1.last_name,e1.salary,e1.hire_date from employees e1,employees e2 where e1.hire_date>e2.hire_date and e2.last_name like 'Abel'; ----------------------------第六章----------------------

--1.查询各部门平均工资在8000元以上的部门名称及平均工资。 select d.department_name,avg(e.salary) from employees e,departments d

where e.department_id=d.department_id group by d.department_name having avg(e.salary)>8000;

--2.查询工作编号中不含有“SA_”字符串及平均工资在8000元以上的工作编号及平均工资,并按平均工资降序排序。 select j.job_id,avg(e.salary) from jobs j,employees e where j.job_id=e.job_id group by j.job_id

having j.job_id not like'SA_'and avg(e.salary)>8000 order by avg(e.salary) desc

--3.查询部门人数在4人以上的部门的部门名称及最低工资和最高工资。 select d.department_name,min(e.salary),max(e.salary) from employees e,departments d

where e.department_id=d.department_id group by d.department_name having count(e.employee_id)>4

--4.查询工作不为AD_PRES,工资的和大于等于25000的工作编号和每种工作工资的和。 select job_id,sum(salary) from employees group by job_id

having job_id not like'AD_PRES'and sum(salary)>=25000

--5.显示经理号码,这个经理所管理员工的最低工资,不包括经理号为空的,不包括最低工资小于3000的,按最低工资由高到低排序。 select manager_id,min(salary) from employees

group by manager_id

having manager_id is not null and min(salary)>3000 order by min(salary)desc

-----------------------第七章---------------------

--1.查询工资高于编号为113的员工工资,并且和102号员工从事相同工作的员工的编号、姓名及工资。

select employee_id,last_name,salary from employees

where salary>(select salary

from employees

where employee_id=113) and job_id=(select job_id

from employees

where employee_id=102) --2.工资最高的员工姓名和工资。 select last_name,salary from employees

WHERE salary in (SELECT Max(salary) FROM employees);

--3.查询部门最低工资高于100号部门最低工资的部门的编号、名称及部门最低工资。 select e.department_id,d.department_name,min(e.salary) from departments d ,employees e

where d.department_id=e.department_id

group by e.department_id,d.department_name having min(e.salary)>(select min(salary) from employees

where employees.department_id=100) order by e.department_id;

--4.查询员工工资为其部门最低工资的员工的编号和姓名及工资。 select e.employee_id,e.last_name

百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库sql语句在线全文阅读。

sql语句.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.70edu.com/wenku/213071.html(转载请注明文章来源)
Copyright © 2020-2025 70教育网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备16052595号-17
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219