1. 程式人生 > >oracle基礎練習(一)

oracle基礎練習(一)

-- 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;