標量(scalar)數據類型
標量(scalar)數據類型沒有內部組件,他們大致可分為以下四類:
. number
. character
. date/time
. boolean
表1顯示了數字數據類型;表2顯示了字符數據類型;表3顯示了日期和布爾數據類型。
表1 Scalar Types:Numeric
Datatype
Range
Subtypes
description
BINARY_INTEGER
-214748-2147483647
NATURAL
NATURAL
NPOSITIVE
POSITIVEN
SIGNTYPE
用於存儲單字節整數。
要求存儲長度低於NUMBER值。
用於限制范圍的子類型(SUBTYPE):
NATURAL:用於非負數
POSITIVE:只用於正數
NATURALN:只用於非負數和非NULL值
POSITIVEN:只用於正數,不能用於NULL值
SIGNTYPE:只有值:-1、0或1.
NUMBER
1.0E-130-9.99E125
DEC
DECIMAL
DOUBLE
PRECISION
FLOAT
INTEGERIC
INT
NUMERIC
REAL
SMALLINT
存儲數字值,包括整數和浮點數。可以選擇精度和刻度方式,語法:
number[( [,])]。
缺省的精度是38,scale是0.
PLS_INTEGER
-2147483647-2147483647
與BINARY_INTEGER基本相同,但采用機器運算時,PLS_INTEGER提供更好的性能 。
NUMBER 數字型 能存放整數值和實數值,並且可以定義精度和取值范圍
BINARY_INTEGER 數字型 可存儲帶符號整數,為整數計算優化性能
DEC 數字型 NUMBER的子類型,小數
DOUBLE PRECISION 數字型 NUMBER的子類型,高精度實數
INTEGER 數字型 NUMBER的子類型,整數
INT 數字型 NUMBER的子類型,整數
NUMERIC 數字型 NUMBER的子類型,與NUMBER等價
REAL 數字型 NUMBER的子類型,與NUMBER等價
SMALLINT 數字型 NUMBER的子類型,取值范圍比INTEGER小
VARCHAR2 字符型 存放可變長字符串,有最大長度
表2 字符數據類型
datatype
rang
subtype
description
CHAR
最大長度32767字節
CHARACTER
存儲定長字符串,如果長度沒有確定,缺省是1
LONG
最大長度2147483647字節
存儲可變長度字符串
RAW
最大長度32767字節
用於存儲二進制數據和字節字符串,當在兩個數據庫之間進行傳遞時,RAW數據不在字符集之間進行轉換。
LONGRAW
最大長度2147483647
與LONG數據類型相似,同樣他也不能在字符集之間進行轉換。
ROWID
18個字節
與數據庫ROWID偽列類型相同,能夠存儲一個行標示符,可以將行標示符看作數據庫中每一行的唯一鍵值。
VARCHAR2
最大長度32767字節
STRINGVARCHAR
與VARCHAR數據類型相似,存儲可變長度的字符串。聲明方法與VARCHAR相同
CHAR 字符型 定長字符串
LONG 字符型 變長字符串,最大長度可達32,767
DATE 日期型 以數據庫相同的格式存放日期值
BOOLEAN 布爾型 TRUE OR FALSE
ROWID ROWID 存放數據庫的行號
表3 DATE和BOOLEAN
datatype
range
description
BOOLEAN
TRUE/FALSE
存儲邏輯值TRUE或FALSE,無參數
DATE
01/01/4712 BC
存儲固定長的日期和時間值,日期值中包含時間
LOB數據類型
LOB(大對象,Large object) 數據類型用於存儲類似圖像,聲音這樣的大型數據對象,LOB數據對象可以是二進制數據也可以是字符數據,其最大長度不超過4G。LOB數據類型支持任意訪問方式,LONG只支持順序訪問方式。LOB存儲在一個單獨的位置上,同時一個"LOB定位符"(LOB locator)存儲在原始的表中,該定位符是一個指向實際數據的指針。在PL/SQL中操作LOB數據對象使用ORACLE提供的包DBMS_LOB.LOB數據類型可分為以下四類:
. BFILE
. BLOB
. CLOB
. NCLOB
操作符 與其他程序設計語言相同,PL/SQL有一系列操作符。操作符分為下面幾類:
. 算術操作符
. 關系操作符
. 比較操作符
. 邏輯操作符
算術操作符如表4所示
operator
operation
+
加
-
減
/
除
*
乘
**
乘方
關系操作符主要用於條件判斷語句或用於where子串中,關系操作符檢查條件和結果是否為true或false,表5是PL/SQL中的關系操作符
operator
operation
<
小於操作符
<=
小於或等於操作符
>
大於操作符
>=
大於或等於操作符
=
等於操作符
!=
不等於操作符
<>
不等於操作符
:=
賦值操作符
表6 顯示的是比較操作符
operator
operation
IS NULL
如果操作數為NULL返回TRUE
LIKE
比較字符串值
BETWEEN
驗證值是否在范圍之內
IN
驗證操作數在設定的一系列值中
表7.8顯示的是邏輯操作符
operator
operation
AND
兩個條件都必須滿足
OR
只要滿足兩個條件中的一個
NOT
取反