--練習題1 :
--1:查詢emp表中資料,列出一列,內容為名字與職位。顯示格式:ename:job
select ename||':'||job
from emp;
--2:檢視每個員工職位的字元個數
select length(job)
from emp;
--3:將所有員工的名字以小寫形式,與首字母大寫形式
-- 查詢出來,第一列為小寫形式,第二列為首字母大寫
select lower(ename),initcap(ename)
from emp;
--4:將字串'aaaaaabaaaaa'中左右兩邊的a去除
select trim('a' from 'aaaaaabaaaaa') from dual;
--5:顯示每個員工的名字,要求顯示10位,第一列左對齊效果,第二列右對齊效果
select rpad(ename,10,' '),lpad(ename,10,' ')
from emp;
--6:擷取字串'doctor who'中的'who'
select substr('doctor who',instr('doctor who','who')) from dual;
--7:檢視'doctor who'中'who'的位置
select instr('doctor who','who') from dual;
--8:分別檢視55.789四捨五入保留小數點後2位,整數字,十位後的數字,顯示成三列。
select round(55.789,2),round(55.789,0),round(55.789,-1) from dual;
--9:分別檢視55.789擷取後保留小數點後2位,整數字,十位後的數字,顯示成三列。
select trunc(55.789,2),trunc(55.789,0),trunc(55.789,-1) from dual;
--10:檢視每名員工工資百位以下的數字?
select mod(sal,100)
from emp;
--11:檢視每名員工從入職到今天一共多少天,若有小數則向上取整。
select ceil(sysdate-hiredate)
from emp;
--12:檢視從2008-08-08號到今天為止一共經歷了多少天?
select sysdate-to_date('2008-08-08','yyyy-mm-dd') from dual;
--13:將每名員工入職時間以例如:2023年12月3日的形式顯示
select ename,to_char(hiredate,'yyyy"年"mm"月"dd"日"')
from emp;
--14:檢視每個員工入職所在月的月底是哪天?
select ename,last_day(hiredate)
from emp;
--15:檢視每名員工轉正日期(入職後3個月)
select ename,add_months(hiredate,3)
from emp;
--16:檢視每名員工入職至今共多少個月?
select ename,months_between(sysdate,hiredate)
from emp;
--17:檢視從明天開始一周內的週日是哪天?
select next_day(sysdate,1) from dual;
--18:檢視82年以後入職的員工的入職日期
select ename,hiredate
from emp
where hiredate>to_date('1982-01-01','yyyy-mm-dd');
--19:檢視每名員工的入職年份?
select ename,extract(year from hiredate)
from emp;
--20:顯示每個員工的總收入(工資加獎金),獎金為null的只看工資
select ename,nvl(sal+comm,sal)
from emp;
--21:使用nvl2實現20題的需求
select ename,nvl2(comm,sal+comm,sal)
from emp;
--練習題2 :
--1.檢視第三個字母是a的員工姓名和工資的三種寫法
select ename,sal
from emp
where ename like '__a%';
select ename,sal
from emp
where substr(ename,3,1) = 'a';
select ename,sal
from emp
where instr(ename,'a',3,1) = 3;
--2.查詢雇員至今為止工作多少天了
select ename,sysdate-hiredate
from emp;
--3.檢視員工入職20周年是哪一天
select ename,to_char(add_months(hiredate,240),'yyyy/mm/dd') from emp;
--4.檢視2023年入職的員工姓名和入職日期
select ename,hiredate
from emp
where extract(year from hiredate) = 1980;
--5.檢視員工一年的工資
select ename,sal*12+nvl(comm,0)
from emp;
--6.檢視雇員有沒有獎金
select ename,job,nvl2(comm,'有獎金','沒有獎金') from emp;
emp表↑
dept表↑
oracle 儲存過程基礎知識3
引用物件 sql server 允許建立的儲存過程引用尚不存在的物件。在建立時,只進行語法檢查。執行時,如果快取記憶體中尚無有效的計畫,則編譯儲存過程以生成執行計畫。只有在編譯過 程中才解析儲存過程中引用的所有物件。因此,如果語法正確的儲存過程引用了不存在的物件,則仍可以成功建立,但在執行時將失敗,...
Oracle基礎知識
關於oracle的安裝過程這裡不再一一列出,網上有許多的安裝教程以及安裝過程所遇問題的解決辦法。通過學習所達到的目標如下 理解結構化查詢語句的作用 分類 理解select語句的作用 掌握選擇所有列 指定列 表示式 帶空值null 列別名 連線操作符 消除重複行的sql語句書寫方法。結構化查詢語言 s...
Oracle基礎知識
oracle基本划水知識 1.oracle 是乙個資料庫管理系統 啟動 服務 lsnrctl start 啟動資料庫服務 net start oracleserviceorcl 邏輯結構 資料庫 表空間 資料段 資料區間 資料段 進入資料庫 sqlplus 使用者名稱 密碼 切換使用者 conn 使...