歸納整理Oracle中常用函數
這篇文章為大家帶來了關於Oracle的相關知識,其中詳細講解了Oracle中常用函數,透過範例程式碼介紹,希望對大家的學習或工作具有一定的參考借鑒價值,希望對大家有幫助。
推薦教學:《Oracle影片教學》
oracle資料庫中主要使用兩種類型的函數:
1. 單行函數:操作一行數據,傳回一個結果
- #常用的單行函數有:
- 字串函數:對字串運算。
- 數字函數:對數字進行計算,傳回一個數字。
- 日期函數:對日期和時間進行處理。
- 轉換函數:可以將一種資料型別轉換為另外一種資料型別。
2. 聚合函數(多行函數、分組函數、群組函數):操作多行數據,並傳回一個結果。例如 SUM
一、字串函數
字元函數接受字元參數,這些參數可以是表中的列,也可以是字串表達式。
常用的字元函數:
函數 | #說明 |
ASCII(X) | 傳回字元X的ASCII碼 |
CONCAT(X,Y) | 連接字串X和Y |
#INSTR(X,STR[,START][,N) | 從X中尋找str,可以指定從start開始,也可以指定從n開始 |
LENGTH(X) | 傳回X的長度 |
#LOWER(X) | X轉換成小寫 |
UPPER(X) | X轉換成大寫 |
#LTRIM(X[,TRIM_STR]) | 把X的左截去trim_str字串,預設截去空格 |
RTRIM(X[,TRIM_STR]) | 把X的右邊截去trim_str字串,缺省截去空格 |
TRIM([TRIM_STR FROM]X) | 把X的兩邊截去trim_str字串,缺省截斷空格 |
#REPLACE(X,old,new) | 在X中尋找old,並替換成new |
SUBSTR(X,start[,length]) | 傳回X的字串,從start處開始,截取length個字符,缺省length,預設到結尾 |
上面各函數的例子:
範例 | 範例結果 |
#SELECT ASCII('a') FROM dual; | #97 |
SELECT CONCAT('Hello','world') FROM dual; | Helloworld |
SELECT INSTR ('Hello world','or') FROM dual; | 8 |
#SELECT LENGTH('Hello') FROM dual; | #5 |
SELECT LOWER('Hello') FROM dual; | hello |
SELECT UPPER('hello') FROM dual; | HELLO |
SELECT LTRIM('=Hello=','=') FROM dual; | Hello= |
#SELECT RTRIM('=Hello=','=') FROM dual; | =Hello |
SELECT TRIM('='FROM'= Hello=') FROM dual; | Hello |
SELECT REPLACE('ABCDE','CD','AAA')FROM dual; | ABAAAE |
SELECT SUBSTR('ABCDE',2,3) FROM dual; | BCD |
二、數字函數
數字函數接受數字參數,參數可以來自表格中的一列,也可以是數字表達式。
函數 | 說明 | 範例 |
ABS(X) | X的絕對值 | ABS(-3)=3 |
#ACOS(X) | X的反餘弦 | ACOS(1)=0 |
COS(X) | 餘弦 | COS(1)=0.54030230586814 |
#CEIL(X) | 大於或等於X的最小值 | CEIL(5.4)=6 |
FLOOR(X) | 小於或等於X的最大值 | FLOOR(5.8)=5 |
#LOG(X,Y) | X為底Y的對數 | LOG(2,4)=2 |
#MOD(X,Y) | ##X除以Y的餘數MOD(8,3)=2 | |
X的Y次方 | POWER( 2,3)=8 | |
X在Y位四捨五入 | ROUND(3.456,2) =3.46 | |
X的平方根 | SQRT(4)=2 | |
X在第Y位元截斷 | TRUNC(3.456,2)=3.45 |
參數 | ||
#範例 | 說明 | |
999 | 指定位置處顯示數字 | |
9.9 | 指定位置傳回小數點 | |
99,99 | 指定位置回傳一個逗號 | |
$999 | 數字開頭傳回一個美元符號 | ##EEEE |
代码演示:TO_CHAR对数字的处理
SELECT TO_CHAR(-123123.45,'L9.9EEEEPR')"date" FROM dual;
2、TO_DATE(X,[,fmt])
把一个字符串以fmt格式转换成一个日期类型
3、TO_NUMBER(X,[,fmt])
把一个字符串以fmt格式转换为一个数字
代码演示:TO_NUM函数
SELECT TO_NUMBER('-$12,345.67','$99,999.99')"num" FROM dual;
五、其它单行函数
1、NVL(X,VALUE)
如果X为空,返回value,否则返回X
例:对工资是2000元以下的员工,如果没发奖金,每人奖金100元
代码演示:NVL函数
SELECT ENAME,JOB,SAL,NVL(COMM,100) FROM EMP WHERE SAL<2000;
-------------------------------------------------------------------
ENAME JOB SAL NVL(COMM,100)
SMITH CLERK 800 100
ALLEN SALESMAN 1600 300
WARD SALESMAN 1250 500
MARTIN SALESMAN 1250 1400
TURNER SALESMAN 1500 50
ADAMS CLERK 1100 100
JAMES CLERK 950 100
-------------------------------------------------------------------
7 rows selected
2、NVL2(x,value1,value2)
如果x非空,返回value1,否则返回value2
例:对EMP表中工资为2000元以下的员工,如果没有奖金,则奖金为200元,如果有奖金,则在原来的奖金基础上加100元
代码演示:NVL2函数
SELECT ENAME,JOB,SAL,NVL2(COMM,comm+100,200) "comm" FROM EMP WHERE SAL<2000;
-------------------------------------------------------------------
ENAME JOB SAL comm
SMITH CLERK 800 200
ALLEN SALESMAN 1600 400
WARD SALESMAN 1250 600
MARTIN SALESMAN 1250 1500
TURNER SALESMAN 1500 150
ADAMS CLERK 1100 200
JAMES CLERK 950 200
MILLER CLERK 1300 200
-------------------------------------------------------------------------------------------------------
8 rows selected
六、聚合函数
聚合函数同时对一组数据进行操作,返回一行结果,比如计算一组数据的总和,平均值等。
名称 | 作用 | 语法 |
AVG | 平均值 | AVG(表达式) |
SUM | 求和 | SUM(表达式) |
MIN、MAX | 最小值、最大值 | MIN(表达式)、MAX(表达式) |
COUNT | 数据统计 | COUNT(表达式) |
例:求本月所有员工的基本工资总和
代码演示:sum函数
SELECT SUM(sal) FROM emp;
-------------------------------------------------------------------
SUM(SAL)
29025
例:求不同部门的平均工资
代码演示:AVG函数下的分组查询
SELECT DEPTNO,AVG(SAL) FROM EMP GROUP BY DEPTNO;
-------------------------------------------------------------------
DEPTNO AVG(SAL)
--------- ----------
30 1566.66666
20 2175
10 2916.66666
推荐教程:《Oracle视频教程》
以上是歸納整理Oracle中常用函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

要查詢 Oracle 表空間大小,請遵循以下步驟:確定表空間名稱,方法是運行查詢:SELECT tablespace_name FROM dba_tablespaces;查詢表空間大小,方法是運行查詢:SELECT sum(bytes) AS total_size, sum(bytes_free) AS available_space, sum(bytes) - sum(bytes_free) AS used_space FROM dba_data_files WHERE tablespace_

創建 Oracle 表涉及以下步驟:使用 CREATE TABLE 語法指定表名、列名、數據類型、約束和默認值。表名應簡潔、描述性,且不超過 30 個字符。列名應描述性,數據類型指定列中存儲的數據類型。 NOT NULL 約束確保列中不允許使用空值,DEFAULT 子句可指定列的默認值。 PRIMARY KEY 約束標識表的唯一記錄。 FOREIGN KEY 約束指定表中的列引用另一個表中的主鍵。請參見示例表 students 的創建,其中包含主鍵、唯一約束和默認值。

Oracle 安裝失敗的卸載方法:關閉 Oracle 服務,刪除 Oracle 程序文件和註冊表項,卸載 Oracle 環境變量,重新啟動計算機。若卸載失敗,可使用 Oracle 通用卸載工具手動卸載。

數據導入方法:1. 使用 SQLLoader 實用程序:準備數據文件、創建控製文件、運行 SQLLoader;2. 使用 IMP/EXP 工具:導出數據、導入數據。提示:1. 大數據集推薦 SQL*Loader;2. 目標表應存在,列定義匹配;3. 導入後需驗證數據完整性。

在 Oracle 中查看實例名的方法有三種:命令行中使用 "sqlplus" 和 "select instance_name from v$instance;" 命令。在 SQL*Plus 中使用 "show instance_name;" 命令。通過操作系統的任務管理器、Oracle Enterprise Manager 或檢查環境變量 (Linux 上的 ORACLE_SID)。

Oracle 視圖加密允許您加密視圖中的數據,從而增強敏感信息安全性。步驟包括:1) 創建主加密密鑰 (MEk);2) 創建加密視圖,指定要加密的視圖和 MEk;3) 授權用戶訪問加密視圖。加密視圖工作原理:當用戶查詢加密視圖時,Oracle 使用 MEk 解密數據,確保只有授權用戶可以訪問可讀數據。

Oracle 提供多種去重查詢方法:DISTINCT 關鍵字返回每列的唯一值。 GROUP BY 子句對結果分組並返回每個分組的非重複值。 UNIQUE 關鍵字用於創建僅包含唯一行的索引,查詢該索引將自動去重。 ROW_NUMBER() 函數分配唯一數字並過濾出僅包含第 1 行的結果。 MIN() 或 MAX() 函數可返回數字列的非重複值。 INTERSECT 運算符返回兩個結果集的公共值(無重複項)。

在 Oracle 中獲取時間有以下方法:CURRENT_TIMESTAMP:返回當前系統時間,精確到秒。 SYSTIMESTAMP:比 CURRENT_TIMESTAMP 更準確,精確到納秒。 SYSDATE:返回當前系統日期,不含時間部分。 TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'): 將當前系統日期和時間轉換為特定格式。 EXTRACT:從時間值中提取特定部分,如年份、月份或小時。
