SQL 資料型別詳解

2021-04-12 23:10:59 字數 4455 閱讀 1222

1)char、varchar、text和nchar、nvarchar、ntext

char和varchar的長度都在1到8000之間,它們的區別在於char是定長字元資料,而varchar是變長字元資料。所謂定長就是長度固定的,當輸入的資料長度沒有達到指定的長度時將自動以英文空格在其後面填充,使長度達到相應的長度;而變長字元資料則不會以空格填充。text儲存可變長度的非unicode資料,最大長度為2^31-1(2,147,483,647)個字元。

後面三種資料型別和前面的相比,從名稱上看只是多了個字母"n",它表示儲存的是unicode資料型別的字元。寫過程式的朋友對unicode應該很了解。字元中,英文本元只需要乙個位元組儲存就足夠了,但漢字眾多,需要兩個位元組儲存,英文與漢字同時存在時容易造成混亂,unicode字符集就是為了解決字符集這種不相容的問題而產生的,它所有的字元都用兩個位元組表示,即英文本元也是用兩個位元組表示。nchar、nvarchar的長度是在1到4000之間。和char、varchar比較:nchar、nvarchar則最多儲存4000個字元,不論是英文還是漢字;而char、varchar最多能儲存8000個英文,4000個漢字。可以看出使用nchar、nvarchar資料型別時不用擔心輸入的字元是英文還是漢字,較為方便,但在儲存英文時數量上有些損失。

(2)datetime和**alldatetime

datetime:從2023年1月1日到2023年12月31日的日期和時間資料,精確到百分之三秒。

**alldatetime:從2023年1月1日到2023年6月6日的日期和時間資料,精確到分鐘。

(3)bitint、int、**allint、tinyint和bit

bigint:從-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型資料。

int:從-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型資料。

**allint:從-2^15(-32,768)到2^15-1(32,767)的整數資料。

tinyint:從0到255的整數資料。

bit:1或0的整數資料。

(4)decimal和numeric

這兩種資料型別是等效的。都有兩個引數:p(精度)和s(小數字數)。p指定小數點左邊和右邊可以儲存的十進位制數字的最大個數,p必須是從 1到38之間的值。s指定小數點右邊可以儲存的十進位制數字的最大個數,s必須是從0到p之間的值,預設小數字數是0。

(5)float和real

float:從-1.79^308到1.79^308之間的浮點數字資料。

real:從-3.40^38到3.40^38之間的浮點數字資料。在sql server中,real的同義詞為float(24)。

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

·binary [(n)]

·varbinary [(n)]

·char [(n)]

·varchar[(n)]

·nchar[(n)]

·nvarchar[(n)]

·datetime

·**alldatetime

·decimal[(p[,s])]

·numeric[(p[,s])]

·float[(n)]

·real

·int

·**allint

·tinyint

·money

·**allmoney

·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 和 **alldatetime兩種型別

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

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

SQL資料型別詳解

1 二進位制資料型別 二進位制資料報括binary varbinary 和 image binary 資料型別既可以是固定長度的 binary 也可以是變長度的。binary n 是 n 位固定的二進位制資料。其中,n 的取值範圍是從 1 到 8000。其儲存窨的大小是 n 4 個位元組。varbi...

sql資料型別詳解

1 二進位制資料型別 二進位制資料報括binary varbinary 和 image binary 資料型別既可以是固定長度的 binary 也可以是變長度的。binary n 是 n 位固定的二進位制資料。其中,n 的取值範圍是從 1 到 8000。其儲存窨的大小是 n 4 個位元組。varbi...

SQL資料庫資料型別詳解

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