目錄
1. 何為數(shù)據(jù)類型
2. 數(shù)據(jù)類型列表
3. 用戶自定義數(shù)據(jù)類型
4. 數(shù)據(jù)類型優(yōu)先級
在學(xué)習(xí)基本表之前杏慰,需要先了解一下數(shù)據(jù)類型干旁,一便更好的學(xué)習(xí)基本表魏烫。此處的數(shù)據(jù)類型基于 SQL Server 2012沐悦。
1. 何為數(shù)據(jù)類型
數(shù)據(jù)類型是一種屬性侥蒙,是用來限定表中的列的數(shù)據(jù)所允許存儲(chǔ)的數(shù)據(jù)的類型绳军,一列中的所有數(shù)值都應(yīng)該是同一種數(shù)據(jù)類型印机,除非該列指定為 sql_variant 數(shù)據(jù)類型的值。
數(shù)據(jù)類型一般分為數(shù)字類型门驾、日期和時(shí)間類型射赛、字符串類型、Unicode 字符串類型奶是、二進(jìn)制字符串類型楣责、空間類型、其他數(shù)據(jù)類型七大類聂沙。
2. 數(shù)據(jù)類型列表
幾點(diǎn)說明:
- Unicode 是計(jì)算機(jī)上的一種編碼方式秆麸。有興趣的書友可以到Unicode@字符百科查看各種字符對應(yīng)的編碼。
- 有一些數(shù)據(jù)類型都會(huì)有默認(rèn)值及汉,需要自定義長度的數(shù)據(jù)類型沮趣,在用戶不定義的時(shí)候,他會(huì)自動(dòng)給一個(gè)默認(rèn)值坷随。
3. 用戶自定義數(shù)據(jù)類型
用戶自定義數(shù)據(jù)類型是指用戶基于系統(tǒng)的數(shù)據(jù)類型而設(shè)計(jì)并實(shí)現(xiàn)的數(shù)據(jù)類型房铭。創(chuàng)建用戶自定義類型時(shí)必須提供數(shù)據(jù)類型的名稱驻龟、所基于的系統(tǒng)數(shù)據(jù)類型和是否允許為空三個(gè)參數(shù)。
通過圖形界面創(chuàng)建
在對象資源管理器下某個(gè)數(shù)據(jù)庫中找的可編程性節(jié)點(diǎn)缸匪,展開后右擊類型翁狐,如下圖:
然后在界面上設(shè)置前面所說的三個(gè)參數(shù),名稱設(shè)為 mycs凌蔬,所基于的系統(tǒng)數(shù)據(jù)類型為 text露懒,是否允許為空選擇 √ 允許。如下圖:
確定后可在可編程性下找到該數(shù)據(jù)類型砂心。
通過T-SQL語句創(chuàng)建
需要調(diào)用 sp_addtype 存儲(chǔ)過程隐锭,基本語法如下:
sp_addtype [ @typename = ] type, [ @phystype = ] system_data_type [ , [@nulltype = ] 'null_type' ]
語法說明:
- [ @typename = ] type:自定義數(shù)據(jù)類型的名稱,該名稱在每個(gè)數(shù)據(jù)庫中是唯一的计贰。該類型無默認(rèn)值钦睡。
- [ @phystype = ] system_data_type:自定義數(shù)據(jù)類型所基于物理數(shù)據(jù)類型或 SQL Server 提供的數(shù)據(jù)類型。該類型無默認(rèn)值躁倒。
- [@nulltype = ] 'null_type':指定自定義數(shù)據(jù)類型處理空值的方式荞怒。null_type 的數(shù)據(jù)了行為 varchar(8),默認(rèn)值為 NULL秧秉,并且必須用單引號引起來('NULL'褐桌、'NOT NULL'或'NONULL')。
【實(shí)例】在 practice 數(shù)據(jù)庫中自定義基于 float 的不允許為空值的mysc1 數(shù)據(jù)類型象迎。
在查詢窗口鍵入命令:
USE practice;
GO
EXEC sp_addtype mysc1 ,'float','NOT NULL';
調(diào)試后可得結(jié)果如下圖:
若要?jiǎng)h除用戶自定義的數(shù)據(jù)類型荧嵌,可通過如下方式:
sp_droptype [ @typename = ] 'type'
【實(shí)例】刪除 practice 數(shù)據(jù)庫中的 mysc1 數(shù)據(jù)類型。在查詢窗口鍵入如下命令:
USE practice;
GO
EXEC sp_droptype mysc
4. 數(shù)據(jù)類型的優(yōu)先級
當(dāng)兩個(gè)不同數(shù)據(jù)類型的表達(dá)式用運(yùn)算符結(jié)合后砾淌,數(shù)據(jù)類型優(yōu)先級規(guī)則將優(yōu)先級較低的數(shù)據(jù)類型轉(zhuǎn)換為優(yōu)先級較高的數(shù)據(jù)類型啦撮。如果此轉(zhuǎn)換不是所支持的飲食轉(zhuǎn)換,則會(huì)返回錯(cuò)誤汪厨。當(dāng)兩個(gè)操作數(shù)表達(dá)式具有相同的數(shù)據(jù)類型時(shí)赃春,運(yùn)算的結(jié)果便為該數(shù)據(jù)類型。
優(yōu)先級該地順序如下:
(最高)用戶自定義數(shù)據(jù)類型 > sql_variant > xml > datetimeoffset > datetime2 > datetime > smalldatetime > date > time > floart > real > decimal > money > smallmoney > bigint > int > smallint > tinyint > bit > ntext > text > image > timestamp > uniqueidentifier > nvarchar > nchar > varchar > char > varbinary > binary (最低)
以往的文章:
數(shù)據(jù)庫探索之旅——初識數(shù)據(jù)庫
數(shù)據(jù)庫探索之旅——數(shù)據(jù)庫管理系統(tǒng)
數(shù)據(jù)庫探索之旅——連接數(shù)據(jù)庫
數(shù)據(jù)庫探索之旅——對數(shù)據(jù)庫的簡單操作
如果覺得本文對你有用劫乱,請點(diǎn)擊收藏织中。(給點(diǎn)贊賞也不介意哦●0●)