【正文】
詢中的每一個(gè)值進(jìn)行比較,測試是否所有的值都滿足,前面必須使用的運(yùn)算符包括 = 、 != 、 = 、= 、 、 等 S e l e c t * f r o m e m p W h e r e s a l a l l ( 1 0 0 0 , 1 5 0 0 , 2022) [ N O T ] E X I S T S 測試是否子查詢至少返回一行 S e l e c t 39。 注意:下限在前 , 上限在后 , 不能顛倒 。CLERK39。 3. LIKE的用法 使用 LIKE操作符可完成按通配符查找字符串的查詢操作 ,該操作符適合于對數(shù)據(jù)進(jìn)行模糊查詢 。 執(zhí)行查詢: SELECT * FROM emp WHERE ename LIKE 39。 這個(gè)運(yùn)算就是: IS [NOT] NULL 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計(jì)院 【 訓(xùn)練 5】 顯示經(jīng)理編號沒有填寫的雇員 。 執(zhí)行結(jié)果: ABS(?5) 5 說明:求 ?5的絕對值 , 結(jié)果為 5。 SELECT floor() FROM dual。 執(zhí)行結(jié)果: TRUNC(,2) TRUNC() TRUNC(, ?1) 45 40 說明:該函數(shù)按照第二個(gè)參數(shù)指定的位置對第一個(gè)數(shù)進(jìn)行截?cái)?。 函數(shù)可以嵌套使用 , 看如下例子 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計(jì)院 步驟 3:保留一位小數(shù) 。 A 39。 S Q L 39。 S t ri n g 39。 Hi 39。 A BC 39。 結(jié)果為: EMPNO ENAME DEPTNO 7698 BLAKE 30 說明:該查詢將表中的雇員名轉(zhuǎn)換成小寫,與小寫的 blake進(jìn)行比較。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計(jì)院 【 訓(xùn)練 3】 顯示名稱以 “ W”開頭的雇員 , 并將名稱轉(zhuǎn)換成以大寫開頭 。S39。instr(ename,39。 使用日期的加減運(yùn)算 , 可以實(shí)現(xiàn)如下功能: * 對日期的值加減一個(gè)天數(shù) , 得到新的日期 。 ) 5 7 . 7 7 4 1 9 3 5 a d d _ m o n t h s 返回把月份數(shù)加到日期上的新日期 a d d _ m o n t h s (39。) 10 2 月 03 l a s t _ d a y 返回指定日期所在的月的最后一天 l a s t _ d a y (39。 ), 39。 ), 39。 ), 39。) FROM dual。 輸入并執(zhí)行查詢: SELECT ename, round(sysdatehiredate) DAYS FROM emp WHERE deptno = 10。 $9999 . 9 39。 * 字符串到日期 。 執(zhí)行結(jié)果為: 39。||11 FROM dual。 Oracle的日期類型是包含時(shí)間在內(nèi)的 。) FROM dual。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計(jì)院 【 訓(xùn)練 4】 將日期顯示轉(zhuǎn)換成中文的年月日 。) HIREDATE FROM emp。),to_char(SYSDATE,39。 在格式字符中 , 前兩個(gè)字符代表顯示結(jié)果的大小寫 。 結(jié)果為: SYSDATE TO_CHAR(SYSDATE,39。YYyysp39。YYYYSP39。yyyysp39。YYYYSP39。 執(zhí)行以下查詢: SELECT SYSDATE,to_char(SYSDATE,39。 輸入并執(zhí)行查詢: SELECT ename, to_char(hiredate, 39。 還可以按其他的格式顯示 。 執(zhí)行以下查詢: SELECT TO_CHAR(sysdate,39。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計(jì)院 2. 日期類型轉(zhuǎn)換 將日期型轉(zhuǎn)換成字符串時(shí) , 可以按新的格式顯示 。 執(zhí)行以下查詢: SELECT 39。39。 1 2 3 4 . 5 39。常用的類型轉(zhuǎn)換函數(shù)有 TO_CHAR、 TO_DATE或 TO_NUMBER,如表 28所示 。 返回結(jié)果為: NEW DATE 0411月 05 說明:該查詢使用到了日期的加法運(yùn)算 , 求經(jīng)過一定天數(shù)后的新日期 。 輸入并執(zhí)行查詢: SELECT last_day(39。 ) t ru n c (t o _ d a t e (39。 ) 01 1 月 03 01 2 月 03 16 2 月 03 ( 按周四舍五入 ) t ru n c 對日期按指定方式進(jìn)行截?cái)? t ru n c ( t o _ d a t e (39。 ) ro u n d (t o _ d a t e (39。 , 39。 , 39。 缺省日期格式為 DDMONYY,如 “ 0805月 03”代表 2022年 5月 8日 。 執(zhí)行結(jié)果為: EMPNO ENAME LENGTH(ENAME) 7369 SMITH 5 7566 JONES 5 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計(jì)院 說明:本例在字段列表和查詢條件中分別應(yīng)用了函數(shù)length 和 instr 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計(jì)院 【 訓(xùn)練 4】 顯示雇員名稱中包含 “ S”的雇員名稱及名稱長度 。該例中雇員名稱右側(cè)連接若干個(gè) “ .”, 湊足 15位 , 然后與雇員職務(wù)連接成列表 。 輸入并執(zhí)行查詢: SELECT empno, ename, deptno FROM emp WHERE lower(ename) =39。 S S M IT H 39。 39。 W e l l c o m 39。 S Q L c o u rs e 39。 常用的字符型函數(shù)如表 26所示 。 SELECT abs(sin(230*)) FROM dual。 SELECT cos() FROM dual。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計(jì)院 步驟 6:使用截?cái)嗪瘮?shù) trunc。 執(zhí)行結(jié)果: CEIL() 3 說明:該函數(shù)求得大于等于 , 結(jié)果為 3。 步驟 1:使用求絕對值函數(shù) abs。 如果不填寫 , 或設(shè)置為空則我們說該字段的內(nèi)容為 NULL。 執(zhí)行結(jié)果為: EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 7369 SMITH CLERK 7902 1712月 80 800 20 7788 SCOTT ANALYST 7566 194月 87 3000 20 說明: SMITH和 SCOTT名字均以 S開頭,名字后邊的字符和長度任意。 以上用法同樣適用于數(shù)值型集合 , 請自行執(zhí)行并察看結(jié)果 。SALESMAN39。 輸入并執(zhí)行查詢: SELECT * FROM emp WHERE sal BETWEEN 1000 AND 2022。 ) [N O T ] L IK E 用于進(jìn)行模式匹配 S e l e c t * fro m e m p W h e re e n a m e l i k e 39。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計(jì)院 【 練習(xí) 2】 請說明在如上練習(xí)中如果省略括號 , 該語句所代表的含義和查詢的結(jié)果 。 輸入并執(zhí)行查詢: SELECT * FROM emp WHERE NOT deptno=10。 OR job=39。 執(zhí)行結(jié)果從略 。 注意:條件 sal1000 AND sal2022不能寫成 sal1000 AND 2022。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計(jì)院 表 23 邏輯運(yùn)算符 運(yùn)算符 說 明 實(shí) 例 AND 邏輯與,表示兩個(gè)條件必須同時(shí)滿足 S e l e c t * fr o m e m p w h e re s a l 1 0 0 0 a n d s a l 2 0 0 0 OR 邏輯或,表示兩個(gè)條件中有一個(gè)條件滿足即可 S e l e c t * fr o m e m p w h e re d e p t n o = 1 0 o r d e p t n o = 2 0 NOT 邏輯非,返回與某條件相反的結(jié)果 S e l e c t * fr o m e m p w h e re n o t j o b = 39。 缺省中文日期格式為 DDMM月 YY, 如 2022年 1月 10日應(yīng)該表示為 “ 101月 03”。SALESMAN39。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計(jì)院 執(zhí)行結(jié)果為: EMPNO ENAME TOTAL 7876 ADAMS 7369 SMITH 7900 JAMES 7654 MARTIN 說明:求得雇員工作月份的函數(shù) Months_between將在后面介紹。 結(jié)果如下: ENAME HIREDATE ADAMS 235月 87 SCOTT 194月 87 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計(jì)院 MILLER 231月 82 JAMES 0312月 81 FORD 0312月 81 注意: DESC表示降序排序,不能省略。 排序有升序和降序之分 , ASC表示升序排序 , DESC表示降序排序 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計(jì)院 【 訓(xùn)練 8】 使用 DISTINCT消除重復(fù)行顯示 。 字符和日期的常量需要用單引號引起 。 5. 連接運(yùn)算符 在前面 , 我們使用到了包含數(shù)值運(yùn)算的計(jì)算列 , 顯示結(jié)果也是數(shù)值型的 。 在列名和別名之間要用 AS分隔 , 如 ename和它的別名 “ 名稱 ”之間用 AS隔開 。 輸入并執(zhí)行查詢 : SELECT ename,sal,sal*(1+20/100) FROM emp。 表達(dá)式中可以包含列名 、 算術(shù)運(yùn)算符和括號 。 對于字符型數(shù)據(jù) , 左對齊顯示 , 如 dname列 。 SELECT * FROM emp。 輸入并執(zhí)行查詢: SELECT * FROM emp WHERE deptno=10。 SELECT為查詢語句的關(guān)鍵字 , 后跟要查詢的字段名列表 , 字段名列表用來指定檢索特定的字段 , 該關(guān)鍵字不能省略 。 * 語句可以寫在一行或多行 。 按照 SQL語言的不同功用 , 可以進(jìn)一步對 SQL語言進(jìn)行劃分 。 * SQL語言在書寫上類似于英文 , 簡潔清晰 , 易于理解 。 其語句一般由主句和若干個(gè)從句組成 , 主句和從句都由關(guān)鍵字引導(dǎo) 。 * 為了提高可讀性 , 可以使用縮進(jìn) 。 WHERE條件限定檢索特定的記錄 , 滿足 “ 條件 ” 的記錄被顯示出來 , 不滿足條件的被過濾掉 。 中國電信廣東公司 綜合部 廣東省電信規(guī)劃設(shè)計(jì)院 基本查詢和排序 查詢的基本用法 在 Oracle數(shù)據(jù)庫中 , 對象是屬于模式的 , 每個(gè)賬戶對應(yīng)一個(gè)模式 , 模式的名稱就是賬戶名稱 。 輸入并執(zhí)行查詢: SELECT deptno,dname FROM dept。 我們在查詢中也可以顯示這個(gè)列 。 * :減法運(yùn)算符 。 4. 使用別名 我們可以為表的列起一個(gè)別名 , 它的好處是 , 可以改變表頭的顯示 。 別名如果含有空格或特殊字符或大小寫敏感,需要使用雙引號將它引起來。通過連接運(yùn)算可以將兩個(gè)字符串連接在一起 。 輸入并執(zhí)行查詢: SELECT ename|| 39。 請去掉 DISTINCT關(guān)鍵字 , 重新執(zhí)行 , 并觀察顯示結(jié)果的不同 。 中國電信廣東公司