Oracle學習筆記三 SQL命令,oracle學習筆記sql
SQL簡介
SQL 支持下列類別的命令:
1.數據定義語言(DDL)
2.數據操縱語言(DML)
3.事務控制語言(TCL)
4.數據控制語言(DCL)
下面是這四種SQL語言的詳細筆記:
Oracle數據類型
創建表時,必須為各個列指定數據類型
以下是 Oracle 數據類型的類別:
字符數據類型
CHAR類型
當需要固定長度的字符串時,使用 CHAR 數據類型。
CHAR 數據類型存儲字母數字值。
CHAR 數據類型的列長度可以是 1 到 2000 個字節。
VARCHAR2類型
VARCHAR2數據類型支持可變長度字符串
VARCHAR2數據類型存儲字母數字值
VARCHAR2數據類型的大小在1至4000個字節范圍內
LONG類型
LONG 數據類型存儲可變長度字符數據
LONG 數據類型最多能存儲 2GB
一張表中只能出來一次
不能在Long類型的列上建立主鍵,唯一約束,索引
不能用於存儲過程的參數類型
數值數據類型
數值數據類型
1.可以存儲整數、浮點數和實數
2.最高精度為 38 位
數值數據類型的聲明語法:
1.NUMBER [( p[, s])]
2.P表示精度,S表示小數點的位數
日期時間類型
日期時間數據類型存儲日期和時間值,包括年、月、日,小時、分鐘、秒
主要的日期時間類型有:
1.DATE - 存儲日期和時間部分,精確到整個的秒
2.TIMESTAMP - 存儲日期、時間和時區信息,秒值精確到小數點後6位
RAW/LONG RAW
RAW 數據類型用於存儲二進制數據
RAW 數據類型最多能存儲 2000 字節
LONG RAW 數據類型用於存儲可變長度的二進制數據
LONG RAW 數據類型最多能存儲 2 GB
LOB類型
LOB 稱為“大對象”數據類型,可以存儲多達 4GB 的非結構化信息,例如聲音剪輯和視頻文件等
LOB 數據類型允許對數據進行高效、隨機、分段的訪問
偽列
Oracle 中偽列就像一個表列,但是它並沒有存儲在表中
偽列可以從表中查詢,但不能插入、更新和刪除它們的值
常用的偽列有ROWID和ROWNUM
ROWID 是表中行的存儲地址,該地址可以唯一地標識數據庫中的一行,可以使用 ROWID 偽列快速地定位表中的一行
ROWNUM 是查詢返回的結果集中行的序號,可以使用它來限制查詢返回的行數
SQL 操作符
Oracle 支持的 SQL 操作符分類如下:
算術操作符
算術操作符用於執行數值計算
可以在SQL語句中使用算術表達式,算術表達式由數值數據類型的列名、數值常量和連接它們的算術操作符組成
算術操作符包括加(+)、減(-)、乘(*)、除(/)
Select a+b from tablename;
注意:有一列為null時結果會為null
比較操作符
比較操作符用於比較兩個表達式的值
比較操作符包括 =、!=、<、>、<=、>=、BETWEEN…AND、IN、LIKE 和 IS NULL ANY ALL 等
Any:任意一個 > any(100, 200, 300);
例:
select * from 表名 where 列名 > any(100, 200, 300);
All:任何一個,所有的;
邏輯操作符
邏輯操作符用於組合多個計較運算的結果以生成一個或真或假的結果。
邏輯操作符包括與(AND)、或(OR)和非(NOT)。
or(或)
select ename from scott.emp where ename='joke' or ename='jacky'
and(與)
select ename from scott.emp where ename='and' or ename='jacky'
not(非)
select ename from scott.emp where not ename='and' or ename='jacky'
集合操作符
集合操作符將兩個查詢的結果組合成一個結果
union(並集):union連接兩句sql語句, 兩句sql語句的和 去掉重復的記錄。
(select deptno from scott.emp) union (select deptno from scott.dept)
union all(並集):接兩句sql語句,兩句sql語句的和不用去掉重復的記錄。
(select deptno from scott.emp) union all (select deptno from scott.dept)
intersect (交集):Intersect連接兩句sql語句 取查詢出來的兩個集合的 共同部分。
(select deptno from scott.emp) intersect (select deptno from scott.dept)
minus (補集):Minus 連接兩句sql 語句,取查詢出來的兩個集合的差。
(select deptno from scott.emp) minus (select deptno from scott.dept)
連接操作符
連接操作符用於將多個字符串或數據值合並成一個字符串
SELECT (venname|| ' 的地址是 ' ||venadd1||' '||venadd2 ||' '||venadd3) address FROM vendor_master WHERE vencode='V001';
通過使用連接操作符可以將表中的多個列合並成邏輯上的一行列
操作符的優先級
SQL 操作符的優先級從高到低的順序是:
算術操作符 --------最高優先級
連接操作符
比較操作符
NOT 邏輯操作符
AND 邏輯操作符
OR 邏輯操作符 --------最低優先級