SQL Server資料型別

SQL Server的資料型別基本有數字、日期、文字
不詳細逐一記錄,記一些特別的就好
前面有var的表示變體長度





數字:
bigint→8bytes
int→4bytes
smallint→2bytes
tinyint→1bytes
bit→1bit

精確位數:
numeric→視有效位數而定
cecimal→與numeric相同

貨幣:
money→8bytes
smallmoney→4bytes
就是bigint跟int抓來借4個位數當小數點位數

文字:
char
varchar
varchar(max)

Unicode字串的文字
nchar
nvarchar
nvarchar(max)


日期時間:
datetime 舊的日期型別 1753/1/1~9999/12/31 精確度較低
比較常用的也是這個
datetime2 新的日期型別 0001/1/1~9999/12/31 精確度較高
datetimeoffset 跨國企業有時區在用的

二元碼字串:(圖片、影片 doc檔等等)
binary
varbinary
varbinary(max) 最高2G

特別其他型別
xml
cursor
hierarchyid 階層
geometry 2D平面座標
geography 3D地理


CREATE TABLE 文字表
(
  文字1 CHAR(40),
  文字2 NCHAR(20)
)
GO

INSERT INTO 文字表 VALUES('秀秀秀秀秀','秀秀秀秀秀')
INSERT INTO 文字表 VALUES('綉綉綉綉綉','綉綉綉綉綉')
INSERT INTO 文字表 VALUES('喆喆喆喆喆','喆喆喆喆喆')
INSERT INTO 文字表 VALUES('堃堃堃堃堃','堃堃堃堃堃')
INSERT INTO 文字表 VALUES('菸菸菸菸菸','菸菸菸菸菸')
INSERT INTO 文字表 VALUES('烟烟烟烟烟','烟烟烟烟烟')
INSERT INTO 文字表 VALUES('菓菓菓菓菓','菓菓菓菓菓')
INSERT INTO 文字表 VALUES('されたさまざまなジャンルの','されたさまざまなジャンルの')
INSERT INTO 文字表 VALUES('야후서비스에대해더','야후서비스에대해더')

INSERT INTO 文字表 VALUES(N'秀秀秀秀秀',N'秀秀秀秀秀')
INSERT INTO 文字表 VALUES(N'綉綉綉綉綉',N'綉綉綉綉綉')
INSERT INTO 文字表 VALUES(N'喆喆喆喆喆',N'喆喆喆喆喆')
INSERT INTO 文字表 VALUES(N'堃堃堃堃堃',N'堃堃堃堃堃')
INSERT INTO 文字表 VALUES(N'菸菸菸菸菸',N'菸菸菸菸菸')
INSERT INTO 文字表 VALUES(N'烟烟烟烟烟',N'烟烟烟烟烟')
INSERT INTO 文字表 VALUES(N'菓菓菓菓菓',N'菓菓菓菓菓')
INSERT INTO 文字表 VALUES(N'されたさまざまなジャンルの',N'されたさまざまなジャンルの')
INSERT INTO 文字表 VALUES(N'야후서비스에대해더',N'야후서비스에대해더')


SELECT * FROM 文字表

上面的結果nchar的欄位才會正常顯示
而char欄位顯示不出的字會是問號
一但編碼出現問號
就再也無法得知當初的輸入的資料為何了

留言

熱門文章