SQL及Oracle和MySQL的數據類型詳解

SQL(Structured Query Language) 又稱結構化查詢語言,是一種在關係型數據庫中定義和查詢及操縱數據的標準語言,是用戶和數據庫之間進行交流的接口,正在像OracleMySQLSQL Server幾乎所有的數據庫實現了該接口,都支持SQL的查詢。SQL語言結構簡潔,功能強大,簡單易學,所以自從推出以來,SQL語言得到了廣泛的應用。

SQL 語言由下面5個子語言組成:

數據定義語言(DDL-Data Definition Language);

數據查詢語言(SELETE-Query Statements);

數據操縱語言(DML-Datat Manipulation Language);

事務控制語言(TC-Transaction Control Statements);

數據控制語言(DCL-Datat Control Language);


數據類型

Oracle和MySQL都是兩種重要的數據爲,下面從它們各自的基本數據類型開始講起。

數據類型

數據類型

說明



Oracle

MySQL

數值類型

NUMBER(p,s)

存儲數值數據類型,如浮點型、整數型、分數、雙精度等。其中p爲精度,表示數字的總位數(1 <= p <=38) ; s爲範圍,表示小數點右邊的位數,它在-84至127之間。默認38位


TINYINT


微整型,1字節

SMALLINT


小整型,2字節

MEDIUMINT


中整型,3字節

INT或INTEGER

整數數據類型

整型,4字節

BIGINT


大整型,8字節

FLOAT

浮點數數據類型

單精度浮點數值,4字節

DOUBLE


雙精度浮點數值,8字節

DECIMAL


對DECIMAL(M,D) ,如果M>D,爲M+2否則爲D+2

字符串類型

CHAR(n)

n=1to2000字節,定長字符串,n字節長,如果不指定長度,缺省爲1個字節長(一個漢字爲2字節)

定長字符串,0-255字節

NCHAR(n)

NLS(national language support , 國際語言支持)的數據類型僅可以存儲由數據庫 NLS 字符集定義的 Unicode 字符集。Oracle最多可以存儲2000Byte

VARCHAR(n)

最多可以以可變長度來存儲4000B,因此不需要空格來作補充。

變長字符串,0-255字節

NVARCHAR(n)

n=1to4000字節,最多可以以可變長度來存儲4000B,因此不需要空格來作補充。

NLS(national language support , 國際語言支持)的數據類型僅可以存儲由數據庫 NLS 字符集定義的 Unicode 字符集。

VARCHAR2(n)

VARCHAR2 比 VARCHAR 更適合使用,由於兼容性的原因,所以仍然在 Oracle 數據庫中保留着 VARCHAR 。


NVARCHAR2

NLS 的數據類型與 VARCHAR2 數據類型等價。這個數據類型最多可存儲4000B 。


CLOB

存儲大量的單字節字符數據和多字節字符數據。存儲的最大容量爲4G


NCLOB

存儲可變長度的Unicode字符集字符數據,存儲的最大容量爲4G


BLOB

存儲較大的二進制對象。例:圖形,視頻,音頻等


BFILE

bfile:文件定位器;指向位於服務器文件系統是二進制文件(存儲一個文件路徑)


LONG

存儲可變長度的字符數據,最多存儲2GB 。


RAW

存儲基於字節的數據。最多存儲2000個字節,使用需指定大小。raw數據類型可以建立索引。


LONG RAW

存儲可變長度的二進制數據。最多能存儲2GB。不能索引。


TINYBLOB


不超過 255 個字符的二進制字符串,0-255字節

TINYTEXT


短文本字符串,0-255字節

BLOB


二進制形式的長文本數據,0-65 535字節

TEXT


長文本數據,0-65 535字節

MEDIUMBLOB


二進制形式的中等長度文本數據

MEDIUMTEXT


中等長度文本數據,0-16 777 215字節

LOGNGBLOB


二進制形式的極大文本數據,0-4 294 967 295字節

LONGTEXT


極大文本數據,0-4 294 967 295字節

日期和時間

DATE

存儲表的日期和時間數據,使用7個字節固定長度,每個字節分別存儲世紀,年,月,日,小時,分和秒;值從公元前4712年1月1日到公元9999年12月31日。 Oracle中的sysdate函數功能是返回當前的日期和時間。

日期值,YYYY-MM-DD

TIMESTAMP

存儲日期的年,月,日以及時間的小時,分和秒值。其中秒值精確到小數點後6位,同時包含時區信息。 Oracle中的systimestamp函數功能是返回當前日期,時間和時區。


TIME


時間值或持續時間,HH:MM:SS

YEAR


年份值,YYYY

DATETIME


混合日期和時間,YYYY-MM-DD HH:MM:SS

TIMESTAMP


混合日期和時間值,時間戳,YYYYMMDD HHMMSS

複合類型

ENUM


一個 ENUM 類型最多可以包含 65536 個元素,其中一個元素被 MySQL 保留,用來存儲錯誤信息,這個錯誤值用索引 0 或者一個空字符串表示。

SET


容器類型,一個 SET 類型最多可以包含 64 項元素,且不可能包含兩個相同的元素

轉自: http://blog.csdn.net/luoweifu/article/details/8827753

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章