程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> oracle基礎練習

oracle基礎練習

編輯:Oracle數據庫基礎
--1.選擇部門30中的所有員工.
select * from emp where deptno = 30

--2.列出所有辦事員(CLERK)的姓名,編號和部門編號.
select ename,empno,deptno from emp where job=''CLERK''

--3.找出傭金高於薪金的員工.
select * from emp where comm>sal

--4.找出傭金高於薪金的60%的員工.
select * from emp where comm>(sal*0.6)

--5.找出部門10中所有經理(MANAGER)和部門20中所有辦事員(CLERK)的詳細資料.
select * from emp where (job=''MANAGER'' and deptno=10) or (job=''CLERK'' and deptno=20)

--6.找出部門10中所有經理(MANAGER),部門20中所有辦事員(CLERK),既不是經理又不是辦事員但其薪金大於或等於2000的所有員工的詳細資料.
select * from emp where (job=''MANAGER'' and deptno=10) or (job=''CLERK'' and deptno=20) or (job!=''MANAGER'' and job!=''CLERK'' and sal>=2000)

--7.找出收取傭金的員工的不同工作.
select distinct job from emp where comm>0

--8.找出不收取傭金或收取的傭金低於100的員工.
select * from emp where comm is null or comm<100

--9.找出各月倒數第3天受雇的所有員工.
select * from emp where hiredate=last_day(hiredate)-2
--last_day(date類型參數),返回一個月的最後一天

--10.找出早於12年前受雇的員工.
select * from emp where months_between(sysdate,hiredate)>=144
--months_between(date1,date2),返回兩個日期之間的月份個數

--11.以首字母大寫的方式顯示所有員工的姓名
select initcap(ename) from emp
--initcap(string),返回首字母大寫的字符串

--12.顯示正好為5個字符的員工的姓名.
select ename from& nbsp;emp where length(ename)=5
--length(string),返回字符串的長度

--13.顯示不帶有"R"的員工的姓名.
select ename from emp where ename not like ''%R%''

--14.顯示所有員工姓名的前三個字符.
select substr(ename,1,3) from emp
/**//*substr(string,start,count),截取字符串長度,
start起始位數,count截取的位數,
如果不寫count就是從start開始截取到最後*/

--15.顯示所有員工的姓名,用a替換所有"A"
select replace(ename,''A'',''a'') from emp
/**//*replace(string,if,then),字符串替換,用then替換if*/

--16.顯示滿10年服務年限的員工的姓名和受雇日期.
select ename,hiredate from emp where months_between(sysdate,hiredate)>=120

--17.顯示員工的詳細資料,按姓名排序.
select * from emp order by ename

--18.顯示員工的姓名和受雇日期,根據其服務年限,將最老的員工排在最前面.
select ename,hiredate from emp order by hiredate

--19.顯示所有員工的姓名、工作和薪金,按工作的降序排序,若工作相同則按薪金排序.
select ename,job,sal from emp order by job desc,sal

--20.顯示所有員工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同則將最早年份的員工排在最前面.
select ename, to_char(hiredate,''yyyy-mm'') from emp order by to_char(hiredate,''mm''),to_char( hiredate,''yy'')
--to_char(非string,''格式''),按格式把數據轉換成字符類型,格式可以省略

--21.顯示在一個月為30天的情況所有員工的日薪金,忽略余數.
select trunc(sal/30,0) from emp
--no四捨五入

--22.找出在(任何年份的)2月受聘的所有員工。
select * from emp where to_char(hiredate,''mm'')=02

--23.對於每個員工,顯示其加入公司的天數.
select trunc(sysdate-hiredate,0) from emp

--24.顯示姓名字段的任何位置包含"A"的所有員工的姓名.
select ename from emp where ename like ''%A%''

--25.以年月日的方式顯示所有員工的服務年限. (大概)
select to_char(to_date(''0001-01-01'',''yyyy-mm-dd'') + (sysdate-hiredate) - 365 - 31 - 1,''yyyy-mm-dd'') from emp

 

今天新學的Oracle~~

這是針對scott用戶的emp表做的一些練習


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved