使用PL/SQL调取数据

本文介绍如何使用PL/SQL语言从默认的EMP表中检索不同类型的记录,包括员工ID、姓名、职位等关键信息,帮助读者掌握在数据库管理中进行数据查询的基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从默认表EMP里面调取各种数据

SELECT * FROM EMP
select '['||trim(ename)||']' from emp;
select * from  EMP where trim(ename) = 'SMITH';

SELECT * FROM emp

--Instr 第二个字符串出现位置的索引
select Instr('Hello World','or') a from dual
select * from dual 
--Substr 字符串处理,1表示起始索引位置,2表示获取字符串的长度
select substr('abc',1,2) from dual
--Lpad 10表示获取的字符串长度,*表示左侧添加的字符(重复添加至需要长度)
select Lpad('abc',10,'*') from dual
--Rpad
select Rpad('abc',10,'*') from dual
--replace 替换字符
Select replace(ename,'A','a') from emp


--Round 四舍五入
select round(477,-2) from dual
select round(412.313,-2) from dual
--Mod 取余
select mod(11,8) from dual
--TRUNC 截断 
select TRUNC(49.66666,0) from dual


----日期使用
--sysdate 获取本机时间
select sysdate from dual

--MONTHS_BETWEEN
select * from emp
select * from emp order by hiredate desc
select hiredate from emp where months_between ('1987-05-23','1980-12-17')
select months_between ('01-5月 -81','23-1月 -82') from emp 
select months_between ('01-09-95','11-02-94') from dual
select months_between (sysdate,hiredate) from emp
--ADD_MONTHS 
select add_months (hiredate,8),hiredate from emp
--NEXT_DAY
select next_day (to_date('2017-6-25','yyyy-mm-dd'),1) from DUAL
--LAST_DAY
select last_day (sysdate) from emp

--To_char,To_date,To_number
select to_char(hiredate) from emp
select to_date(hiredate) from emp
select to_number('12')+to_number('14') from dual
select to_char('sunday') from dual

--分组函数
select * from emp order by sal desc
select avg(sal) from emp
select sum(comm) from emp
select count(*) from emp



--练习
select * from emp
--找出每个月倒数第三天受雇的员工
select * from emp where hiredate = last_day(hiredate)-2
--找出 25 年前雇的员工
select * from emp where ADD_MONTHS(sysdate,-25*12) <=hiredate
select * from emp where to_date(sysdate,'yyyy') = to_date(hiredate,'yyyy')+25
--所有员工名字前加上 Dear ,并且名字首字母大写
select 'Dear'||initcap(ename) from emp
--找出姓名为 5 个字母的员工
select ename from emp where length(ename) = 5
select ename from emp where ename like '_____'
--找出姓名中不带 R 这个字母的员工
select ename from emp where ename not like '%R%'
--显示所有员工的姓名的第一个字
select substr(trim(ename),1,1) from emp  
--显示所有员工,按名字降序排列,若相同,则按工资升序排序
select * from (select * from emp order by sal asc) order by trim(ename) desc 
--假设一个月为 30 天,找出所有员工的日薪,不计小数
select round(sal/30,0) from emp
--找到 2 月份受雇的员工
select * from emp
select * from emp where to_char(hiredate,'fmmm') = '2'
--列出员工加入公司的天数(四舍五入)
select round(sysdate-hiredate,0) from emp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值