新聞中心
近年來,大數(shù)據(jù)和的興起使得企業(yè)和機構(gòu)需要越來越多地存儲和處理數(shù)據(jù)。隨著數(shù)據(jù)量和復(fù)雜度的不斷增加,關(guān)系型數(shù)據(jù)庫已經(jīng)不再能夠滿足各種需求。為此,Oracle推出了列式數(shù)據(jù)庫,為企業(yè)提供了全新的數(shù)據(jù)存儲、查詢、分析和管理的解決方案。

站在用戶的角度思考問題,與客戶深入溝通,找到城中網(wǎng)站設(shè)計與城中網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、申請域名、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋城中地區(qū)。
列式數(shù)據(jù)庫是什么?
傳統(tǒng)的關(guān)系型數(shù)據(jù)庫以行方式存儲數(shù)據(jù),而列式數(shù)據(jù)庫則是以列方式存儲數(shù)據(jù)。相比之下,列式數(shù)據(jù)庫的查詢速度更快。這是因為當(dāng)需要查詢固定字段內(nèi)容時,列式數(shù)據(jù)庫無需讀取整行數(shù)據(jù),直接讀取所需列數(shù)據(jù),在處理大數(shù)據(jù)量情況下,這可以極大地提升查詢效率。
列式數(shù)據(jù)庫還有其他優(yōu)勢。列式數(shù)據(jù)庫對于數(shù)據(jù)壓縮有明顯的優(yōu)勢。由于列式數(shù)據(jù)庫在存儲數(shù)據(jù)時可以將相同類型的數(shù)據(jù)存放在一起,因此在壓縮數(shù)據(jù)時會更加高效。由于列式數(shù)據(jù)庫只針對特定列執(zhí)行查詢操作,因此在相同硬件環(huán)境下,列式數(shù)據(jù)庫可以支持處理更多的數(shù)據(jù)。此外,在管理和維護大數(shù)據(jù)時,列式數(shù)據(jù)庫提供了更高效的操作方法,更好地支持GIS系統(tǒng)等空間數(shù)據(jù)分析系統(tǒng)等。
Oracle列式數(shù)據(jù)庫的優(yōu)勢
Oracle列式數(shù)據(jù)庫是由Oracle公司推出的一款列式數(shù)據(jù)庫管理系統(tǒng),它提供了可擴展的、分布式的、高性能的數(shù)據(jù)存儲和分析功能。下面列出了Oracle列式數(shù)據(jù)庫的優(yōu)點:
1. 高效:Oracle列式數(shù)據(jù)庫新型架構(gòu)帶來了大幅提升的查詢性能,減少了 I/O 操作和 CPU 使用。
2. 簡單:Oracle列式數(shù)據(jù)庫的配置和維護相對較簡單,與Oracle數(shù)據(jù)庫的其他部分無縫集成。
3. 擴展性:Oracle列式數(shù)據(jù)庫可輕松擴展到數(shù)百個節(jié)點,以滿足大量數(shù)據(jù)和并發(fā)查詢需要。
4. 兼容性:Oracle列式數(shù)據(jù)庫與現(xiàn)有Oracle數(shù)據(jù)庫的產(chǎn)品流程(包括存儲、備份、恢復(fù)、加密和管理)完全兼容。
5. 安全性:Oracle列式數(shù)據(jù)庫支持所有Oracle的安全性功能,如數(shù)據(jù)加密和角色、用戶、權(quán)限的管理。
應(yīng)用場景
Oracle列式數(shù)據(jù)庫適用于許多應(yīng)用場景,包括科學(xué)研究、金融、跨部門數(shù)據(jù)挖掘和大量Web基礎(chǔ)設(shè)施。一些常見示例包括以下應(yīng)用場景:
1. 金融分析:Oracle列式數(shù)據(jù)庫對于金融數(shù)據(jù)分析非常有用,包括股票市場數(shù)據(jù)、資產(chǎn)評估和信用卡交易。
2. 巨大數(shù)據(jù)分析:列式數(shù)據(jù)庫是處理大容量、高密度數(shù)據(jù)的有效方式。它可以提高數(shù)據(jù)分析的查詢性能,以實現(xiàn)更好的數(shù)據(jù)利用。
3. 預(yù)測分析:Oracle列式數(shù)據(jù)庫為分析大規(guī)模數(shù)據(jù)集提供了更快速的方法,這對于進行預(yù)測分析非常有用。例如,在制造業(yè)中,使用Oracle列式數(shù)據(jù)庫可以分析機器傳感器數(shù)據(jù)以預(yù)測設(shè)備是否需要維護。
結(jié)論
Oracle列式數(shù)據(jù)庫是企業(yè)管理大量數(shù)據(jù)的強大工具。與傳統(tǒng)方法相比,它可以提供更快的查詢速度、更好的數(shù)據(jù)壓縮和存儲、更好的管理和維護方法,以及更高的擴展性。在今后的數(shù)據(jù)存儲和處理中,Oracle列式數(shù)據(jù)庫將是一個不可或缺的部分,將會越來越廣泛地應(yīng)用于企業(yè)和機構(gòu)數(shù)據(jù)管理的各個領(lǐng)域。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站制作,設(shè)計師量身打造品牌風(fēng)格,熱線:028-86922220請教幾個關(guān)于oracle數(shù)據(jù)庫里常見數(shù)據(jù)類型的問題
常用的數(shù)據(jù)庫字段類型如下:
字段類型 中文說明 限制條件 其它說明
CHAR 固定長度字符串 更大長度2023 bytes
VARCHAR2 可變長度的字符串 更大長度4000 bytes 可做索引的森頌更大長度749
NCHAR 根據(jù)字符集而定的固定長度字符串 更大長度2023 bytes
NVARCHAR2 根據(jù)字符集而定的可變長度字符串 更大長度4000 bytes
DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS) 經(jīng)過嚴(yán)格測試,無千蟲問題
LONG 超長字符串 更大長度2G(231-1) 足夠存儲大部頭著作
RAW 固定長度的二進制數(shù)據(jù) 更大長度2023 bytes 可存放多媒體圖象聲音等
LONG RAW 可變長度的二進制數(shù)據(jù) 更大長度2G 同上
BLOB 二進制數(shù)據(jù) 更大長度4G
CLOB 字符數(shù)據(jù) 更大長度4G
NCLOB 根據(jù)字符集而定的字符數(shù)據(jù) 更大長度4G
BFILE 存放在數(shù)據(jù)庫外的二進制數(shù)據(jù) 更大長度4G
ROWID 數(shù)據(jù)表中記錄的唯一行號 10 bytes ********.****.****格式,*為0或1
NROWID 二進制數(shù)據(jù)表中記錄的唯一行號 更大長度4000 bytes
NUMBER(P,S) 數(shù)字類型 P為整數(shù)位,S為小數(shù)位
DECIMAL(P,S) 數(shù)字類型 P為整數(shù)位,S為小數(shù)位
INTEGER 整數(shù)類型 小的整數(shù)
FLOAT 浮點數(shù)類型 NUMBER(38),雙精度
REAL 實數(shù)類型 NUMBER(63),精度更高
數(shù)據(jù)類型 參數(shù) 描述
char(n) n=1 to 2023字節(jié) 定長字符串,n字節(jié)長,如果不指定長度,缺省為1個字節(jié)長(一個漢字為2字節(jié))
varchar2(n) n=1 to 4000字節(jié) 可變長的字符串,具體定義時指明更大長度n,這種數(shù)據(jù)類型可以放數(shù)字、字母以及ASCII碼字符集此雀鄭(或者EBCDIC等數(shù)據(jù)庫系統(tǒng)接受的字符集標(biāo)準(zhǔn))中的所有符號。
如果數(shù)據(jù)長度沒有達到更大值n,Oracle 8i會根據(jù)數(shù)據(jù)大小自動調(diào)節(jié)字段長度,如果你的數(shù)據(jù)前后有空格,Oracle 8i會自動將其刪去。VARCHAR2是最常用的數(shù)據(jù)類型??勺鏊饕母箝L度3209。
number(m,n) m=1 to 38
n=-84 to 127 可變長的數(shù)值列,允許歲握0、正值及負值,m是所有有效數(shù)字的位數(shù),n是小數(shù)點以后的位數(shù)。
如:number(5,2),則這個字段的更大值是99,999,如果數(shù)值超出了位數(shù)限制就會被截取多余的位數(shù)。
如:number(5,2),但在一行數(shù)據(jù)中的這個字段輸入575.316,則真正保存到字段中的數(shù)值是575.32。
如:number(3,0),輸入575.316,真正保存的數(shù)據(jù)是575。
date 無 從公元前4712年1月1日到公元4712年12月31日的所有合法日期,Oracle 8i其實在內(nèi)部是按7個字節(jié)來保存日期數(shù)據(jù),在定義中還包括小時、分、秒。
缺省格式為DD-MON-YY,如07-11月-00 表示2023年11月7日。
long 無 可變長字符列,更大長度限制是2GB,用于不需要作字符串搜索的長串?dāng)?shù)據(jù),如果要進行字符搜索就要用varchar2類型。long是一種較老的數(shù)據(jù)類型,將來會逐漸被BLOB、CLOB、NCLOB等大的對象數(shù)據(jù)類型所取代。
raw(n) n=1 to 2023 可變長二進制數(shù)據(jù),在具體定義字段的時候必須指明更大長度n,Oracle 8i用這種格式來保存較小的圖形文件或帶格式的文本文件,如Miceosoft Word文檔。
raw是一種較老的數(shù)據(jù)類型,將來會逐漸被BLOB、CLOB、NCLOB等大的對象數(shù)據(jù)類型所取代。
long raw 無 可變長二進制數(shù)據(jù),更大長度是2GB。Oracle 8i用這種格式來保存較大的圖形文件或帶格式的文本文件,如Miceosoft Word文檔,以及音頻、視頻等非文本文件。
在同一張表中不能同時有l(wèi)ong類型和long raw類型,long raw也是一種較老的數(shù)據(jù)類型,將來會逐漸被BLOB、CLOB、NCLOB等大的對象數(shù)據(jù)類型所取代。
blob /clob /nclob 無 三種大型對象(LOB),用來保存較大的圖形文件或帶格式的文本文件,如Miceosoft Word文檔,以及音頻、視頻等非文本文件,更大長度是4GB。
LOB有幾種類型,取決于你使用的字節(jié)的類型,Oracle 8i實實在在地將這些數(shù)據(jù)存儲在數(shù)據(jù)庫內(nèi)部保存。
可以執(zhí)行讀取、存儲、寫入等特殊操作。
bfile 無 在數(shù)據(jù)庫外部保存的大型二進制對象文件,更大長度是4GB。
這種外部的LOB類型,通過數(shù)據(jù)庫記錄變化情況,但是數(shù)據(jù)的具體保存是在數(shù)據(jù)庫外部進行的。
Oracle 8i可以讀取、查詢BFILE,但是不能寫入。
大小由操作系統(tǒng)決定。
CHAR數(shù)據(jù)類型存儲固定長度的子符值。一個握局核CHAR數(shù)據(jù)類型可以包括1到2023個字符。如果對CHAR沒有明確地說明長度,臘塵它的默認長度則設(shè)置為1.如果對某個CHAR類型變量賦值,其長度小于規(guī)定的長度,那么Oracle自動用空格填充。
VARCHAR2存儲可變長度的字符串。雖然也必須指定一個VARCHAR2數(shù)據(jù)變量的長度,但是這個長度是指對該變量賦值的的更大長度而非實際賦值長度。不需要用空格填充。最多可設(shè)置為4000個字符。
因為VARCHAR2數(shù)據(jù)類型只存儲為該列所賦的字符(不加空格),所以VARCHAR2需要的存儲空間比CHAR數(shù)據(jù)類型要小。
Oracle推薦使用VARCHAR2
NCHAR和NVARCHAR2 NCHAR和NVARCHAR2數(shù)據(jù)類型分別存儲固定長度與可變長度的字段掘符數(shù)據(jù),但是它們使用的是和數(shù)據(jù)庫其他類型不同的字符集。在創(chuàng)建數(shù)據(jù)庫時,需要指 定所使用的字符集,以便對數(shù)據(jù)庫中數(shù)據(jù)進行編碼。還可以指定一個輔助的字符集[即本地語言集(National Language Set,簡稱NLS)]。NCHAR和NVARCHAR2類型的列使用輔助字符集。
在Oracle9i中,可以以字符而不是字節(jié)為單位來表示NCHAR和NVARCHAR2列的長度。
字符長度 這個要看你i的oracle在什么字符集下設(shè)定的了 查看下你的oracle字符集就知道了 通常是按西文長度計算 number 數(shù)據(jù)類型是數(shù)字型漏猛源 number默認情況下,精度為38位,取值范圍1~38之間
它實際知斗上是磁盤上的一返態(tài)個變長類型,會占用0~22 字節(jié)的存儲空間。默認小數(shù)點位是0
char (5 byte) 字節(jié)
char (5 char) 字符
char,varchar2 類型中文字節(jié)長度:一般中文占3個字節(jié).
nchar,nvarchar2 類型中文字節(jié)長度:一般中文占2個伍卜字節(jié).
number(5,2) 表純鏈?zhǔn)拘?shù)點前可有3個數(shù)據(jù),小數(shù)位2位腔褲穗,超出小數(shù)位默認會四舍五入.
可以恢復(fù),沒族鄭悶有問題
文件路徑不一致也沒問題,rman set修改路徑就可以了,然后把datafile switch就可以了,具體細節(jié)可以查查,實現(xiàn)是沒問題兆彎的。javanewlearner希望有叢陪所提示,有空到365testing,測評網(wǎng),51cto進一步交流!
Oracle數(shù)據(jù)庫入門之函數(shù)/類型
Oracle主要數(shù)據(jù)類型
概述 各種數(shù)據(jù)庫所支持的數(shù)據(jù)類型大同小異 與標(biāo)準(zhǔn)SQL語言中的數(shù)據(jù)類型可能略有出入
類型 varchar 可以在聲明字段時設(shè)置它的長度上限 而且使用它之后 就不必再考慮空格的存在
若插入的字符串的長度低于長度上限 系統(tǒng)就會自動將其縮減為字符串的真實長度
number(m n) 既可以用來表示整型 也可以表示浮點型 但m不可以超過 如果n為 或者省略n 就代表它是整數(shù)
date 用來存放日期和時間
blob 通常是在應(yīng)用程序中使用到它 而不是在數(shù)據(jù)庫中利用SQL指令直接使用
比如通過JDBC技術(shù)頌清訪問數(shù)據(jù)庫 讀寫blob或clob類型的字段 即讀寫長的字符串信息等等
char 它是一種定長的字符類型 在Oracle數(shù)據(jù)庫不區(qū)分字符和字符串 它們被統(tǒng)稱為字符型或文本型
所謂定長的字符型是指 插入的字符串若沒有達到約定的字段長度 系統(tǒng)就會在字符串尾部自動補空格
同樣 讀取時的字段長度永遠是聲明時的字段長度 而且在比較字符串內(nèi)容的時候 也需要考慮到空格的過濾
nchar 它也是定長的字符串類型 它是SQL語言標(biāo)準(zhǔn)中規(guī)定的 通常采用Unicode編碼來保存不同國家或不同語言的字符
varchar SQL標(biāo)準(zhǔn)在定義varchar時并沒有保證能夠向前和向后兼容 即有可能隨著語言標(biāo)準(zhǔn)的修改而產(chǎn)生不兼容的問題
所以O(shè)racle定義了同varchar型類似的varchar 型 就是為了在Oracle以后的版本中 都永遠支持varchar 類型
Oracle這么做就是為了確保此類型向前后兼容 以達到能夠在Oracle系列數(shù)據(jù)庫中進行數(shù)據(jù)的導(dǎo)入和導(dǎo)出的目的
long 它和varchar 的差別在于 它不支持對字符串內(nèi)容進行檢索 即查詢時不可以對它的內(nèi)容進行條件查詢
而varchar 和char nchar型等等都可以在查詢的時候直接檢索字符串的內(nèi)容
補充 select * from v$nls_parameters;數(shù)據(jù)庫的配置信息以數(shù)據(jù)表的形式存在 通常稱其為關(guān)于數(shù)據(jù)的數(shù)據(jù)或數(shù)據(jù)字典
實際上它查詢的是數(shù)據(jù)字典中的一個視圖 其中NLS_CHARACTERSET對應(yīng)的是當(dāng)前的數(shù)據(jù)庫字符慎模集
缺省均為使用數(shù)據(jù)庫字符集 教程中使用的是安裝時默認的ZHS GBK字符集 即漢字占 個字節(jié) 英文占 個字節(jié)
而NLS_NCHAR_CHARACTERSET對應(yīng)的是nchar或nvarchar 類型所采用的輔助字符集 即AL UTF 字符集
實際上AL UTF 是一種 位定長的Unicode編碼的字符集 而數(shù)據(jù)庫寬櫻緩字符集以及這種國家字符集都可以修改
但數(shù)據(jù)庫字符集修改后可能會面臨很嚴(yán)重的后果 除非是數(shù)據(jù)庫管理員 普通用戶不必對這方面進行深究
數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)入導(dǎo)出的時候 如果源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫所采用的字符集不同 也很容易出問題
函數(shù)
概述 函數(shù)可以認為是能夠完成相對獨立的功能的一段代碼的 Oracle函數(shù)相當(dāng)于其它語言中的方法或過程
Oracle函數(shù)可以分為單行函數(shù)和多行函數(shù)兩大類 Oracle函數(shù)都是有返回值的
所謂的單行函數(shù)是針對查詢結(jié)果中的每一行都起作用 都會返回一個結(jié)果
多行函數(shù)也就是所謂分組函數(shù) 是針對一組查詢的記錄 或者說多行 返回一個結(jié)果
單行 操作數(shù)據(jù)項 接受參數(shù)并返回處理結(jié)果 對每一返回行均起作用 可修改數(shù)據(jù)類型 可嵌套使用
單行函數(shù)分為字符函數(shù) 數(shù)值函數(shù) 日期函數(shù) 轉(zhuǎn)換函數(shù) 通用函數(shù)
多行 也稱分組函數(shù) 即對一組數(shù)據(jù)進行運算 針對一組數(shù)據(jù)(多行記錄)只能返回一個結(jié)果
多行函數(shù)包括avg() count() max() min() sum()等
比如select avg(sal) max(sal) min(sal) sum(sal) max(hiredate) min(hiredate) from emp;
續(xù)一 使用Oracle的系統(tǒng)函數(shù)中的單行函數(shù)可實現(xiàn)諸多功能 如對數(shù)據(jù)進行計算 控制數(shù)據(jù)的輸出格式
設(shè)置和改變?nèi)掌诘娘@示格式 進行數(shù)據(jù)類型轉(zhuǎn)換 使用NVL等函數(shù)處理空值 實現(xiàn)IF THEN ELSE多路分支邏輯等等
續(xù)二 轉(zhuǎn)換函數(shù)不會改變表中數(shù)據(jù)的字段類型和值 它就相當(dāng)于將數(shù)據(jù)復(fù)制了一份 所轉(zhuǎn)換的是復(fù)制之后的數(shù)據(jù)
數(shù)據(jù)類型轉(zhuǎn)換包括隱含轉(zhuǎn)換和顯式轉(zhuǎn)換兩種方式 建議使用顯式的數(shù)據(jù)類型轉(zhuǎn)換 確保SQL語句的可靠性
續(xù)三 通用函數(shù)適用于包括空值在內(nèi)的任何類型數(shù)據(jù) 通常用來實現(xiàn)空值的處理 空值的過濾或設(shè)置缺省值等
通用函數(shù)包括nvl() nvl () nullif() coalesce() case表達式 decode()等
嵌套 單行函數(shù)可以嵌套使用 嵌套層次無限制 分組函數(shù)最多可嵌套兩層 嵌套函數(shù)的執(zhí)行順序是由內(nèi)到外
單行比如select empno lpad(initcap(trim(ename)) ) 姓名 job sal from emp;
多行比如select max(avg(sal)) from emp group by deptno; 其實這里再使用分組函數(shù)就沒有意義了
說明 通常數(shù)據(jù)庫層面提供的函數(shù) 只是進行數(shù)據(jù)的簡單的處理 或者說是只能實現(xiàn)極為常規(guī)的功能
所以就不應(yīng)該 或者說是不要指望在數(shù)據(jù)庫查詢的層面來實現(xiàn)特別復(fù)雜的業(yè)務(wù)邏輯
如果應(yīng)用程序的邏輯跟數(shù)據(jù)庫混在一起的話 會不利于代碼的維護和更新
而且也不利于數(shù)據(jù)庫的管理 包括數(shù)據(jù)移植 數(shù)據(jù)庫導(dǎo)入導(dǎo)出等等
日期類型
概述 在計算機操作系統(tǒng)或者各種高級編程語言中 日期通常會被保存成一個長整數(shù) 通常記錄的是毫秒
Oracle內(nèi)部以數(shù)字格式存儲日期和時間信息 世紀(jì) 年 月 日 小時 分鐘 秒
缺省的日期格式是DD—MON—YY 可使用sysdata函數(shù)獲取當(dāng)前系統(tǒng)日期和時間
運算 日期型數(shù)據(jù)可以直接加或減一個數(shù)值 結(jié)果認為日期 約定的該數(shù)值代表的是相加減的天數(shù)
兩個日期型數(shù)據(jù)可以相減 結(jié)果為二者相差多少天 二者不能 因為日期相加是沒有意義的
NVL()函數(shù)
概述 它用于將空值null替換為指定的缺省值 適用于字符 數(shù)字 日期等類型數(shù)據(jù)
格式 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 ()函數(shù)
概述 它用于實現(xiàn)條件表達式功能
格式 NVL (exp exp exp ) 如果表達式exp 值不為null 則返回exp 值 否則返回exp 值
舉例 select empno ename sal m nvl (m sal+m sal) 總收入 from emp;
NULLIF()函數(shù)
概述 它用于數(shù)據(jù)等價性比較并根據(jù)比較結(jié)果返回null或其中一個被比較的數(shù)值 實際開發(fā)中應(yīng)用并不是很多
格式 nullif(exp exp ) 如果表達式exp 與exp 的值相等 則返回null 否則返回exp 的值
舉例 select name 原名 nullif(pen_name name) 化名 from author;
COALESCE()函數(shù)
概述 它用于實現(xiàn)數(shù)據(jù)“接合”功能
格式 coalesec(exp exp ) 依次考察各參數(shù)表達式 遇到非null值即停止并返回該值
若表達式均為null值 則返回null 通常最后一個表達式都是能確保不是空值的字段
舉例 select empno ename sal m coalesec(sal+m sal ) 總收入 from emp;
CASE表達式
概述 它用于實現(xiàn)多路分支結(jié)構(gòu)
格式 case 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 財務(wù)部
when then 研發(fā)部
when then 銷售部
else 未知部門
end 部門
from emp;
說明 CASE中的每一個表達式(如deptno 財務(wù)部等)都可以是復(fù)合而成的
這種對齊方式的書寫是為了增加可讀性 當(dāng)然也可以把代碼寫在同一行上
其中case到end之間的整體就相當(dāng)于普通查詢中的一個字段 end后面的“部門”是別名
DEDODE()函數(shù)
概述 和case表達式類似 它也用于實現(xiàn)多路分支結(jié)構(gòu)
格式 decode(col|expression search result
)
舉例 select empno ename sal
decode(deptno 財務(wù)部
研發(fā)部
銷售部
未知部門 )
部門
from emp;
COUNT()函數(shù)
格式 count(*)返回組中總記錄數(shù)目
count(exp)返回表達式exp值非空的記錄
count(distinct(exp))返回表達式exp值不重復(fù)的 非空的記錄數(shù)目
舉例 select count(*) from emp; 缺省的情況下 整個表就是一組
select count(m) from emp; 返回emp表中m字段不為空的記錄(行)數(shù)目
select count(distinct(deptno)) from emp; 查找deptno值為非空且不重復(fù)的記錄數(shù)目
分組函數(shù)與空值
概述 分組函數(shù)省略列中的空值 可使用NVL()函數(shù)強制分組函數(shù)處理空值
舉例 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子句
概述 它用于將表中數(shù)據(jù)分成若干小組
格式 select column group_function(column)
from table
;
舉例 select deptno avg(sal) from emp group by deptno;
說明 出現(xiàn)在SELECT列表中的字段 如果不是包含在組函數(shù)中 那么該字段必須同時在GROUP BY子句中出現(xiàn)
包含在GROPY BY子句中的字段則不必須出現(xiàn)在SELECT列表中 子句執(zhí)行順序是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列表中不允許出現(xiàn)字段(單行函數(shù))與分組函數(shù)混用的情況
WHERE中不允許使用分組函數(shù) 如select deptno avg(sal) from emp where avg(sal)> group by deptno; 非法
這跟子句執(zhí)行的順序有關(guān) where子句更先執(zhí)行 在執(zhí)行where子句的時候還沒有執(zhí)行過group by子句
于是程序不知道這是在分組 也不曾計算過avg(sal)的組內(nèi)平均工資 所以在where子句中不允許使用分組函數(shù)
由于還沒有執(zhí)行過group by子句 所以此時就不確定如何怎么分組以及分多少個組
所以where子句中只能進行初級過濾 此時可以使用HAVING子句實現(xiàn)對平均工資的過濾
HAVING子句
概述 它用于過濾分組
格式 select column group_function(column)
from table
;
舉例 select deptno job avg(sal)
from emp
where hiredate >= to_date( yyyy mm dd )
group by by deptno job
having avg(sal) >
oracle的列式數(shù)據(jù)庫的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于oracle的列式數(shù)據(jù)庫,Oracle推出列式數(shù)據(jù)庫:極大提升數(shù)據(jù)查詢效率,請教幾個關(guān)于oracle數(shù)據(jù)庫里常見數(shù)據(jù)類型的問題,Oracle數(shù)據(jù)庫入門之函數(shù)/類型的信息別忘了在本站進行查找喔。
創(chuàng)新互聯(lián)【028-86922220】值得信賴的成都網(wǎng)站建設(shè)公司。多年持續(xù)為眾多企業(yè)提供成都網(wǎng)站建設(shè),成都品牌建站設(shè)計,成都高端網(wǎng)站制作開發(fā),SEO優(yōu)化排名推廣服務(wù),全網(wǎng)營銷讓企業(yè)網(wǎng)站產(chǎn)生價值。
新聞名稱:Oracle推出列式數(shù)據(jù)庫:極大提升數(shù)據(jù)查詢效率(oracle的列式數(shù)據(jù)庫)
新聞來源:http://www.fisionsoft.com.cn/article/dpseceo.html


咨詢
建站咨詢
