MS SQL 資料型別

2021-09-05 16:46:37 字數 2994 閱讀 4699

1.資料型別

資料類弄是資料的一種屬性,表示資料所表示資訊的型別。任何一種計算機語言都定義了自己的資料型別。當然,不同的程式語言都具有不同的特點,所定義的資料型別的各類和名稱都或多或少有些不同。sql server 提供了 25 種資料型別:

·binary [(n)]

·varbinary [(n)]

·char [(n)]

·varchar[(n)]

·nchar[(n)]

·nvarchar[(n)]

·datetime

·smalldatetime

·decimal[(p[,s])]

·numeric[(p[,s])]

·float[(n)]

·real

·int

·smallint

·tinyint

·money

·smallmoney

·bit

·cursor

·sysname

·timestamp

·uniqueidentifier

·text

·image

·ntext

(1)二進位制資料型別

二進位制資料報括 binary、varbinary 和 image.

binary 資料型別既可以是固定長度的(binary),也可以是變長度的。

binary[(n)] 是 n 位固定的二進位制資料。其中,n 的取值範圍是從 1 到 8000。其儲存窨的大小是 n + 4 個位元組。

varbinary[(n)] 是 n 位變長度的二進位制資料。其中,n 的取值範圍是從 1 到 8000。其儲存窨的大小是 n + 4個位元組,不是 n 個位元組。

在 image 資料型別中儲存的資料是以位字串儲存的,不是由 sql server 解釋的,必須由應用程式來解釋。例如,應用程式可以使用 bmp、tief、gif 和 jpeg 格式把資料儲存在 image 資料型別中。

(2)字元資料型別

字元資料的型別包括 char,varchar 和 text。

字元資料是由任何字母、符號和數字任意組合而成的資料。

varchar 是變長字元資料,其長度不超過 8kb。char 是定長字元資料,其長度最多為 8kb。超過 8kb 的ascii 資料可以使用text 資料型別儲存。例如,因為 html 文件全部都是 ascii 字元,並且在一般情況下長度超過 8kb,所以這些文件可以 text 資料型別儲存在 sql server 中。

(3)unicode 資料型別

unicode 資料型別包括 nchar,nvarchar 和ntext。

在 microsoft sql server 中,傳統的非 unicode 資料型別允許使用由特定字符集定義的字元。在 sql server 安裝過程中,允許選擇一種字符集。使用 unicode 資料型別,列中可以儲存任何由unicode 標準定義的字元。在 unicode 標準中,包括了以各種字符集定義的全部字元。使用unicode 資料型別,所戰勝的窨是使用非 unicode 資料型別所占用的窨大小的兩倍。

在 sql server 中,unicode 資料以 nchar、nvarchar 和 ntext 資料型別儲存。使用這種字元型別儲存的列可以儲存多個字符集中的字元。當列的長度變化時,應該使用 nvarchar 字元型別,這時最多可以儲存 4000 個字元。當列的長度固定不變時,應該使用 nchar 字元型別,同樣,這時最多可以儲存 4000 個字元。當使用 ntext 資料型別時,該列可以儲存多於 4000 個字元。

(4)日期和時間資料型別

日期和時間資料型別包括 datetime 和 smalldatetime 兩種型別。

日期和時間資料型別由有效的日期和時間組成。例如,有效的日期和時間資料報括「4/01/98 12:15:00:00:00 pm」和「1:28:29:15:01 am 8/17/98」。前乙個資料型別是日期在前,時間在後乙個資料型別是霎時間在前,日期在後。在 microsoft sql server 中,日期和時間資料型別包括datetime 和 smalldatetime 兩種型別時,所儲存的日期範圍是從 1753 年 1 月 1 日開始,到 9999 年12 月 31 日結束(每乙個值要求 8 個儲存位元組)。使用 smalldatetime 資料型別時,所儲存的日期範圍是 1900 年 1 月 1日 開始,到 2079 年 12 月 31 日結束(每乙個值要求 4 個儲存位元組)。

日期的格式可以設定。設定日期格式的命令如下:

set dateformat ,[,system_data_bype][,'null_type']

其中,type 是使用者定義的資料型別的名稱。system_data_type 是系統提供的資料型別,例如 decimal、int、char 等等。 null_type 表示該資料型別是如何處理空值的,必須使用單引號引起來,例如'null'、'not null'或者'nonull'。

例子:use cust

exec sp_addtype ssn,'varchar(11)',"not null'

建立乙個使用者定義的資料型別 ssn,其基於的系統資料型別是變長為11 的字元,不允許空。

例子:use cust

exec sp_addtype birthday,datetime,'null'

建立乙個使用者定義的資料型別 birthday,其基於的系統資料型別是 datetime,允許空。

例子:use master

exec sp_addtype telephone,'varchar(24),'not null'

eexc sp_addtype fax,'varchar(24)','null'

建立兩個資料型別,即 telephone 和 fax

(2)刪除使用者定義的資料型別

當使用者定義的資料型別不需要時,可刪除。刪除使用者定義的資料型別的命令是 sp_droptype 。

例子:use master

exec sp_droptype 'ssn'

注意:當表中的列還正在使用使用者定義的資料型別時,或者在其上面還繫結有預設或者規則時,這種使用者定義的資料型別不能刪除。

MS SQL資料型別詳解

資料型別 型別 描 述 bit 整型 bit 資料型別是整型,其值只能是0 1或空值。這種資料型別用於儲存只有兩種可能值的資料,如yes 或no true 或fa lse on 或off int 整型 int 資料型別可以儲存從 231 2147483648 到231 2147483 647 之間的...

MS SQL資料型別詳解

資料型別 型別 描 述 bit 整型 bit 資料型別是整型,其值只能是0 1或空值。這種資料型別用於儲存只有兩種可能值的資料,如yes 或no true 或fa lse on 或off int 整型 int 資料型別可以儲存從 231 2147483648 到231 2147483 647 之間的...

MSSQL2000資料型別

長度 定長變長 變長時該長度為最大長度 定長時該長度一定要滿足該長度的大小。字元型別中的var是變長的 字元 位元組 統一編碼用雙位元組結構來儲存每個字元,而不是用單位元組 普通文字中的情況 sql字元類的資料型別中有個n開頭的型別是統一編碼的 mssql中要指定長度的資料型別有char,varch...