Oracle学习(4)

部门表:

员工表:

工资表:


where 子查询

查询销售部门的员工信息

select * from emp where deptno = (select deptno from dept where dname = 'SALES');

查询工资等级为2的员工信息

select * from emp where sal between (select losal from salgrade where grade = 2 ) and (select hisal from salgrade where grade = 2 );

函数

concat()  连接字符串

一列中显示员工的姓名和工种

select concat(ename,job) from emp;

instr(x ,str,start,n)在x中查找str  start 开始位置   n  str出现的第几次

select ename, instr(ename,'S') from emp;

查看每个员工的名称由几个字符组成

select ename,length(ename) from emp;

查询10部门员工的姓名 并根据姓名字符长度降序排序

select ename,deptno from emp where deptno = 20 order by length(ename) desc ;

查询20部门的员工信息,并将员工姓名全部转为小(大写【upper】)写,按照工资降序排列 

select ename,sal,lower(ename) from emp order by sal desc;

去除左边空格  去除右边空格  去除两边的空格

select rtrim(ltrim(' abcd ')) from dual;

将‘a123b’中的a替换为-

select replace('a123b','a','-') from dual;

获取员工姓名的第一个字符

select ename, substr(ename,1,1) from emp;

获取当前系统的日期

select sysdate from emp;

获取当前系统后一天的日期

select last_day(sysdate) from dual;

查询员工的姓名 入职日期  转正日期【入职日期+3个月】

select ename,hiredate,add_months(hiredate,3) from emp;

查询员工入职到今天共计多少个月

select ename,hiredate,months_between(sysdate,hiredate) as monthsTotal from emp;

将当前系统时间转换为字符类型

select to_char(sysdate,'YYYY-MM-DD') from dual;

将字符串转为时间类型

select to_date('2020-01-01','YYYY-MM-DD') from dual;

 

组函数 【求一个整体的一个结果】

查询公司员工的平均工资

select avg(sal) from emp;

查询员工总人数

select count(empno) from emp;

查询员工最高和最低的工资

select min(sal), max(sal) from emp;

查询20 部门每个月需要向员工支付多少工资

select sum(sal) from emp where deptno = 20;

去重统计

查询有员工的部门共几个 【distinct 去重关键字,count统计关键字】

select count(distinct deptno) from emp;

求员工的奖金平均

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值