oracle基礎練習(一)

2021-08-02 06:17:59 字數 2292 閱讀 5961

-- 1、找出每個月倒數第三天受僱的員工

-- 第一步:獲取每個月的最後一天

select last_day(trunc(hiredate, 'month')) from emp;

--第二步:獲取倒數三天

select last_day(hiredate)-2

from emp;

-- 第四步:查詢滿足條件的人資訊

select * from emp where hiredate = last_day(hiredate)-2

--2、找出35年前的雇員

--第一步: 計算所有員工的工齡

--計算所有員工的工齡 方法一

select e.empno,e.ename,floor(months_between(sysdate,e.hiredate)/12) 工齡 from emp e;

--計算所有員工的工齡 方法二

select e.empno,e.ename,floor((sysdate-e.hiredate)/365) 工齡 from emp e;

----計算所有員工的工齡 方法三

select e.empno,e.ename, extract(year

from sysdate)-extract(year

from e.hiredate) 工齡 from emp e;

-- 工齡滿足條件

select e.empno,e.ename from emp e where extract(year

from sysdate)-extract(year

from e.hiredate) = 35

-- 3、給所有員工名字前加dear,並且名字首字母大寫,其餘小寫

--第一步:查詢出名字

select e.ename from emp e;

-- 第二步,加dear

select concat('deal_',e.ename) from emp e;

--第三步:首字母大寫其餘小寫

select initcap(concat('deal_',e.ename)) newname from emp e;

--4、找出姓名為五個字的員工

--第一步 查出員工姓名長度

select length(e.ename) name_legth from emp e;

--第二步; 查出滿足條件的員工資訊

select e.ename from emp e where length(e.ename) = 5;

-- 5、找不姓名中不帶r的員工

select ename from emp where ename not

like

'%r%'

--6、獲取所有員工姓名的第乙個字

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

--7 計算員工入職天數(四捨五入)

--第一步:計算員工入職天數

select sysdate - e.hiredate from emp e;

-- 第二步:四捨五入

select round(sysdate - e.hiredate) from emp e;

--8 找出二月份入職的員工

--第一步:找出員工入職的月份

select extract(month

from e.hiredate) from emp e;

--第一步:找出員工入職的月份為2 的員工資訊

select e.ename from emp e where extract(month

from e.hiredate) = 2;

--9、列出至少有乙個員工的所有部門

--第一步列出所有部門編號

select deptno from emp

-- 第二步 查詢出滿足條件的部門

select * from dept where deptno in (select deptno from emp)

--10、列出所有員工的姓名及其直接上級的姓名。

--第一步 :找出有上級的員工

select empno, ename,emp.*

from emp

where mgr in (select emp.empno from emp);

--第二步:列出所有員工的姓名及其直接上級的姓名

select a.empno, a.ename, b.ename manager

from emp a, emp b

where a.mgr = b.empno;

Oracle基礎 單行函式練習(一)

1.查詢部門30中的所有員工資訊 select from emp where deptno 30 2.列出所有辦事員 clerk 的姓名,編號和部門編號 select ename,empno,deptno from emp where job clerk 3.找出獎金高於薪金的員工資訊 select...

Oracle 綜合練習 基礎查詢

總目錄?震驚!史上最菜的oracle 11g教程 大佬勿進 1 選擇部門編號為30中的所有員工。限定查詢,肯定使用where子句 首先要查詢,select和from肯定是不能少的,where和order by 是可選的 部門編號是deptno欄位,為30就使用 2 列出所有辦事員 clerk 的姓名...

Oracle基礎練習題二

1 查詢職員表中,在20和30號部門工作的員工姓名和部門號。select e.ename,e.deptno from emp e where e.deptno in 20,30 2 查詢職員表中,沒有管理者的員工姓名及職位,並按職位排序。select e.ename,e.job from emp e...