MSSQL2008 2012資料庫的字段型別整理

2021-09-06 18:27:55 字數 4393 閱讀 1915

mssql2008-2012資料庫的字段型別

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

1

binary[(n)]

2varbinary[(n)]

3char[(n)]

4varchar[(n)]

5nchar[(n)]

6nvarchar[(n)]

7datetime

8smalldatetime

9decimal[(p[,s])]

10numeric[(p[,s])]

11float[(n)]

12real

13int

14smallint

15tinyint

16money

17smallmoney

18bit

19cursor

20sysname

21timestamp

22uniqueidentifier

23text

24image

25 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資料型別中儲存的資料是以位字串儲存的,不是由sqlserver解釋的,必須由應用程式來解釋。例如,應用程式可以使用bmp、tief、gif和jpeg格式把資料儲存在image資料型別中。

(2)字元資料型別

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

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

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

(3)unicode資料型別

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

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

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

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

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

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

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

setdateformat,[,system_data_bype][,'null_type']

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

例子:

1

usecust

23   execsp_addtypessn,'

varchar(11)

',"notnull'

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

例子:usecust

execsp_addtypebirthday,datetime,'null'

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

例子:

1

usemaster

23   execsp_addtypetelephone,'

varchar(24),

'notnull'

45   eexcsp_addtypefax,'

varchar(24)

','null

'

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

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

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

例子:

usemaster

execsp_droptype

'ssn

'

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

sqlserver的字段型別說明

以下為sql server7.0以上版本的字段型別說明。sql server6.5的字段型別說明請參考sql server提供的說明。

字段型別 描述

1bit

0或1的整型數字 2

int從-2^31(-2,147,483,648)到2^31(2,147,483,647)的整型數字 3

smallint

從-2^15(-32,768)到2^15(32,767)的整型數字 4

tinyint

從0到255的整型數字 5

decimal

從-10^38到10^38-1的定精度與有效位數的數字 6

numeric

decimal的同義詞 7

8money

從-2^63(-922,337,203,685,477.5808)到2^63-1(922,337,203,685,477.5807)的貨幣資料,最小貨幣單位千分之十 9

smallmoney

從-214,748.3648到214,748.3647的貨幣資料,最小貨幣單位千分之十 10

float

從-1.79e+308到1.79e+308可變精度的數字 11

real

從-3.04e+38到3.04e+38可變精度的數字 12

datetime

從2023年1月1日到2023年12日31的日期和時間資料,最小時間單位為百分之三秒或3.33毫秒 13

smalldatetime

從2023年1月1日到2023年6月6日的日期和時間資料,最小時間單位為分鐘 14

timestamp

時間戳,乙個資料庫寬度的唯一數字 15

uniqueidentifier

全球唯一識別符號guid 16

char

定長非unicode的字元型資料,最大長度為8000 17

varchar

變長非unicode的字元型資料,最大長度為8000 18

text

變長非unicode的字元型資料,最大長度為2^31-1(2g) 19

nchar

定長unicode的字元型資料,最大長度為8000 20

nvarchar

變長unicode的字元型資料,最大長度為8000 21

ntext

變長unicode的字元型資料,最大長度為2^31-1(2g) 22

binary

定長二進位制資料,最大長度為8000 23

varbinary

變長二進位制資料,最大長度為8000 24

image

變長二進位制資料,最大長度為2^31-1(2g)

MSSQL匯入匯出資料

匯出到excel exec master.xp cmdshell bcp settledb.dbo.shanghu out c temp1.xls c q s gnetdata gnetdata u sa p 匯入excel select from opendatasource microsoft....

MS SQL 資料型別

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

MsSql資料匯入MySql

做.net的開發人員絕大多數使用的都是mssql資料庫,但是隨著微軟在全球反盜版工作的展開,我們發現mssql的生存空間也越來越小,買個作業系統倒還可以考慮,但是買套資料庫成本就太高了,更何況隨著mono版本的不斷改進,說不定哪天咱們可以讓我們的asp.net程式完美的執行在apache下面,作業系...