Oracle命令(三):Oracle要點
SQL 幾個要點
附錄:
1、SQL 簡介
2、SQL 操作符
3、Oracle 常用資料類型
4、Oracle 函式
5、Oracle 常用SQL語法
字符串函式
LENGTH() 字符長度
LENTTHB() 位元組長度;一個漢字記憶體中佔用 2位元組
LTRIM、RTRIM、TRIM
截串
SUBSTR(表示式,位置,長度)
Oracle 無左右取串函式,但可以使用變通方式完成。
左取串: SUBSTR('abcdefg', 1, 3)
右取串: SUBSTR('abcedfg', LENGTH('abcdefg')
-3+1, 3)時間函式
sysdate、current_day
設定時間格式: ALERTSESSION SET NLS_DATE_FORMAT= 'dd-mon-yyyy HH:mi:ss'
求時間: NEXT_DAY(sysdate, '星期三')
轉換函式
TO_CHAR(sysdate, 'yyyy-mm-dd hh24:mi:ss')
TO_DATE('12-3月-04')
TO_NUMBER('333') 必須是能轉換
TO_TIMESTAMP('2007-10-10 00:00:00.0', 'yyyy-mm-dd hh24:mi:ssxff'
) 轉換為時間戳格式聚合函式
count(*) :查詢錶行數
count(column) :查詢列行數,會忽略空值,注意
ps.聚合函式不能做為 where 裡查詢條件出現(因為聚合是對所有查詢結果的運算?)
其他函式
USER:當前用戶
SUM(DECODE(SEX, '男', 1, 0)) 篩選出行被為男的記錄並加1
SUM(DECODE(SEX, '女', 1, 0)) 篩選出行被為女的記錄並加1
NVL(a2, '非輸入') 布林值判斷,利用系統對空值進行處理
SELECT DISTINCT a1FROM aa
表連線
內連線:查詢時,把能夠公共匹配的資料完全查詢出來。
FROM e, d WHERE e.id= d.id
標準: FROM e JOIN d ON e.id= d.id
外連線:不完全匹配
左連線: FROM e JOIN d ON e.id= d.id(+)
左邊資料全部顯示,右邊匹配不上的部分用空值代替
右連線: FROM e JOIN d ON e.id(+) = d.id
(同理左連線)
子查詢
無關子查詢
相關子查詢
EXISTS(): 根據子查詢返回是否存在資料來決定父查詢。
UNION: 將多個查詢出來的資訊行整合成一個結果集。
SELECT eid, ename FROM e
UNION
SELECT id, name FROM d
ps.UNION 查詢出來的重複記錄不會顯示,UNION ALL 則顯示全部(包括重複的)。
INTERSECT: 返回查詢出來資訊行的交集,Oracle 獨有。
利用查詢結果批量更新:
INSERT INTO e(eid, ename) SELECT id, nameFROM d
或者利用查詢結果建立新表:
CREATE TABLE tttAS ttt(SELECT * FROM e)
附加:
一、SQL 簡介
SQL (Structured QueryLanguage,結構化查詢語言)支持如下類別命令:
資料定義語言:CREATE(建立)、ALTER(更改)、TRUNCATE(截斷)、DROP(刪除)命令。
資料操縱語言:INSERT(插入)、SELECT(選擇)、DELETE(刪除)、UPDATE(修改)命令。
事務控制語言:COMMIT(提交)、SAVEPOINT(儲存點)、ROLLBACK(回滾)命令。
資料控制語言:GRANT(授予)、REVOKE(回收)命令。
特點:
1、非過程語言,它同時可以訪問多條記錄。
2、所有關係型資料庫的通用型語言,可移植性強。
3、對於資料和物件的操作簡單。
資料定義語言
用於改變資料庫結構,包括建立、修改和刪除資料庫物件。
1、CREATE TABLE 建立表
CREATE TABLE [schema.]table
(columname datetype[, .]);
.表名的最大長度為30個字符;
.表名首字母為字母,可以用下劃線、數字和字母,但不能使用空格和單引號;
.同一用戶模式下的不同表不能有相同的名稱;
.表名、列名、用戶名、和其他物件名不區分大小寫,系統會自動轉換成大寫。
2、ALTER TABLE 修改表
ALTER TABLE <tablename>
MODIFY (column definition);
ADD (column definition);
DROP COLUMN column;
3、TRUNCATE TABLE 截取表
TRUNCATE TABLE <tablename>;
快速刪除記錄並釋放空間,不使用事務處理,無法回滾,效率高。
DESC <tablename> 查看錶結構
4、DROP TABLE 刪除表
DROP TABLE <tablename>
資料操縱語言
DISTINCT 防止選擇重複的行。
事務控制語言
COMMIT 提交併結束事務處理。
SAVEPOINT 儲存點,將很長的事務處理劃分為較小的部分,用於標記事務中可以應用回滾的點。
ROLLBACK 用來撤銷在當前的事務中已完成的操作。可以回滾整個事務處理;也可以將事務回滾到某個儲存點。
UPDATE xxx;
SAVEPOINT mark1;
DELETE FROM xxx;
SAVEPOINT mark2;
ROLLBACK TO SAVEPOINT mark1;
COMMIT;
資料控制語言
為用戶提供許可權控制命令。
授予物件許可權
GRANT SELECT,UPDATE ON order_master
TO MARTIN;
取消物件許可權
REVOKE SELECT,UPDATE ON order_master
FROM MARTIN;
二、SQL 操作符
算術操作符
算術表示式有NUMBER 資料類型的列名、數值常量和連線它們的算術操作符組成。(+ - * /)
比較操作符
用於比較兩個表示式的值。
=、!=、<、>、<=、>=、BETWEEN AND (檢查是否在兩個值之間)
[NOT] IN(與列表中的值匹配)
[NOT] LIKE(匹配字符模式, * _ 通配符)
[NOT] IS NULL(檢查是否為空)
邏輯操作符
用於組合生成一個真或假的結果。AND OR NOT
集合操作符
集合操作符將兩個查詢的結果組合成一個結果集合。
UNION(聯合) 返回兩個查詢選定不重複的行。(刪除重複的行)
UNION ALL(聯合所有)合併兩個查詢選定的所有行,包括重複的行。
INTERSECT(交集) 只返回兩個查詢都有的行。
MINUS(減集) 在第一個查詢結果中排除第二個查詢結果中出現的行。(第一-- 第二)
使用集合操作符連線起來的SELECT 語句中的列應遵循以下規則:
.通過集合操作連線的各個查詢相同列數,匹配列的資料類型;
.這種查詢不應含有LONG 類型的列;
.列標題來自第一個 SELECT 語句。
SELECT orderno FROM order_master
UNION
SELECT orderno FROM order_detail;
連線操作符 (||)
用於將兩個或者多個字符串合併成一個字符串,或者將一個字符串與一個數值合併在一起。
SELECT ('供應商'|| venname|| '的地址是' || venaddress)
FROM vendor_master
三、Oracle 常用資料類型
1、字符資料類型
CHAR 固定長度字符串 長度 1~2000個位元組,未指定則預設為 1位元組
VARCHAR2 可變長度字符串 長度 1~4000個位元組,定義時必須指定大小
LONG 可變長度字符串 最多能儲存 2GB,儲存超過 VARCHAR2 的長文本資訊
ps.一個表中只有一列為 LONG 資料類型,
.LONG 列不能建立索引,
.儲存過程不能接受LONG 資料類型的引數
2、數值資料類型
NUMBER 資料類型可以儲存正數、負數、零、定點數(不帶小數點的?)和精度為38為的浮點數。
格式:NUMBER [(precision 精度,數字總位數1~38間
, scale 範圍,小數點右邊的位數-84~127間)]
3、時期時間資料類型
DATE 資料類型,用於儲存表中日期和時間資料。SYSDATE 函式功能就是返回當前的日期和時間。
TIMESTAMP 資料類型,儲存時期、時間和時區資訊。SYSTIMEATAMP 功能就是返回當前日期、時間和時區。
4、二進位制資料類型
RAW 二進位制資料或位元組串 長度1~2000 位元組,定義時應指定大小,可建索引
LONG RAW 可變長度的二進位制資料 最大能儲存2GB,限制等同於LONG 資料類型
5、LOB 資料類型
“大物件”資料類型,最多可儲存多達4GB的資訊。LOB 可以是外部的,也可以是內部的,取決於相對於資料庫位置。
CLOB Character LOB 儲存大量的字符資料
BLOB Binary LOB 儲存大量的二進位制物件(多媒體物件等)
BFILE Binary File 能夠將二進位制檔案儲存在資料庫外部的作業系統檔案中
BFILE 儲存一個 BFILE 定位器,它指向位於伺服器檔案系統上的二進位制檔案。
ps.一個表中可以有多個 LOB 列,每個 LOB 列可以是不同的 LOB 類型。
6、偽列
Oracle 中的一個表列,但實際上未儲存表中。可以從表中查詢,但是不能插入,更新或者刪除。
ROWID 返回行記錄的行地址,通常情況下,ROWID 值可以唯一地標識資料庫中的一行。
作用: .能最快形式訪問表中
相關推薦
Oracle命令(三):Oracle要點
SQL 幾個要點 附錄: 1、SQL 簡介 2、SQL 操作符 3、Oracle 常用資料類型 4、Oracle 函式 5、Oracle 常用SQL語法 字符串函式 LENG
Oracle命令(一):Oracle登入
1、執行SQLPLUS工具 C:\Users\wd-pc>sqlplus; 2、直接進入SQLPLUS命令提示符 C:\Users\wd-pc>sqlplus /nolog
圖文並茂- 12C RAC的安裝(三) : Oracle 安裝及建庫
接前面的,接下來安裝Oracle 軟體,並建庫。 下圖中,自檢的一些問題,可以忽略,主要原因為swap設定較小,生產環境建議按照官方文件設定swap,中間兩項,主要原因為使用了/etc/hosts,而不是使用了DNS。第一項第四
Linux常用命令(三): uniq
Linux uniq命令用於檢查及刪除文字檔案中重複出現的行列。 uniq可檢查文字檔案中重複出現的行列。 語法 uniq [-cdu][-f<欄位>][-s<字元位置>][-w<字元位置>][--help][--version][輸入檔案][輸出檔案
Linux基礎命令(三):重定向、展開與引用——cat、sort、uniq、grep、wc、head、tail、tee
I/O重定向 通過這個工具,可以重定向命令的輸入輸出,命令的輸入來自檔案,而輸出也存到檔案。 也可以把多個命令連線起來組成一個強大的命令管道。 cat — 連線檔案 sort — 排序文字行 uniq — 報道或省略重複行 grep — 列印匹配行 wc — 列印
ORACLE RAC部署實錄(一):ORACLE ASMLIB
oracle asm[root@king01 ~]# yum install -y kmod-oracleasm* [root@king01 ~]# rpm -ivh oracleasmlib-2.0.4-1.el6.x86_64.rpm [root@king01 ~]# rpm -ivh oracleasm
ORACLE RAC部署實錄(二):Oracle Grid Infrastructure
oracle rac[root@king01 ~]# groupadd -g 1300 dba [root@king01 ~]# groupadd -g 1301 oper [root@king01 ~]# groupadd -g 1000 oinstall [root@king01 ~]# groupad
Linux 學習之路 (三):使用者管理命令詳解
使用者管理命令詳解 useradd [options] USERNAME -u UID(>=500,並且與其他使用者無重複) -g GID(基本組,組必須事先存在) -G GID,… (附加組,組必須事先存在) useradd -G mygroup us
《深入淺出資料分析》一書要點記錄(三):第10章到第13章
10. 迴歸——預測 要點: (1)演算法:為了完成某個計算而執行的任何過程。 (2)散點圖:見第4章,用於顯示觀察結果的成對關係。 (3)平均值圖:一種散點圖,顯示了與X軸上的每個區間相對應的Y軸數值。 (4)迴歸線:最準確地貫穿平均值圖中各個點的直線,可以用等式
理解JVM(三):JVM命令工具
jps(JVM Process Status Tool) 虛擬機器程序狀況工具,可以列出正在執行的虛擬機器程序,並顯示虛擬機器執行主類(MainClass,main()函式所在的類)名稱以及這些程序的本地虛擬機器唯一ID(Local Virtual Machi
ES:RESTfull風格和curl命令(三)
RESTfull一種軟體架構風格、設計風格,而不是標準,只是提供了一組設計原則和約束條件。它主要用於客戶端和伺服器互動類的軟體。基於這個風格設計的軟體可以更簡潔,更有層次,更易於實現快取等機制。在目前主流的三種Web服務互動方案中,REST相比於SOAP(Simple Object Access p
圖文並茂 - 12C RAC的安裝(二) : ORACLE 叢集的安裝
開始安裝,上圖 下圖中,實際選擇是configure a standard cluster ,如果選擇下面的confirura a flex cluster,則需要配置GNS,也就是接下來的GNS不能被取消。 下圖中,取消GNS選項,因為上圖的原因 新增節點,三個節
足球與oracle系列(6):伴隨建庫的亞洲盃——加油中國隊
原創作品,出自 “深藍的blog” 部落格,歡迎轉載,轉載時請務必註明以下出處,否則追究版權法律責任。 黑龍江的建庫之旅,讓北漂的我有了一段喘息和舒緩的平坦期。更高興的是在緊張的工
Zebra-VTYSH原始碼分析和改造(三):新增定製命令
一 檢視介紹 由上面幾篇文章分析可見,所有的命令都是包含在node中的,根據Cisco或者H3常見路由器或者交換機的CLI格式可見,一個node就對應著一個檢視(View)。常用的檢視包括:普通檢視,管理檢視,檔案系統檢視,配置檢視,以及介面配置檢視和VLAN檢視等。
Redis入門(三):Redis keys 命令和 Redis 字串命令
Redis keys 命令 序號 命令 描述 1 DEL key 該命令用於在 key 存在時刪除 key,返回被刪除 key 的數量 2 DU
Oracle基礎(五):多表查詢
一、多表查詢 (一)簡單多表查詢 1、多表查詢的機制 1)SQL: SELECT * FROM emp; --14條記錄 SELECT * FROM dept;--4條記錄 SELECT * FROM emp,dept;--顯示56條資料??為什麼 2)分析: 先從 d
Oracle學習之路(二):oracle多表查詢+分組查詢+子查詢講解與案例分析+經典練習題
1.笛卡爾集和叉集 笛卡爾集會在下面條件下產生:省略連線條件、連線條件無效、所有表中的所有行互相連線。 為了避免笛卡爾集, 可以在 WHERE 加入有效的連線條件。在實際執行環境下,應避免使用全笛卡爾集。 使用CROSS JOIN 子句使連線的表產生叉集。叉集和笛卡
linux文字處理三劍客(三):awk命令詳解
簡介 awk是一個強大的文字分析工具,相對於grep的查詢,sed的編輯,awk在其對資料分析並生成報告時,顯得尤為強大。簡單來說awk就是把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。 awk有3個不同版本: awk、nawk和gaw
hbase學習教程(三):HBase優化技巧、HBase基本命令、使用Java API對HBase伺服器進行操作
HBase優化技巧 1 修改 linux 系統引數 Linux系統最大可開啟檔案數一般預設的引數值是1024,如果你不進行修改併發量上來的時候會出現“Too Many Open Files”的錯誤,導致整個HBase不可執行,你可以用ulimit -n 命令
Redis(三):set/get 命令解析
經過前兩篇的介紹,我們對整個redis的動作流程已經有比較清晰的認識。 接下來就是到具體的命令處理方式的理解了,想來我們用這些工具的意義也是在此。雖然沒有人覺得,一個set/get方法會有難度,但是我們畢竟不是很清楚,否則也不至於在談到深處就懵逼了。 我覺得本文的一個重要意義就是: 讓set/ge