【正文】
) Two Thousand Four 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 步驟 3:執(zhí)行以下查詢: SELECT SYSDATE,to_char(SYSDATE,39。) FROM dual。) TO_CHAR( TO_C 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 072月 04 two thousand four second 07th 說明: “ two thousand four”為全拼表示的 2022年;“ second”為全拼序列表示的 2月; “ 07th”為用序列表示的7號 。yyyysp39。DD Month YYYY39。 以下查詢中插入中文的年月日 , 其中原樣顯示部分區(qū)別于外層的單引號 , 需要用雙引號引起 。YYYYMMDD HH24:MI:SS AM DY39。 如格式 YYYYMMDD HH24:MI:SS表示 “ 年 月 日 小時 :分鐘 :秒 ” 。39。+11 FROM dual。 ) 1 2 3 4 . 5 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 1. 自動類型轉換 Oracle可以自動根據(jù)具體情況進行如下的轉換: * 字符串到數(shù)值 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 表 28 類型轉換函數(shù) 函 數(shù) 功 能 實 例 結 果 T o _ c h a r 轉換成字符串類型 T o _ c h a r(1 2 3 4 . 5 , 39。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 【 訓練 4】 假定當前的系統(tǒng)日期是 2022年 2月 6日 , 顯示部門10雇員的雇傭天數(shù) 。082月 0339。 0 6 2 月 0 3 39。 0 6 2 月 0 3 39。 1 3 2 月 0 3 39。 星期一 39。 1 1 1 月 0 1 39。 SYSDATE是返回系統(tǒng)日期和時間的虛列函數(shù) 。 Length 函 數(shù) 返 回 ename 的 長 度 。 輸入并執(zhí)行查詢: SELECT empno,ename,length(ename) FROM emp WHERE instr(ename, 39。 本例中使用了函數(shù)的嵌套 。blake39。 ) M IT H r e p l a c e 用一個字符串替換另一個字符串中的子字符串 re p l a c e ( 39。 ) Hi r p a d 用字符填充字符串右側到指定 長度 rp a d ( 39。 ) 7 i n s t r 給出起始位置和出現(xiàn)的次數(shù),求子字符串在字符串中出現(xiàn)的位置 i n s t r( 39。 ) S q l Co u rs e c o n c a t 連接兩個字符串 c o n c a t ( 39。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 表 26 字符函數(shù) 函數(shù)名稱 功 能 實 例 結 果 a s c i i 獲得字符的 A S CII 碼 A s c i i ( 39。 結果為: ABS(SIN(230*)) .766042264 說明:本步驟求絕對值 。 執(zhí)行結果: COS() ?1 說明: cos函數(shù)的輸入?yún)?shù)應為弧度 , cos值為 ?1。 SELECT trunc(,2), trunc(),trunc(, ?1) FROM dual。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 步驟 4:使用 floor函數(shù) 。 SELECT abs(?5) FROM dual。NULL沒有數(shù)據(jù)類型 , 也沒有具體的值 , 但是使用特定運算可以判斷出來 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 【 訓練 4】 顯示姓名第二個字符為 “ A”的雇員信息 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 【 練習 1】 顯示部門 10和 20的雇員信息 。,39。 執(zhí)行結果從略 。 % A % 39。 條件特殊表示法 使用如表 24所示的特殊運算表示法 , 可使語句更為直觀 , 易于理解 。 執(zhí)行結果從略 。MANAGER39。 說明:檢索職務為 39。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 【 練習 1】 顯示部門 10中工資大于 1500的雇員 。 M A N A G E R 39。 【 訓練 3】 顯示 1982年以后雇傭的雇員姓名和雇傭時間 。 執(zhí)行結果為: ENAME JOB SAL ALLEN SALESMAN 1600 WARD SALESMAN 1250 MARTIN SALESMAN 1250 TURNER SALESMAN 1500 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 說明:結果只顯示職務為 “ SALESMAN”的雇員 。 sysdate表示當前日期。 3. 多列排序 可以按多列進行排序 , 先按第一列 , 然后按第二列 、 第三列 ......。 如果不指明排序順序 , 默認的排序順序為升序 。 輸入并執(zhí)行查詢: SELECT DISTINCT job FROM emp。下一個訓練是作為上一個訓練的改進 。 我們也可以使用字符型的計算列 , 方法是在查詢中使用連接運算 。 AS也可以省略 , 如 sal和它的別名 “ 工資 ”之間用空格分割 。 顯示結果為: ENAME SAL SAL*(1+20/100) SMITH 800 960 ALLEN 1600 1920 說明:結果中共顯示了 3列 , 第 3列顯示工資上浮 20%的結果 ,它不是表中存在的列 , 而是計算產生的結果 , 稱為計算列 。 括號用來改變運算的優(yōu)先次序 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 【 練習 1】 顯示 emp表的雇員名稱和工資 。 1. 指定檢索字段 下面的練習 , 只顯示表的指定字段 。 結果略 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 字段名列表代表要查詢的字段 。 * 語句中的關鍵字不能略寫和分開寫在兩行。 下表給出了 SQL語言的分類和功能簡介 。中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 第 1章 安裝 ORACLE數(shù)據(jù)庫安裝 PL/SQL工具安裝 ,默認下一步即可 . 配置本機 測試 PL/SQL登錄 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 第 2章 SQL基礎 數(shù)據(jù)庫查詢語言 SQL 基本查詢和排序 條件查詢 函數(shù) 高級查詢 階段訓練 練習 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 數(shù)據(jù)庫查詢語言 SQL SQL語言的特點和分類 SQL語言有以下的主要特點: * SQL語言可以在 Oracle數(shù)據(jù)庫中創(chuàng)建 、 存儲 、 更新 、 檢索和維護數(shù)據(jù) , 其中主要的功能是實現(xiàn)數(shù)據(jù)的查詢和數(shù)據(jù)的插入 、刪除 、 修改等操作 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 表 21 SQL語言的分類 類 別 功 能 舉 例 數(shù)據(jù)庫控制語言( D C L ) 控制對數(shù)據(jù)庫的訪問,啟動和關閉等 對系統(tǒng)權限進行授權和回收的 G R A N T 、R E V O K E 等語句 數(shù)據(jù)庫定義語言(D D L ) 用來創(chuàng)建、刪除及修改數(shù)據(jù)庫對象 創(chuàng)建表和索引的 C R E A T E T A B L E 、 A L T E R IN D E X 等語句 數(shù)據(jù)庫操縱語言( D M L ) 用來操縱數(shù)據(jù)庫的內容,包括查詢 查詢、插入、刪除、修改和鎖定操作的 S E L E C T 、 IN S E R T 、 U P D A T E 、 D E L E T E 、 L O C K T A B L E 等語句 數(shù)據(jù)庫事務處理 實現(xiàn)對數(shù)據(jù)的交易過程的完整控制 與 數(shù) 據(jù) 庫 事 物 處 理 相 關 的 C O M M IT 、 R O L L B A C K 、 S A V E P O IN T 、 S E T T R A N S A C T IO N等語句 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 SQL的基本語法 SQL語言的語法比較簡單 , 類似于書寫英文的語句 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 * 要在每條 SQL語句的結束處添加 “ ; ” 號 。 FROM 也是查詢語句關鍵字 , 后面跟要查詢的表名 ,該關鍵字不能省略 。 說明:該查詢語句從 emp表中檢索出部門 10 的雇員 ,條件由 WHERE deptno=10 子句指定 。 【 訓練 1】 顯示 DEPT表的指定字段的查詢 。 2. 顯示行號 每個表都有一個虛列 ROWNUM, 它用來顯示結果中記錄的行號 。 常用的算術運算符包括: * +:加法運算符 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 【 練習 2】 顯示 EMP表的雇員名稱以及工資和津貼的和 。 注意:如果用空格分割 , 要區(qū)別好列名和別名 , 前面為列名 , 后面是別名 。 連接運算符是雙豎線 “ ||”。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 【 訓練 7】 在查詢中使用字符串常量 。 結果為: JOB ANALYST CLERK MANAGER PRESIDENT SALESMAN 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 說明:在本例中 , 如果不使用 DISTINCT關鍵字 , 將重復顯示雇員職務 , DISTINCT關鍵字要緊跟在 SELECT之后 。如果要降序 , 必須書寫 DESC關鍵字 。 【 訓練 3】 查詢雇員信息 , 先按部門從小到大排序 , 再按雇傭時間的先后排序 。 【 練習 1】 將部門表中的部門名稱按字母順序顯示。 字符串和日期型數(shù)據(jù)的值是包含在單引號中的 , 如 SALESMAN,需要用單引號引起 。 輸入并執(zhí)行查詢: SELECT ename,hiredate FROM emp WHERE hiredate=39。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 運算的優(yōu)先順序是 NOT, AND, OR。 2. 使用邏輯或 下面是使用邏輯或運算的練習 。CLERK39。 不 能 寫 成job=39。 說明:執(zhí)行結果包含部門編號不等于 10的其他部門的雇員 , 請自行察看結果 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 表 24 特殊運算符 運 算 功 能 實 例 [N O T ] BE T W E E N … AND … 用于測試是否在范圍內 S e l e c t * fro m e m p W h e re s a l b e t w e e n 1 0 0 0 a n d 2 0 0 0 [N O T ] IN ( … ) 用于測試是否在列表中 S e l e c t * fr o m e m p W h e re j o b i n ( 39。 IS [N O T ] N U LL 用于測試是否為空值 S e l e c t * fro m e m p W h e re c o m m i s n o t n u l l A N Y S O M E 同列表或查詢中的每一個值進行比較,測試是否有一個滿足,前面必須使用的運算符包括 = 、 != 、 = 、 = 、 、 等 S e l e c t * fr o m e m p W h e re s a l a n y (s e l e c t s a l fro m e m p w h e re d e p t n o = 1 0 ) 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設計院 表 24 特殊運算符 A L L 同列表或查