當前位置:首頁 » 數據倉庫 » 資料庫的函數列
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫的函數列

發布時間: 2023-02-16 11:39:45

資料庫中函數的概念

函數其實就是一段程序代碼,用戶可以通過調用函數(有的需要加上相應的參數值)來執行一些特殊的運算或完成復雜的操作。函數可以分為系統內置函數和用戶自定義函數。
系統內置函數通常包括系統函數、字元串函數、日期和時間函數、數學函數、轉換函數等。例如求和sum,截取子串substring等。一般所有用戶、程序中都可使用。
用戶自定義函數由用戶自己定義,當然相應的功能也由自己決定。

㈡ 資料庫常用函數

1、系統信息函數

系統信息函數用來查詢Mysql資料庫的系統信息。

函數代碼:

SELECT VERSION()

->5.0.67-community-nt

CONNECTION_ID() 返回伺服器的連接數

DATABASE()、SCHEMA 返回當前資料庫名

USER()、SYSTEM_USER()返回當前用戶

2、日期時間函數

MySQL的日期和時間函數主要用於處理日期時間。

函數代碼:

CURDATE(),CURRENT_DATE() curdate() 返回當前日期

SELECT CURDATE()

->2014-12-17

CURTIME(),CURRENT_TIME curtime()
返回當前時間

SELECT CURTIME()
->15:59:02

3、字元串函數

函數代碼:

CHAR_LENGTH(s) char_length()返回字元串s的字元數

SELECT CHAR_LENGTH('你好123') -- 5

CONCAT(s1,s2,...) concat(s1,s2...)

將字元串s1,s2等多個字元串合並為一個字元串

4、加密函數

加密函數是MySQL用來對數據進行加密的函數。

函數代碼:

PASSWORD(str)

該函數可以對字元串str進行加密,一般情況下,PASSWORD(str)用於給用戶的密碼加密。

SELECT PASSWORD('123')

->*

5、數學函數

數學函數主要用於處理數字,包括整型、浮點數等。

函數代碼:

ABS(x) abs(x)返回x的絕對值

SELECT ABS(-1) -- 返回1

CEIL(x),CEILING(x) cell(x),celling(x)

返回大於或等於x的最小整數

SELECT CEIL(1.5) -- 返回2

㈢ 講解SQL Server資料庫中函數的使用方法

本文主要主要講解了SQL Server資料庫中函數的兩種用法 具體內容請參考下文

◆ 由於update里不能用存儲過程 並且由於根據更新表的某些欄位還要進行計算 所以很多人採用的是游標的方法 在這里我們可以用函數的方法實現

函數部分

CREATE FUNCTION [DBO] [FUN_GETTIME] (@TASKPHASEID INT)RETURNS FLOAT ASBEGINDECLARE @TASKID INT @HOUR FLOAT @PERCENT FLOAT @RETURN FLOATIF @TASKPHASEID IS NULLBEGINRETURN( )ENDSELECT @TASKID=TASKID @PERCENT=ISNULL(WORKPERCENT )/ FROM TABLETASKPHASEWHERE ID=@TASKPHASEIDSELECT @HOUR=ISNULL(TASKTIME ) FROM TABLETASKWHERE ID=@TASKIDSET @RETURN=@HOUR*@PERCENTRETURN (@RETURN)END調用函數的存儲過程部分 CREATE PROCEDURE [DBO] [PROC_CALCCA]@ROID INTASBEGINDECLARE @CA FLOATUPDATE TABLEFMECASETCvalue_M= ISNULL(MODERATE )*ISNULL(FMERATE )*ISNULL(B BASFAILURERATE )*[DBO] [FUN_GETTIME](C ID)FROM TABLEFMECA TABLERELATION B TABLETASKPHASE CWHERE ROID=@ROID AND TASKPHASEID=C ID AND B ID=@ROIDSELECT @CA=SUM(ISNULL(Cvalue_M )) FROM TABLEFMECA WHERE ROID=@ROIDUPDATE TABLERELATIONSET CRITICALITY=@CAWHERE ID=@ROIDENDGO

◆ 我們要根據某表的某些記錄 先計算後求和 因為無法存儲中間值 平時我們也用游標的方法進行計算 但SQL Server 里支持

SUM ( [ ALL DISTINCT ] eXPression )expression

是常量 列或函數 或者是算術 按位與字元串等運算符的任意組合 因此我們可以利用這一功能

函數部分

lishixin/Article/program/SQLServer/201311/22423

㈣ 資料庫函數有哪些

資料庫中常用的函數都有哪些啊?
因資料庫不同有不同的函數,以oracle為例:常用的有單條語句作用的函數:destinct(去除重復行),to_char(轉換自符串),to_date(日期格式函數),sumstr(截取自符串),lower(將字母轉換為小寫),upper(將字母矗換為小寫),char(將數字轉換為字元),ascii(求字元的ascii碼)等函數;

組函數:min(求最小值),max(求最大值),avg(求平均數),sum(求總和),counnt(統計記錄數);
資料庫函數有哪些?有人嗎?
有 Funciton , 也就是函數

有 Procere , 也就是存儲過程

有 Package, 也就是 代碼包 (包含 head 和 body 兩部分, 可以理解為一個包裡面,定義多個 存儲過程或函數)

有 Types, 也就是 自定義數據類型

有 Triggers, 也就是 觸發器

有 Jobs, 也就是 資料庫作業 (定期執行的)

有 Table , 也就是表 (表有 普通表, 臨時表, 分區表)

有 Index, 也就是索引

有 Constraint, 也就是 約束 ( 也就是 某個表裡面的某一列, 必須滿足什麼約束條件)

有 View, 也就是 視圖

有 Materialized View, 叫 「物化視圖」, 這個有點復雜的。

有 Sequence , 叫 序列號。

有 User , 叫 用戶

有 Profile , 叫 用戶屬性文件 (用於限制 每個用戶 佔有資料庫資源的限制)

有 Synonyms, 叫 「同義詞」 (用於 便捷地訪問 其他用戶下的對象)

有 Database link 叫 「鏈接資料庫」 (用於訪問 其他機器上的 Oracle 資料庫)

有 TableSpace 叫 表空間 (用於 存放表數據的)

有 CURSOR 叫 游標, 用於 存儲過程裡面, 遍歷數據的。
資料庫系統函數有哪些分類
單行函數,多行函數 單行的又分字元,日期,數字,轉換,通用幾種

採納哦
sql 聚合函數有哪些
聚合函數是對一組值執行計算並返回單一的值的函數,它經常與SELECT語句的GROUP BY子句一同使用,SQL SERVER 中具體有哪些聚合函數呢?我們來一一看一下:

1. AVG 返回指定組中的平均值,空值被忽略。

例:select prd_no,avg(qty) from sales group by prd_no

2. COUNT 返回指定組中項目的數量。

例:select count(prd_no) from sales

3. MAX 返回指定數據的最大值。

例:select prd_no,max(qty) from sales group by prd_no

4. MIN 返回指定數據的最小值。

例:select prd_no,min(qty) from sales group by prd_no

5. SUM 返回指定數據的和,只能用於數字列,空值被忽略。

例:select prd_no,sum(qty) from sales group by prd_no

6. COUNT_BIG 返回指定組中的項目數量,與COUNT函數不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。

例:select count_big(prd_no) from sales

7. GROUPING 產生一個附加的列,當用CUBE或ROLLUP運算符添加行時,輸出值為1.當所添加的行不是由CUBE或ROLLUP產生時,輸出值為0.

例:select prd_no,sum(qty),grouping(prd_no) from sales group by prd_no with rollup

8. BINARY_CHECKSUM 返回對表中的行或表達式列表計算的二進制校驗值,用於檢測表中行的更改。

例:select prd_no,binary_checksum(qty) from sales group by prd_no

9. CHECKSUM_AGG 返回指定數據的校驗值,空值被忽略。

例:select prd_no,checksum_agg(binary_checksum(*)) from sales group by prd_no

10. CHECKSUM 返回在表的行上或在表達式列表上計算的校驗值,用於生成哈希索引。

11. STDEV 返回給定表達式中所有值的統計標准偏差。

例:select stdev(prd_no) from sales

12. STDEVP 返回給定表達式中的所有值的填充統計標准偏差。

例:select stdevp(prd_no) from sales

13. VAR 返回給定表達式中所有值的統計方差。

例:select var(prd_no) from sales

14. VARP 返回給定表達式中所有值的填充的統計方差。

例:select varp(prd_no) from sales...>>
所有的資料庫函數的函數名都以什麼開頭
這個是好多的具體如下:

一、財務函數

ACCRINT 返回定期付息有價證券的應計利息

ACCRINTM 返回到期一次性付息有價證券的應計利息

AMORDEGRC 返回使用折舊系數的每個結算期間的折舊值

AMORLINC 返回每個結算期間的折舊值

COUPDAYBS 返回當前付息期內截止到成交日的天數

COUPDAYS 返回包含成交日所在的付息期的天數

COUPDAYSNC 返回從成交日到下一付息日之間的天數

COUPNCD 返回成交日之後的下一個付息日

COUPNUM 返回成交日和到期日之間的付息次數

COUPPCD 返回成交日之前的前一個的付息日

CUMIPMT 返回兩個期間內累計支付的利息

CUMPRINC 返回一筆貸款在兩個期間內累計償還的本金數額

DB 使用固定余額遞減法,返回一筆資產在給定期間內的折舊值

DDB 使用雙倍余額遞減法或其他指定方法,返回一筆資產在給定期間內的折舊值

DISC 返回有價證券的貼現率

DOLLARDE 將按分數表示的價格轉換為按小數表示的價格

DOLLARFR 將按小數表示的價格轉換為按分數表示的價格

DURATION 返回定期付息有價證券的每年期限

EFFECT 返回實際年利率

FV 返回一筆投資的未來值

FVSCHEDULE 返回應用一系列復利率後的本金的未來值

INTRATE 返回一次性付息有價證券的利率

IPMT 返回一筆投資在給定期間內支付的利息

IRR 返回一系列現金流的內部收益率

ISPMT 計算特定投資期內要支付的利息

MDURATION 返回假設面值 $100 的有價證券的 Macauley 修正期限

MIRR 返回正和負現金流以不同利率進行計算的內部收益率

NOMINAL 返回年名義利率

NPER 返回投資期間的數量

NPV 返回基於一系列定期現金流和貼現率計算的投資的現凈值

ODDFPRICE 返回首期付息日不固定的面值$100 的有價證券價格

ODDFYIELD 返回首期付息日不固定的有價證券的收益率

ODDLPRICE 返回末期付息日不固定的面值$100 的有價證券價格

ODDLYIELD 返回末期付息日不固定的有價證券的收益率

PMT 返回年金的定期支付金額

PPMT 返回一筆投資在給定期間內償還的本金

PRICE 返回定期付息的面值 $100 的有價證券的價格

PRICEDISC 返回折價發行的面值$100 的有價證券的價格

PRICEMAT 返回到期付息的面值$100 的有價證券的價格

PV 返回投資的現值

RATE 返回年金的各期利率

RECEIVED 返回一次性付息的有價證券到期收回的金額

SLN 返回一筆資產在某個期間內的線性折舊值

SYD 返回一筆資產按年限總和折舊法計算的指定期間的折舊值

TBILLEQ 返回國庫券的等效收益率

TBILLPRICE 返回面值 $100 的國庫券的價格

TBILLYIELD 返回國庫券的收益率

VDB 使用余額遞減法,返回一筆資產在給定期間或部分期間內的折舊值

XIRR 返回一組不定期發生的現金流的內部收益率

XNPV 返回一組不定期發生的現金流的凈現值

YIELD 返回定期付息有價證券的收益率

YIELDDISC 返回折價發行的有價證券(如國庫券)的年收益率

YIELDMAT 返回到期付息的有價證券的年收益率

二、日期與時間函數

DATE 返回特定日期的序列號

DATEVALUE 將文本格式的日期轉換為序列號

DAY 將序列號轉換為月的日期

DAYS360 計算基於一年 360 天的兩個日期間的天數

EDATE 返回用於表示開始日期之......>>
Oracle資料庫函數有幾種與作用
數值型函數:操作數字類型

字元型函數:操作字元型

日期型的函數:操作日期型

轉換函數:轉換類型

聚組函數:統計和、差、積等操作

分析函數:連續求和、排序等

其他函數:很多,沒有表中分類
資料庫的對象有哪些
Funciton:函數

Procere:存儲過程

Package:代碼包,一個包裡面,定義多個存儲過程、函數、類型、常量等

Type:自定義數據類型

Trigger:觸發器

Job:資料庫作業 (定期執行的)

Table:表

Index:索引

Constraint:約束,限制各數據項應滿足哪些限閥條件

View:視圖

Materialized View:物化視圖

Sequence:序列

User:叫 用戶

Synonym:同義詞

Database link:資料庫鏈接(ORACLE有,別的資料庫不熟,想必也應該有,可能不叫這個名字)

TableSpace:表空間(ORACLE叫這個名字,別的資料庫不熟)

CURSOR:游標

常用的大致這些,可能會有遺漏,但也應該不會差太多。
excel常用函數都有哪些?
常用函數

1、求和函數 SUM

2、平均值函數 AVERAGE

3、邏輯函數 IF

4、快捷方式或鏈接創建函數 HYPERLINK

5、計數函數 COUNT

6、最大(小)值函數 MAX(MIN)

7、條件求和函數 SUMIF

8、貨款償還計算函數 PMT

9、樣本的標准偏差函數 STDEV

10、排序函數 RANK

11、四捨五入函數 ROUND

12、條件計數函數 COUNTIF

13、百分排位預測函數 PERCENTILE

14、數值探測函數 ISNUMBER

15、零存整取收益函數 PV

16、內部平均值函數 TRIMMEAN

17、日期年份函數 YEAR

18、起止天數函數 DAYS360

19、取整函數 TRUNC

20、字元提取函數 MID

伍昊的《你早該這么玩excel》頂你學堂在線公開課,你可以去看下,學完這個課程,excel基本上也就夠用了。
SQL Server中的聚合函數有哪些?
count() 所有記錄數

count(*)所有非null記錄數

avg() 某一列平均值

min() 某一列最小值

max() 某一列最大值

sum() 某一列總和
資料庫的命令都有哪些?
1、顯示當前存在的資料庫 mysql> show databases;

2、選擇資料庫 mysql> USE mysql Database changed (USE 和 QUIT 命令不需要分號結束。),顯示當前選擇的資料庫 mysql> select database();

3、顯示當前資料庫中存在的表 mysql> SHOW TABLES;

4、顯示表(db)的內容 mysql>select * from db;

5、命令的取消 當命令輸入錯誤而又無法改變(多行語句情形)時,只要在分號出現前就可以用 c來取消該條命令 mysql> select -> user() -> c

6、創建一個資料庫abccs mysql> CREATE DATABASE abccs;

7、選擇你所創建的資料庫 mysql> USE abccs Database changed;

8、創建一個資料庫表 首先看現在你的資料庫中存在什麼表: mysql> SHOW TABLES; Empty set (0.00 sec) 說明剛才建立的資料庫中還沒有資料庫表。下面來創建一個資料庫表mytable: 我們要建立一個你公司員工的生日表,表的內容包含員工姓名、性別、出生日期、出生城市。 mysql> CREATE TABLE mytable (name VARCHAR(20), sex CHAR(1), birth DATE, birthaddr VARCHAR(20));

9、顯示表的結構: mysql> DESCRIBE mytable;

10、 往表中加入記錄 我們先用SELECT命令來查看錶中的數據: mysql> select * from mytable; Empty set (0.00 sec) 這說明剛才創建的表還沒有記錄。 加入一條新記錄: mysql> insert into mytable values ('abccs','f','1977-07-07','china');

11、用文本方式將數據裝入一個資料庫表 如果一條一條地輸入,很麻煩。我們可以用文本文件的方式將所有記錄加入你的資料庫表中。 創建一個文本文件「mysql.txt」,每行包含一個記錄,用定位符(tab)把值分開,並且以在 CREATE TABLE語句中列出的列次序給出,例如: abccs f 1977-07-07 china mary f 1978-12-12 usa tom m 1970-09-02 usa 使用下面命令將文本文件「mytable.txt」裝載到mytable表中: mysql> LOAD DATA LOCAL INFILE "mytable.txt" INTO TABLE pet; 再使用如下命令看看是否已將數據輸入到資料庫表中: mysql> select * from mytable;

12、從資料庫表中檢索信息 select語句格式一般為: SELECT 檢索關鍵詞 FROM 被檢索的表 WHERE 檢索條件

13、查詢所有數據: mysql> select * from mytable;

14、修正錯誤記錄: 假如tom的出生日期有錯誤,應該是1973-09-02,則可以用update語句來修正: mysql> u......>>

㈤ excel資料庫函數怎麼用

1.DAVERAGE
參數:返回資料庫或數據清單中滿足指定條件的列中數值的平均值。
語法:DAVERAGE(database,field,criteria)
參數:Database構成列表或資料庫的單元格區域。Field指定函數所使用的數據列。Criteria為一組包含給定條件的單元格區域。
2.DCOUNT
參數:返回資料庫或數據清單的指定欄位中,滿足給定條件並且包含數字的單元格數目。
語法:DCOUNT(database,field,criteria)
參數:Database構成列表或資料庫的單元格區域。Field指定函數所使用的數據列。Criteria為一組包含給定條件的單元格區域。
3.DCOUNTA
參數:返回資料庫或數據清單指定欄位中滿足給定條件的非空單元格數目。
語法:DCOUNTA(database,field,criteria)
參數:Database構成列表或資料庫的單元格區域。Field指定函數所使用的數據列。Criteria為一組包含給定條件的單元格區域。

㈥ excel中資料庫函數的具體用法並舉例

if函數可以嵌套七層,我簡單舉統計成績中用到的一種寫法:
if(a1>=90,"優秀",if(a1>=60,"及格","不及格")
其中a1要看你要分析的單元格的地址,這里只是舉例罷了,實際應用還要看你的需要,分析完以後可以用填充柄填充下面的單元格,公式會自動在大於或等於90分的旁邊寫上優秀兩字,在大於等於60分小於90分旁邊的單無格寫上及格,低於60分的寫上不及格.
如果你是用插入函數的話,選擇if會出現三個格.
第一格填入:a1>=90
第二格填入:優秀
第三格填入:if(a1>=60,"及格","不及格")
希望這個對你的考試有所幫助.
1.IF函數的語法結構
IF函數的語法結構:IF(條件,結果1,結果2),詳細說明可以參照表6-4。
2.IF函數的功能
對滿足條件的數據進行處理,條件滿足則輸出結果1,不滿足則輸出結果2。可以省略結果1或結果2,但不能同時省略。
3.條件表達式
把兩個表達式用關系運算符(主要有=,<>,>,<,>=,<=等6個關系運算符)連接起來就構成條件表達式,例如,在IF(a1+b1+50
<>
b1+c1
50,
1,1)函數式中,條件表達式是a1+b1+50
<>
b1+c1
50。
4.執行過程
下面以IF(a1+b1+50
<>
b1+c1
50,
1,1)函數式為例來說明IF函數的執行過程。
先計算條件表達式a1+b1+50
<>
b1+c1
50,如果表達式成立,值為TRUE,並在函數所在單元格中顯示「
1」;如果表達式不成立,值為FALSE,並在函數所在單元格中顯示「1」。
5.IF函數嵌套的執行過程
如果按等級來判斷某個變數,IF函數的格式如下:
IF(E2>=85,"優",IF(E2>=75,"良",IF(E2>=60,"及格","不及格")))
函數從左向右執行。首先計算E2>=85,如果該表達式成立,則顯示「優」,如果不成立就繼續計算E2>=75,如果該表達式成立,則顯示「良」,否則繼續計算E2>=60,如果該表達式成立,則顯示「及格」,否則顯示「不及格」。
參考資料:
http://www.huianren.net/bbs/simple/index.php?t65843.html
回答者:mysky4u
-
魔法師
四級
6-4
23:28
這個函數是用來判斷的。比如:A列單元格數據是姓名,B列是性別,C列是基本工資。現要求給所有人員增加工資,男增加80,女增加50,把新增工資結果放入D列對應的單元格。
操作過程:在D1單元格輸入=if(B1="男",C1+80,C1+50)
就可以了,下面有再多的數據,就從D1用填充手柄向下填充。
說明:這個函數有三個參數,第一個是邏輯條件,第二個是當值為「真」時的返回值,第三個是當值這「假」的返回值。上例中,對B1單元格進行判斷,如果值是「男」(注意,漢字必須用引號,而且是半形),那麼就在原工資C1的基礎上增加80,如果不是男性,就增加50。
明白了嗎?另外,if函數還可以套用,就是在IF裡面用IF。

㈦ Oracle資料庫入門之函數/類型

Oracle主要數據類型

概述 各種資料庫所支持的數據類型大同小異 與標准SQL語言中的數據類型可能略有出入

類型 varchar 可以在聲明欄位時設置它的長度上限 而且使用它之後 就不必再考慮空格的存在

若插入的字元串的長度低於長度上限 系統就會自動將其縮減為字元串的真實長度

number(m n) 既可以用來表示整型 也可以表示浮點型 但m不可以超過 如果n為 或者省略n 就代表它是整數

date 用來存放日期和時間

blob 通常是在應用程序中使用到它 而不是在資料庫中利用SQL指令直接使用

比如通過JDBC技術訪問資料庫 讀寫blob或clob類型的欄位 即讀寫長的字元串信息等等

char 它是一種定長的字元類型 在Oracle資料庫不區分字元和字元串 它們被統稱為字元型或文本型

所謂定長的字元型是指 插入的字元串若沒有達到約定的欄位長度 系統就會在字元串尾部自動補空格

同樣 讀取時的欄位長度永遠是聲明時的欄位長度 而且在比較字元串內容的時候 也需要考慮到空格的過濾

nchar 它也是定長的字元串類型 它是SQL語言標准中規定的 通常採用Unicode編碼來保存不同國家或不同語言的字元

varchar SQL標准在定義varchar時並沒有保證能夠向前和向後兼容 即有可能隨著語言標準的修改而產生不兼容的問題

所以Oracle定義了同varchar型類似的varchar 型 就是為了在Oracle以後的版本中 都永遠支持varchar 類型

Oracle這么做就是為了確保此類型向前後兼容 以達到能夠在Oracle系列資料庫中進行數據的導入和導出的目的

long 它和varchar 的差別在於 它不支持對字元串內容進行檢索 即查詢時不可以對它的內容進行條件查詢

而varchar 和char nchar型等等都可以在查詢的時候直接檢索字元串的內容

補充 select * from v$nls_parameters;資料庫的配置信息以數據表的形式存在 通常稱其為關於數據的數據或數據字典

實際上它查詢的是數據字典中的一個視圖 其中NLS_CHARACTERSET對應的是當前的資料庫字元集

預設均為使用資料庫字元集 教程中使用的是安裝時默認的ZHS GBK字元集 即漢字占 個位元組 英文占 個位元組

而NLS_NCHAR_CHARACTERSET對應的是nchar或nvarchar 類型所採用的輔助字元集 即AL UTF 字元集

實際上AL UTF 是一種 位定長的Unicode編碼的字元集 而資料庫字元集以及這種國家字元集都可以修改

但資料庫字元集修改後可能會面臨很嚴重的後果 除非是資料庫管理員 普通用戶不必對這方面進行深究

資料庫中的數據導入導出的時候 如果源資料庫和目標資料庫所採用的字元集不同 也很容易出問題

函數

概述 函數可以認為是能夠完成相對獨立的功能的一段代碼的集合 Oracle函數相當於其它語言中的方法或過程

Oracle函數可以分為單行函數和多行函數兩大類 Oracle函數都是有返回值的

所謂的單行函數是針對查詢結果中的每一行都起作用 都會返回一個結果

多行函數也就是所謂分組函數 是針對一組查詢的記錄 或者說多行 返回一個結果

單行 操作數據項 接受參數並返回處理結果 對每一返回行均起作用 可修改數據類型 可嵌套使用

單行函數分為字元函數 數值函數 日期函數 轉換函數 通用函數

多行 也稱分組函數 即對一組數據進行運算 針對一組數據(多行記錄)只能返回一個結果

多行函數包括avg() count() max() min() sum()等

比如select avg(sal) max(sal) min(sal) sum(sal) max(hiredate) min(hiredate) from emp;

續一 使用Oracle的系統函數中的單行函數可實現諸多功能 如對數據進行計算 控制數據的輸出格式

設置和改變日期的顯示格式 進行數據類型轉換 使用NVL等函數處理空值 實現IF THEN ELSE多路分支邏輯等等

續二 轉換函數不會改變表中數據的欄位類型和值 它就相當於將數據復制了一份 所轉換的是復制之後的數據

數據類型轉換包括隱含轉換和顯式轉換兩種方式 建議使用顯式的數據類型轉換 確保SQL語句的可靠性

續三 通用函數適用於包括空值在內的任何類型數據 通常用來實現空值的處理 空值的過濾或設置預設值等

通用函數包括nvl() nvl () nullif() coalesce() case表達式 decode()等

嵌套 單行函數可以嵌套使用 嵌套層次無限制 分組函數最多可嵌套兩層 嵌套函數的執行順序是由內到外

單行比如select empno lpad(initcap(trim(ename)) ) 姓名 job sal from emp;

多行比如select max(avg(sal)) from emp group by deptno; 其實這里再使用分組函數就沒有意義了

說明 通常資料庫層面提供的函數 只是進行數據的簡單的處理 或者說是只能實現極為常規的功能

所以就不應該 或者說是不要指望在資料庫查詢的層面來實現特別復雜的業務邏輯

如果應用程序的邏輯跟資料庫混在一起的話 會不利於代碼的維護和更新

而且也不利於資料庫的管理 包括數據移植 資料庫導入導出等等

日期類型

概述 在計算機操作系統或者各種高級編程語言中 日期通常會被保存成一個長整數 通常記錄的是毫秒

Oracle內部以數字格式存儲日期和時間信息 世紀 年 月 日 小時 分鍾 秒

預設的日期格式是DD—MON—YY 可使用sysdata函數獲取當前系統日期和時間

運算 日期型數據可以直接加或減一個數值 結果認為日期 約定的該數值代表的是相加減的天數

兩個日期型數據可以相減 結果為二者相差多少天 二者不能 因為日期相加是沒有意義的

NVL()函數

概述 它用於將空值null替換為指定的預設值 適用於字元 數字 日期等類型數據

格式 NVL(exp exp ) 如果表達式exp 值為null 則返回exp 值 否則返回exp 值

舉例 select empno ename sal m sal+nvl(m ) from emp;

select empno ename job nvl(job No job yet ) from emp;

NVL ()函數

概述 它用於實現條件表達式功能

格式 NVL (exp exp exp ) 如果表達式exp 值不為null 則返回exp 值 否則返回exp 值

舉例 select empno ename sal m nvl (m sal+m sal) 總收入 from emp;

NULLIF()函數

概述 它用於數據等價性比較並根據比較結果返回null或其中一個被比較的數值 實際開發中應用並不是很多

格式 nullif(exp exp ) 如果表達式exp 與exp 的值相等 則返回null 否則返回exp 的值

舉例 select name 原名 nullif(pen_name name) 化名 from author;

COALESCE()函數

概述 它用於實現數據「接合」功能

格式 coalesec(exp exp ) 依次考察各參數表達式 遇到非null值即停止並返回該值

若表達式均為null值 則返回null 通常最後一個表達式都是能確保不是空值的欄位

舉例 select empno ename sal m coalesec(sal+m sal ) 總收入 from emp;

CASE表達式

概述 它用於實現多路分支結構

格式 case exp when parison_exp then return_exp

[when parison_exp then return_exp

when parison_expn then return_expn

else else_exp]

end

舉例 select empno ename sal

case deptno when then 財務部

when then 研發部

when then 銷售部

else 未知部門

end 部門

from emp;

說明 CASE中的每一個表達式(如deptno 財務部等)都可以是復合而成的

這種對齊方式的書寫是為了增加可讀性 當然也可以把代碼寫在同一行上

其中case到end之間的整體就相當於普通查詢中的一個欄位 end後面的「部門」是別名

DEDODE()函數

概述 和case表達式類似 它也用於實現多路分支結構

格式 decode(col|expression search result

[ search result ]

[ default])

舉例 select empno ename sal

decode(deptno 財務部

研發部

銷售部

未知部門 )

部門

from emp;

COUNT()函數

格式 count(*)返回組中總記錄數目

count(exp)返回表達式exp值非空的記錄

count(distinct(exp))返回表達式exp值不重復的 非空的記錄數目

舉例 select count(*) from emp; 預設的情況下 整個表就是一組

select count(m) from emp; 返回emp表中m欄位不為空的記錄(行)數目

select count(distinct(deptno)) from emp; 查找deptno值為非空且不重復的記錄數目

分組函數與空值

概述 分組函數省略列中的空值 可使用NVL()函數強制分組函數處理空值

舉例 select avg(m) from emp; 等價於sum(m)/count(m)

select sum(m) from emp; 計算表中非空的m值的總和

select avg(nvl(m )) from emp; 等價於avg(nvl(m ))/count(*)

GROUP BY子句

概述 它用於將表中數據分成若干小組

格式 select column group_function(column)

from table

[where condition]

[group by group_by_expression]

[order by column];

舉例 select deptno avg(sal) from emp group by deptno;

說明 出現在SELECT列表中的欄位 如果不是包含在組函數中 那麼該欄位必須同時在GROUP BY子句中出現

包含在GROPY BY子句中的欄位則不必須出現在SELECT列表中 子句執行順序是where→group by→order by預設按升序排列

補充 select deptno job avg(sal) from emp group by deptno job order by deptno desc; 基於多個欄位的分組

select deptno avg(sal) from emp; 非法

注意 如果沒有GROUP BY子句 SELECT列表中不允許出現欄位(單行函數)與分組函數混用的情況

WHERE中不允許使用分組函數 如select deptno avg(sal) from emp where avg(sal)> group by deptno; 非法

這跟子句執行的順序有關 where子句最先執行 在執行where子句的時候還沒有執行過group by子句

於是程序不知道這是在分組 也不曾計算過avg(sal)的組內平均工資 所以在where子句中不允許使用分組函數

由於還沒有執行過group by子句 所以此時就不確定如何怎麼分組以及分多少個組

所以where子句中只能進行初級過濾 此時可以使用HAVING子句實現對平均工資的過濾

HAVING子句

概述 它用於過濾分組

格式 select column group_function(column)

from table

[where condition]

[group by group_by_expression]

[having group_condition]

[order by column];

舉例 select deptno job avg(sal)

from emp

where hiredate >= to_date( yyyy mm dd )

group by by deptno job

having avg(sal) >

lishixin/Article/program/Oracle/201311/19087

㈧ 資料庫函數有哪些有人嗎

有 Funciton , 也就是函數
有 Procere , 也就是存儲過程
有 Package, 也就是 代碼包 (包含 head 和 body 兩部分, 可以理解為一個包裡面,定義多個 存儲過程或函數)
有 Types, 也就是 自定義數據類型
有 Triggers, 也就是 觸發器
有 Jobs, 也就是 資料庫作業 (定期執行的)
有 Table , 也就是表 (表有 普通表, 臨時表, 分區表)
有 Index, 也就是索引
有 Constraint, 也就是 約束 ( 也就是 某個表裡面的某一列, 必須滿足什麼約束條件)
有 View, 也就是 視圖
有 Materialized View, 叫 「物化視圖」, 這個有點復雜的。
有 Sequence , 叫 序列號。
有 User , 叫 用戶
有 Profile , 叫 用戶屬性文件 (用於限制 每個用戶 佔有資料庫資源的限制)
有 Synonyms, 叫 「同義詞」 (用於 便捷地訪問 其他用戶下的對象)
有 Database link 叫 「鏈接資料庫」 (用於訪問 其他機器上的 Oracle 資料庫)
有 TableSpace 叫 表空間 (用於 存放表數據的)
有 CURSOR 叫 游標, 用於 存儲過程裡面, 遍歷數據的。

㈨ db2資料庫常用函數

1、value函數
用法:select value(id,'') from merchant ;
如果id為空,返回空,如果id不為空,返回id的值;
2、nvl函數
用法:select nvl(id,'') from merchant ;
如果id為空,返回空,如果id不為空,返回id的值;
3、substr函數
用法:select substr(src_ip,1,2) from tbl_sybvclear_txn;
從src_ip第一位開始,取兩位;
4、length函數
用法:select length(src_ip) from tbl_sybvclear_txn;
計算字元串的長度,不必贅述;
5、ltrim函數,rtrim函數
用法:去掉左側,右側的空格;
6、letf函數,right函數
用法:select left(src_ip,3),right(src_ip,3) from tbl_sybvclear_txn;
取src_ip左邊3個,右邊3個字元串;
7、concat函數
用法:select concat(src_ip,chl_resp) from tbl_sybvclear_txn;
字元串連接,mysql支持三個以上參數,db2隻支持兩個參數;
8、replace函數
用法:select src_ip,replace(src_ip,'223','55') from tbl_sybvclear_txn;
把src_ip中223全部替換成55;
9、to_char函數,to_date函數,to_timestamp函數
用法:將數值型轉成字元型
10、avg函數
用法:select avg(mcht_fee) from tbl_sybvclear_txn;
返回mcht_fee平均值;
11、count函數
用法:太常用,不贅述;
12、sum函數
用法:太常用,不贅述;
13、max函數,min函數
用法:取某列的最大值,最小值;

㈩ oracle資料庫哪些函數

1. 單行函數:對每一個函數應用在表的記錄中時,只能輸入一行結果,返回一個結果,比如:MOD(x,y)返回 x 除以 y 的余數(x 和 y 可以是兩個整數,也可以是表中的整數列)。常用的單行函數有:
字元函數:對字元串操作。

數字函數:對數字進行計算,返回一個數字。

轉換函數:可以將一種數據類型轉換為另外一種數據類型。

日期函數:對日期和時間進行處理。

2. 聚合函數:聚合函數同時可以對多行數據進行操作,並返回一個結果。比如 SUM(x)返回結果集中 x 列的總和。