伪列伪表:
伪列:可以操作行列物理地址和逻辑地址

伪表:查询不存在的表,可以说是虚拟表以保证语法的正确性,一般用于测试


字符串操作代码及函数:
拼接函数

首字母大写函数

大小写转换和求字符串长度

求字符串长度为5的姓名

截取字符串函数

截取身份证的出生年月

字符串替换函数

数字操作函数

取余数函数

日期操作函数:
获取当前日期

给每个日期加12个月,相当于加一年

日期直接加减就等于天数的加减

获取当月的最后一天

--查询闰年入职的员工(1获取入职年份2拼接成当前2月1日3转成日期格式4求当前2月的最后一天5最后一天为29为闰年)

--查询闰年入职的员工(1获取入职年份2拼接成当前2月1日3转成日期格式4求当前2月的最后一天5最后一天为29为闰年)
select ename,hiredate
from emp
where to_char(last_day(to_date(to_char(hiredate,'YYYY')||' -2-1 ','YYYY-mm-dd')),'dd') = '29';
--select to_date('2020-2-3','YYYY-mm-dd') from dual;
求工作月数

查询每个人的入职年限,不足一年不算(裁员39年以下的)

按入职年限排序

查询员工工作年限,分别显示年、月、日

--课下作业
--函数练习题
--1、显示只有首字母大写的所有雇员的姓名
select initcap(ename) from emp;
--2、显示正好为6个字符的雇员姓名
select ename,length(ename) from emp where length(ename)=6;
--3、显示不带有'R'的雇员姓名
select ename from emp where ename not like '%R%';
--4、显示所有雇员的姓名的前三个字符
select ename,substr(ename,1,3) from emp;
--5、显示所有雇员的姓名,用A替换所有'B'
select ename,replace(ename,'B','A') from emp;
--6、显示姓名字段的任何位置,包含 "A" 的所有雇员的姓名
select rowid,rownum,ename from(select ename from emp where ename like '%A%');
--7、选择在1987年雇用的员工的姓名和雇用时间
select ename,hiredate from emp where hiredate like 1987;
--8. 选择公司中没有管理者的员工姓名及job
select ename,job from emp where mgr is null;
--9. 选择公司中有奖金 (comm不为空,且不为0) 的员工姓名,工资和奖金比例,按工资逆排序,奖金比例逆排序.
select ename,sal,comm,sal||' is a '||comm from emp where comm is not null and comm != 0 order by sal DESC,comm DESC;
select ename,sal,comm,sal||' is a '||comm from emp where comm > 0 order by sal DESC,comm DESC;
--10. 选择员工姓名的第三个字母是A的员工姓名
select ename from emp where ename like '__A%';
--函数练习
--11、找出各月倒数第三天受雇的所有雇员
--12、找出早于25年之前受雇的雇员
--13、显示所有雇员的姓名以及满10年服务年限的日期
--14、显示雇员的详细资料,按姓名排序
--15、显示雇员姓名,根据其服务年限,将最老的雇员排在最前面
--16、显示所有雇员的姓名、工作和薪金,按工作的降序顺序排序,而工作相同时按薪金升序
--17、显示所有雇员的姓名和加入公司的年份和月份,按雇员受雇日所在月排序,将最早年份的项目排在最前面
--18、显示在一个月为30天的情况下所有雇员的日薪金
--19、找出在(任何年份的)2月受聘的所有雇员
--20、对于每个雇员,显示其加入公司的天数
--21、以年、月和日显示所有雇员的服务年限
--22、求出在闰年被雇佣的雇员信息
网友评论