oracle数据库的sql语句练习1

oracle数据库的sql语句练习1

//1. 查询员工表所有数据
select * from employees

//2. 打印公司里所有的manager_id
select manager_id from employees

//3. 查询所员工的email全名,公司email 统一以 "@zpark.cn" 结尾
select email || ‘@ zpark.cn
as email
from employees;

//4. 按照入职日期由新到旧排列员工信息
select hire_date
from employees
order by hire_date desc;

//5. 查询80号部门的所有员工
select department_id from employees where department_id = 80

//6. 查询50号部门每人增长1000元工资之后的人员姓名及工资.

//普通方法1
select first_name,salary,salary+1000,department_id
from employees
where department_id=50;

//分组方法2
select first_name,salary,salary+1000,department_id
from employees
where department_id=50
group by first_name,salary,salary+1000,department_id;

//7. 查询80号部门工资大于7000的员工的全名与工资.

select first_name,salary,department_id
from employees
where salary>7000 and department_id=80;

//8. 查询80号部门工资大于8000并且佣金高于0.3的员工姓名,工资以及提成
select first_name,salary,salary * 0.3,department_id
from employees
where salary>8000 and commission_pct>0.30 and department_id=80;

//9. 查询职位(job_id)为’AD_PRES’的员工的工资

//模糊条件查询

select *from employees

select first_name,job_id,salary
from employees
where job_id like ‘AD_PRES’;

//10. 查询佣金(commission_pct)为0或为NULL的员工信息

//is null ,is not null,or

select *
from employees
where commission_pct is null or commission_pct=0 ;

//11. 查询入职日期在1997-5-1到1997-12-31之间的所有员工信息

//区间比较:between

select *
from employees
where to_char(hire_date,‘yyyy-MM-dd’)
between ‘1997-05-01’ and ‘1997-12-31’ ;

//12. 显示姓名中没有’L’字的员工的详细信息或含有’SM’字的员工信息

//模糊条件查询

select *
from employees
where first_name not like ‘%l%’ or first_name like ‘%sm%’;

//13. 查询电话号码以5开头的所有员工信息.

//模糊查询

select *
from employees
where phone_number like ‘5%’;

//14. 查询80号部门中last_name以n结尾的所有员工信息

select *
from employees
where department_id=80 and last_name like ‘%n’;

//15. 查询所有last_name 由四个以上字母组成的员工信息

select *
from employees
where last_name like ‘%____%’;

// 单行函数练习

//1. 把hire_date列看做是员工的生日,查询本月过生日的员工(考察知识点:单行函数)

select *
from employees
where to_char(hire_date,‘mm’) = 04;

//2. 查询2002年下半年入职的员工(考察知识点:单行函数)
select *
from employees
where to_char(hire_date,‘yyyy-MM’) > ‘2002-06’;

//3. 打印自己出生了多少天
select sysdate-to_date(‘1996-09-30’,‘yyyy-MM-dd’) from dual;

//4. 打印入职时间超过30年的员工信息

select *
from employees
where to_char(sysdate,‘yyyy’)-to_char(hire_date,‘yyyy’)>=30;

//组函数练习

//1. 显示各种职位的最低工资(组函数)

select job_id,min(salary)
from employees
group by job_id;

//2. 求1997年各个月入职的的员工个数(考察知识点:组函数)

select to_char(hire_date,‘MM’),count(*)
from employees
where to_char(hire_date,‘yyyy’)=‘1997’
group by to_char(hire_date,‘MM’);

//3. 查询每个部门,每种职位的最高工资(考察知识点:分组)
select department_id,job_id,max(salary)
from employees
group by department_id,job_id;

//4. 查询各部门的总工资
select department_id ,sum(salary)
from employees
group by department_id

//5. 查询50号部门,60号部门,70号部门的平均工资
select department_id,avg(salary)
from employees
where department_id=50 or department_id=60 or department_id=70
group by department_id;

//6. 查询各部门的最高工资,最低工资.
select department_id,max(salary),min(salary)
from employees
group by department_id

//7. 查询各岗位的员工总数.

select job_id,count(*)
from employees
group by job_id

//8. 查询各部门中各个岗位的平均工资.

select department_id,job_id,avg(salary)
from employees
group by department_id,job_id

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值