Oracle 特色函數(shù)及復雜更新應用ppt課件_第1頁
Oracle 特色函數(shù)及復雜更新應用ppt課件_第2頁
Oracle 特色函數(shù)及復雜更新應用ppt課件_第3頁
Oracle 特色函數(shù)及復雜更新應用ppt課件_第4頁
Oracle 特色函數(shù)及復雜更新應用ppt課件_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Oracle 特征函數(shù)及復雜更新運用.目的今天主要引見一下日常操作中能夠會用上Oracle的特征函數(shù):轉換函數(shù):to_char通用函數(shù): nvl、nullif、nvl2、coalesce、decode日期函數(shù):months_between、add_months、next_day、last_day經(jīng)過Round、Trunc函數(shù) 操作日期復雜的Update Table運用.顯式數(shù)據(jù)類型轉換NUMBERCHARACTERTO_CHARTO_NUMBERDATETO_CHARTO_DATE.TO_CHAR 函數(shù)對日期的轉換TO_CHAR(date, format_model)格式:必需包含在單引號中而

2、且大小寫敏感??梢园б獾挠行У娜掌诟袷健?梢赃\用 fm 去掉多余的空格或者前導零。與日期指用逗號隔開。.YYYY日期格式的元素YEARMMMONTHDYDAY2004TWO THOUSAND AND FOUR02MONMONDAYJULYMONJULDD02.練習 如何用SQL語句前往以下格式假設今天是2021-9-132021年9月13日13/09/102021/9/132021年的第37周2021年的第256天2021年的第37周星期一.TO_CHAR 函數(shù)對數(shù)字的轉換下面是在TO_CHAR 函數(shù)中經(jīng)常運用的幾種格式:TO_CHAR(number, format_model)90$L.

3、,數(shù)字零美圓符本地貨幣符號小數(shù)點千位符.練習怎樣把一個隨意的數(shù)字轉換成以下格式小于一千萬:235678.9851 - 235,678.99235678.9851 - ¥235,678.998 - .通用函數(shù)這些函數(shù)適用于任何數(shù)據(jù)類型,同時也適用于空值:NVL (expr1, expr2)NVL2 (expr1, expr2, expr3)NULLIF (expr1, expr2)COALESCE (expr1, expr2, ., exprn).NVL 函數(shù)將空值轉換成一個知的值:可以運用的數(shù)據(jù)類型有日期、字符、數(shù)字。函數(shù)的普通方式:NVL(commission_pct,0)NVL(hire_

4、date,01-JAN-97)NVL(job_id,No Job Yet).NVL2 函數(shù)判別值能否為空,假設值不為空那么前往第一個表達式,否那么前往第二個表達式:可以運用的數(shù)據(jù)類型有日期、字符、數(shù)字。函數(shù)的普通方式:NVL2(value, exp1, exp2).NULLIF 函數(shù)NULLIF(exp1, exp2)CASE WHEN exp1 = exp2 THEN NULL ELSE exp1 END比較兩個表達式,假設它們相等那么前往空值,否那么前往表達式一留意:表達式一不能為空.COALESCE 函數(shù)COALESCE(exp1, exp2, , expN)COALESCE前往表達式列

5、表中第一個不為空的表達式COALESCE (expr1, expr2)CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 ENDCOALESCE (expr1, expr2, ., exprn), for n=3CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE COALESCE (expr2, ., exprn) END.CASE 表達式在需求運用 IF-THEN-ELSE 邏輯時:CASE expr WHEN comparison_expr1 THEN return_expr1 WHEN compariso

6、n_expr2 THEN return_expr2 WHEN comparison_exprn THEN return_exprn ELSE else_exprENDDECODE(expr, comparison_expr1, return_expr1, comparison_expr2, return_expr2, comparison_exprn, return_exprn, else_expr).日期函數(shù)兩日期相差多少月MONTHS_BETWEENADD_MONTHSNEXT_DAYLAST_DAYROUNDTRUNC 加月份以日期指定日期的下一天一個月中的最后一天Round 日期Tru

7、ncate 日期函數(shù)描畫.練習-日期運算得到2021-5-10至2021-9-13經(jīng)過了多少天得到2021-5-10至2021-9-13經(jīng)過了多少個月得到某個日期兩個月后的日期得到某個日期這天后100天的日期得到某個日期兩個月后的那個月的最后一天.高級更新操作提出疑問如何實現(xiàn)以下SQL Server中的Update操作舉例.高級更新操作提出疑問有以下表構造,如何經(jīng)過一個語句到達以下功能:把A表的數(shù)據(jù)同步到B表,以ID字段為主鍵,假設B表中沒有A表的記錄,請插入.合并語句按照指定的條件執(zhí)行插入或刪除操作假設滿足條件的行存在,執(zhí)行更新操作;否那么執(zhí)行插入操作:防止多次反復執(zhí)行插入和刪除操作提高效率

8、而且運用方便在數(shù)據(jù)倉庫運用中經(jīng)常運用.合并語句的語法可以運用merge語句,根據(jù)指定的條件進展插入或更新操作MERGE INTO table_name table_alias USING (table|view|sub_query) alias ON (join condition) WHEN MATCHED THEN UPDATE SET col1 = col_val1, col2 = col2_val WHEN NOT MATCHED THEN INSERT (column_list) VALUES (column_values);.MERGE INTO copy_emp c USING

9、employees e ON (c.employee_id = e.employee_id)WHEN MATCHED THEN UPDATE SET c.first_name = e.first_name, c.last_name = e.last_name, . c.department_id = e.department_idWHEN NOT MATCHED THEN INSERT VALUES(e.employee_id, e.first_name, e.last_name, e., e.phone_number, e.hire_date, e.job_id, e.salary, emission_pct, e.manager_id, e.department_id);合并語句舉例在對表COPY_EMP運用merge語句,根據(jù)指定的條件從表 EMPLOYEES中插入或更新數(shù)據(jù)。.合并語句舉例MERGE INTO copy_emp c USING employees e ON (c.employee_id = e.employe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論