【正文】
文顯示 。通過連接運算可以將兩個字符串連接在一起 。 在查詢中可以使用字符和日期的常量 , 表示固定的字符串或固定日期 。 輸入并執(zhí)行查詢: SELECT ename|| 39。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 【 練習(xí) 4】 顯示 DEPT表的內(nèi)容 , 按以下的形式 : 部門 ACCOUNTING所在的城市為 NEW YORK 6. 消除重復(fù)行 如果在顯示結(jié)果中存在重復(fù)行 , 可以使用的關(guān)鍵字DISTINCT消除重復(fù)顯示 。 請去掉 DISTINCT關(guān)鍵字 , 重新執(zhí)行 , 并觀察顯示結(jié)果的不同 。 ORDER BY 從句出現(xiàn)在SELECT語句的最后 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 1. 升序排序 【 訓(xùn)練 1】 查詢雇員姓名和工資 , 并按工資從小到大排序 。 輸入并執(zhí)行查詢: SELECT ename,hiredate FROM emp ORDER BY hiredate DESC。 輸入并執(zhí)行查詢: SELECT ename,deptno,hiredate FROM emp ORDER BY deptno,hiredate。 輸入并執(zhí)行查詢: SELECT empno, ename, sal*Months_between(sysdate,hiredate) AS total FROM emp ORDER BY total。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 條件查詢 簡單條件查詢 要對顯示的行進行限定 , 可在 FROM從句后使用 WHERE從句 , 在 WHERE從句中給出限定的條件 , 因為限定條件是一個表達式 , 所以稱為條件表達式 。 輸入并執(zhí)行查詢: SELECT ename,job,sal FROM emp WHERE job=39。 字符的值對大小寫敏感 , 在 emp表中存放的職務(wù)字符串全部是大寫 。 執(zhí)行結(jié)果為: ENAME JOB SAL SCOTT ANALYST 3000 KING PRESIDENT 5000 FORD ANALYST 3000 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 說明:結(jié)果只顯示工資大于等于 3000的雇員 。11月 8239。 有 3個邏輯運算符 , 如表 23所示 。 如果要改變優(yōu)先順序 , 可以使用括號 。 執(zhí)行結(jié)果為: ENAME JOB SAL ALLEN SALESMAN 1600 WARD SALESMAN 1250 MARTIN SALESMAN 1250 TURNER SALESMAN 1500 ADAMS CLERK 1100 MILLER CLERK 1300 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 說明:兩個條件需要同時滿足 , 所以必須使用 AND運算 。 【 訓(xùn)練 2】 顯示職務(wù)為 CLERK或 MANAGER的雇員信息 。MANAGER39?;?39。CLERK39。CLERK39。 【 訓(xùn)練 3】 顯示部門 10以外的其他部門的雇員 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 4. 使用邏輯或和邏輯與 下面是同時使用邏輯或和邏輯與的復(fù)合練習(xí) 。 如果省略 , 意義有所不同 。 CL E RK 39。 A N Y L Y S T 39。 存在雇員 S CO T T 39。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 1. BETWEEN的用法 對于數(shù)值型或日期型數(shù)據(jù) , 表示范圍時可以用以下的特殊運算表示方法: [NOT] BETWEEN... AND... 【 訓(xùn)練 1】 顯示工資在 1000~ 2022之間的雇員信息 。 查詢范圍中包含上下限的值 , 因此在本例中 , 查詢工資包含 1000和 2022在內(nèi) 。 輸入并執(zhí)行查詢: SELECT * FROM emp WHERE job IN (39。,39。 注意:如果在 IN前面增加 NOT, 將顯示職務(wù)不在集合列表中的雇員 。 其語句法為: [NOT] LIKE 匹配模式 匹配模式中除了可以包含固定的字符之外 , 還可以包含以下的通配符: %:代表 0個或多個任意字符 。S%39。_A%39。 4. 判斷空值 NULL 在表中 , 字段值可以是空 , 表示該字段沒有內(nèi)容 。 輸入并執(zhí)行查詢: SELECT ename, mgr FROM emp WHERE mgr IS NULL。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 表 25 數(shù)值型函數(shù) 函 數(shù) 功 能 實 例 結(jié) 果 a bs 求絕對值函數(shù) a b s ( ? 5) 5 s q rt 求平方根函數(shù) s q rt (2 ) 1 . 4 1 4 2 1 3 5 6 p o w e r 求冪函數(shù) p o w e r(2 , 3 ) 8 c os 求余弦三角函數(shù) c o s (3 . 1 4 1 5 9 ) ? 1 m od 求除法余數(shù) m o d (1 6 0 0 , 3 0 0 ) 100 c e i l 求大于等于某數(shù)的最小整數(shù) c e i l (2 . 3 5 ) 3 f l o o r 求小于等于某數(shù)的最大整數(shù) fl o o r(2 . 3 5 ) 2 r ound 按指定精度對十進制數(shù)四舍五入 ro u n d (4 5 . 9 23, 1 ) ro u n d (4 5 . 9 2 3 , 0) ro u n d (4 5 . 9 2 3 , ? 1) 4 5 . 9 46 50 t ru n c 按指定精度截斷十進制數(shù) t ru n c (4 5 . 9 2 3 , 1 ) t ru n c (4 5 . 9 2 3 ) t ru n c (4 5 . 9 2 3 , ? 1) 4 5 . 9 45 40 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 【 訓(xùn)練 1】 使用數(shù)值型函數(shù)練習(xí) 。 步驟 2:使用求平方根函數(shù) sqrt。 SELECT ceil() FROM dual。 執(zhí)行結(jié)果: FLOOR() 2 說明:該函數(shù)求得小于等于 , 結(jié)果為 2。 2代表對小數(shù)點后第三位進行四舍五入 , 0 代表對小數(shù)位進行四舍五入 , ?1代表對個位進行四舍五入 。 2代表對小數(shù)點后第三位進行截斷 , 0 代表對小數(shù)位進行截斷 , ?1代表對個位進行截斷 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 步驟 8:使用 cos函數(shù) 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 【 訓(xùn)練 2】 求 |sin(230o)|的值 , 保留一位小數(shù) 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 步驟 2:求絕對值 。 SELECT round(abs(sin(230*)),1) FROM dual。 大小寫轉(zhuǎn)換函數(shù)有 3個 。 ) 65 c hr 返回與 A S CII 碼相應(yīng)的字符 Ch r(6 5 ) A l o w e r 將字符串轉(zhuǎn)換成小寫 l o w e r ( 39。 ) S Q L CO U RS E i n i t c a p 將字符串轉(zhuǎn)換成每個單詞以大寫開頭 i n i t c a p ( 39。 , 39。 , 1 , 3 ) S t r l e n g t h 求字符串的長度 l e n g t h ( 39。 , 39。 , 1 0 , 39。 , 1 0 , 39。 F RO M 39。 , 39。 ) ADC 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 【 訓(xùn)練 1】 如果不知道表的字段內(nèi)容是大寫還是小寫 , 可以轉(zhuǎn)換后比較 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 【 訓(xùn)練 2】 顯示雇員名稱和職務(wù)列表 。 結(jié)果為: 職務(wù)列表 SMITH..........CLERK ALLEN..........SALESMAN WARD...........SALESMAN 說明: rpad函數(shù)向字符串的右側(cè)添加字符 , 以達到指定寬度 。 輸入并執(zhí)行查詢: SELECT empno,initcap(ename),job FROM emp WHERE substr(ename,1,1)=39。函數(shù) substr返回 ename從第一個字符位置開始,長度為 1的字符串,即第一個字符,然后同大寫 W比較。, 1, 1)0。, 1, 1)0。S39。 日期型函數(shù) Oracle使用內(nèi)部數(shù)字格式來保存時間和日期 , 包括世紀(jì) 、年 、 月 、 日 、 小時 、 分 、 秒 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 * 對兩個日期相減 , 得到相隔天數(shù) 。 0 4 11 月 0 5 39。 0 6 2 月 0 3 39。 0 6 2 月 0 3 39。 0 6 2 月 0 3 39。 Y E A R39。 M O N T H 39。 D A Y 39。 Y E A R39。 M O N T H 39。 D A Y 39。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 【 訓(xùn)練 2】 返回 2022年 2月的最后一天 。 返回結(jié)果為: LAST_DAY(39。 輸入并執(zhí)行查詢: SELECT sysdate+1000 AS NEW DATE FROM dual。 返回結(jié)果為: ENAME DAYS CLARK 7913 KING 7752 MILLER 7685 說明:該查詢使用日期的減法運算求兩個日期的相差天數(shù) 。 轉(zhuǎn)換函數(shù) Oracle的類型轉(zhuǎn)換分為自動類型轉(zhuǎn)換和強制類型轉(zhuǎn)換 。 ) $ 1 2 3 4 . 5 T o _ d a t e 轉(zhuǎn)換成日期類型 T o _ d a t e ( 39。 ) 01 1 月 80 T o _ n u m b e r 轉(zhuǎn)換成數(shù)值類型 T o _ n u m b e r( 39。 * 數(shù)值到字符串 。 輸入并執(zhí)行查詢: SELECT 39。39。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 【 訓(xùn)練 2】 自動轉(zhuǎn)換數(shù)值型數(shù)據(jù)到字符型 。 結(jié)果為: 39。 然后參加運算 。 主要的日期格式字符的含義如表 29所示 。 引號中的文本原樣顯示 T E X T 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 【 訓(xùn)練 3】 將日期轉(zhuǎn)換成帶時間和星期的字符串并顯示 。 結(jié)果為: TO_CHAR(SYSDATE,39。 轉(zhuǎn)換出來的系統(tǒng)時間為: 2022年 2月 7日 (星期六 )下午 15點 44分 48秒 。 輸入并執(zhí)行查詢: SELECT TO_CHAR(sysdate,39。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 【 訓(xùn)練 5】 將雇傭日期轉(zhuǎn)換成字符串并按新格式顯示 。 執(zhí)行結(jié)果為: ENAME HIREDATE SMITH 17 12月 1980 ALLEN 20 2月 1981 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 說明: Month表示月份的特殊格式 , 如 “ 12月 ” 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計院 【 訓(xùn)練 6】 以全拼和序列顯示時間 。mmspth39。 執(zhí)行結(jié)果為: SYSDATE TO_CHAR(SYSDATE,39。如果格式中的前兩個字符是大寫 , 則輸出結(jié)果的全拼也為大寫 。 步驟 1:執(zhí)行以下查詢: SELECT SYSDATE,to_char(SYSDATE,39。YYYYSP39。 結(jié)果為: SYSDATE TO_CHAR(SYSDATE,39。) FROM d