SQL數(shù)據(jù)庫字段數(shù)據(jù)類型說明_第1頁
SQL數(shù)據(jù)庫字段數(shù)據(jù)類型說明_第2頁
SQL數(shù)據(jù)庫字段數(shù)據(jù)類型說明_第3頁
SQL數(shù)據(jù)庫字段數(shù)據(jù)類型說明_第4頁
SQL數(shù)據(jù)庫字段數(shù)據(jù)類型說明_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、SQL數(shù)據(jù)庫字段數(shù)據(jù)類型說明數(shù)據(jù)類型塞描述bit整型bit數(shù)據(jù)類型是整型,其值只能是0、1或空值。這種數(shù)據(jù)類型附于存儲只有兩種可能值的數(shù)據(jù),如Yes或No、True或False、On或Ofint整型int數(shù)據(jù)類型可以存儲從-231(-48)到231(2147483647)之間的整數(shù)。存儲到數(shù)據(jù)庫的幾乎所有數(shù)值型的數(shù)據(jù)都可以用這種數(shù)據(jù)類型。這種數(shù)據(jù)類型在數(shù)據(jù)庫里占用4個字節(jié)smallint整型smallint數(shù)據(jù)類型可以存儲從-215(-32768)到215(32767)之間的整數(shù)。這種數(shù)據(jù)類型對存儲L些常限定在特定范圍內(nèi)的數(shù)值型數(shù)據(jù)非常有用。這種數(shù)據(jù)類型在數(shù)據(jù)庫里占用2字節(jié)空間tinyint整

2、型tinyint數(shù)據(jù)類型能存儲從0到255之間的整數(shù)。它在你只打算存儲有限數(shù)目的數(shù)值時很有用。這種數(shù)據(jù)類型在數(shù)據(jù)庫中占用1個字節(jié)numeric精確數(shù)值型numeric數(shù)據(jù)類型與decimal型相同Decimal精確數(shù)值型decimal數(shù)據(jù)類型能用來存儲從-1038-1到1038-1的固定精度和范圍的數(shù)值型數(shù)據(jù)。使用這種數(shù)據(jù)類型時,必須指定范圍和精度。范圍是小數(shù)點左右所能存儲的數(shù)字的總位數(shù)。精度是小數(shù)點右邊存儲的數(shù)字的位數(shù)Money貨幣型money數(shù)據(jù)類型用來表示錢和貨幣值。這種數(shù)據(jù)類型能存儲從-9220億到9220億之間的數(shù)據(jù),精確到貨幣單位的萬分之一Smallmoney貨幣型smallmon

3、ey數(shù)據(jù)類型用來表示錢和貨幣值。這種數(shù)據(jù)類型能存儲從到之間的數(shù)據(jù),精確到貨幣單位的萬分之一Float近似數(shù)值型float數(shù)據(jù)類型是一種近似數(shù)值類型,供浮點數(shù)使用。說浮點數(shù)是近似的,是因為在具范圍內(nèi)不是所有的數(shù)都能精確表示。浮點數(shù)可以是從+308到+308之間的任意數(shù)Real近似數(shù)值型real數(shù)據(jù)類型像浮點數(shù)一樣,是近似數(shù)值類型。它可以表示數(shù)值在+38到+38之間的浮點數(shù)Datetime日期時間型datetime數(shù)據(jù)類型用來表示日期和時間。這種數(shù)據(jù)類型存儲從1753年1月1日到9999年12月31日間所有的日期和時間數(shù)據(jù),精確到二白分之一秒或毫秒Smalldatetime日期時間型smallda

4、tetime數(shù)據(jù)類型用來表上從1900年1月1日到2079年6月6日間的日期和時間,精確到一分鐘cursor特殊數(shù)據(jù)型cursor數(shù)據(jù)類型卷-種特殊的數(shù)據(jù)類型,它包含一個對游標(biāo)的引用。這種數(shù)據(jù)類型用在存儲過程中,而且創(chuàng)建表時不能用Timestamp特殊數(shù)據(jù)型timestamp數(shù)據(jù)類型是l種特殊的數(shù)據(jù)類型,用來創(chuàng)建一個數(shù)據(jù)庫范圍內(nèi)的唯一數(shù)碼。一個表中只能有一個timestamp歹U。每次插入或修改一行時,timestamp歹U的值都會改變。盡管它的名字中有time,但timestamp列不是人們可識別的日期。在一個數(shù)據(jù)庫里,timestamp值是唯一的Uniqueidentifier特殊數(shù)據(jù)型U

5、niqueidentifier數(shù)據(jù)類型用來存淅-個全局唯一標(biāo)識符,即GUID。GUID確實是全局唯一的。這個數(shù)幾乎沒有機會在另一個系統(tǒng)中被重建。可以使用NEWID函數(shù)或轉(zhuǎn)換一個字符串為唯一標(biāo)識符來初始化具有唯一標(biāo)識符的列Char字符型char數(shù)據(jù)類型用來存儲指定長度的定長非統(tǒng)一編碼型的數(shù)據(jù)。當(dāng)定義一列為此類型時,你必須指定列長。當(dāng)你總能知道要存儲的數(shù)據(jù)的長度時,此數(shù)據(jù)類型很有用。例如,當(dāng)你按郵政編碼加4個字符格式來存儲數(shù)據(jù)時,你知道總要用到10個字符。此數(shù)據(jù)類型的列寬最大為8000個字符Varchar字符型varchar數(shù)據(jù)類型,向char類型一樣,用來存儲非統(tǒng)一編碼型字符數(shù)據(jù)。與char型不

6、一樣,此數(shù)據(jù)類型為變長。當(dāng)定義一列為該數(shù)據(jù)類型時,你要指定該列的最大長度。它與char數(shù)據(jù)類型最大的區(qū)別是,存儲的長度不是列長,而是數(shù)據(jù)的長度Text字符型text數(shù)據(jù)類型用來存儲大量的非統(tǒng)一編碼型字符數(shù)據(jù)。這種數(shù)據(jù)類型最多可以有231-1或20億個字符Nchar統(tǒng)編碼字符型nchar數(shù)據(jù)類型用來存儲定長統(tǒng)一編碼字符型數(shù)據(jù)。統(tǒng)一編碼用雙字節(jié)結(jié)構(gòu)來存儲每個字符,而不是用單字節(jié)(普通文本中的情況)。它允許大量的擴展字符。此數(shù)據(jù)類型能存儲4000種字符,使用的字節(jié)空間上增加了一倍Nvarchar統(tǒng)編碼字符型nvarchar數(shù)據(jù)類型用作變長的統(tǒng)一編碼字符型數(shù)據(jù)。此數(shù)據(jù)類型能存儲4000種字符,使用的字

7、節(jié)空間增加了一倍Ntext統(tǒng)編碼字符型ntext數(shù)據(jù)類型用來存儲大量的統(tǒng)一編碼字符型數(shù)據(jù)。這種數(shù)據(jù)類型能存儲230-1或?qū)⒔?0億個字符,且使用的字節(jié)空間增加了一倍Binary二進制數(shù)據(jù)類型binary數(shù)據(jù)類型用來存儲可達8000字節(jié)長的定長的二進制數(shù)據(jù)。當(dāng)輸入表的內(nèi)容接近相同的長度時,你應(yīng)該使用這種數(shù)據(jù)類型varbinary二進制數(shù)據(jù)類型varbinary數(shù)據(jù)類型用來存儲可達8000字B長的變長的二進制數(shù)據(jù)。當(dāng)輸入表的內(nèi)容大小可變時,你應(yīng)該使用這種數(shù)據(jù)類型image二進制數(shù)據(jù)類型image數(shù)據(jù)類型用來存儲變長的二進制數(shù)據(jù),最大可達231-1或大約20億字節(jié)1)char、varchar、tex

8、t和nchar、nvarchar、ntextchar和varchar的長度都在1到8000之間,它們的區(qū)別在于char是定長字符數(shù)據(jù),而varchar是變長字符數(shù)據(jù)。所謂定長就是長度固定的,當(dāng)輸入的數(shù)據(jù)長度沒有達到指定的長度時將自動以英文空格在其后面填充,使長度達到相應(yīng)的長度;而變長字符數(shù)據(jù)則不會以空格填充。text存儲可變長度的非Unicode數(shù)據(jù),最大長度為2A31-1(2,147,483,647)個字符。后面三種數(shù)據(jù)類型和前面的相比,從名稱上看只是多了個字母n,它表示存儲的是Unicode數(shù)據(jù)類型的字符。寫過程序的朋友對Unicode應(yīng)該很了解。字符中,英文字符只需要一個字節(jié)存儲就足夠了

9、,但漢字眾多,需要兩個字節(jié)存儲,英文與漢字同時存在時容易造成混亂,Unicode字符集就是為了解決字符集這種不兼容的問題而產(chǎn)生的,它所有的字符都用兩個字節(jié)表示,即英文字符也是用兩個字節(jié)表示。nchar、nvarchar的長度是在1到4000之間。和char、varchar比較:nchar、nvarchar則最多存儲4000個字符,不論是英文還是漢字;而char、varchar最多能存儲8000個英文,4000個漢字??梢钥闯鍪褂胣char、nvarchar數(shù)據(jù)類型時不用擔(dān)心輸入的字符是英文還是漢字,較為方便,但在存儲英文時數(shù)量上有些損失。(2)datetime和smalldatetimedat

10、etime:從1753年1月1日到9999年12月31日的日期和時間數(shù)據(jù),精確到百分之三秒。smalldatetime:從1900年1月1日到2079年6月6日的日期和時間數(shù)據(jù),精確到分鐘。(3)bitint、int、smallint、tinyint和bitbigint:從-2A63(-808)到2A63-1(807)的整型數(shù)據(jù)。int:從-2人31(-2,147,483,648)至U2A31-1(2,147,483,647)的整型數(shù)據(jù)。smallint:從-2人15(-32,768)至U2A15-1(32,767)的整數(shù)數(shù)據(jù)。tinyint:從0到255的整數(shù)數(shù)據(jù)。bit:1或0的整數(shù)數(shù)據(jù)。

11、(4)decimal和numeric這兩種數(shù)據(jù)類型是等效的。都有兩個參數(shù):p(精度)和s(小數(shù)位數(shù))。p指定小數(shù)點左邊和右邊可以存儲的十進制數(shù)字的最大個數(shù),p必須是從1到38之間的值。s指定小數(shù)點右邊可以存儲的十進制數(shù)字的最大個數(shù),s必須是從0到p之間的值,默認(rèn)小數(shù)位數(shù)是0。(5)float和realfloat:從A308到人308之間的浮點數(shù)字?jǐn)?shù)據(jù)。real:從人38到人38之間的浮點數(shù)字?jǐn)?shù)據(jù)。在SQLServer中,real的同義詞為float(24)。數(shù)據(jù)庫定義到char類型的字段時,不知道大家是否會猶豫一下,到底選char、nchar、varchar、nvarchar、text、nte

12、xt中哪一種呢結(jié)果很可能是兩種,一種是節(jié)儉人士的選擇:最好是用定長的,感覺比變長能省些空間,而且處理起來會快些,無法定長只好選用定長,并且將長度設(shè)置盡可能地?。涣硪环N是則是覺得無所謂,盡量用可變類型的,長度盡量放大些。鑒于現(xiàn)在硬件像蘿卜一樣便宜的大好形勢,糾纏這樣的小問題實在是沒多大意義,不過如果不弄清它,總覺得對不起勞累過度的CPU和硬盤。下面開始了(以下說明只針對SqlServer有效):1 、當(dāng)使用非unicode時慎用以下這種查詢:selectffromtwheref=Nxx原因:無法利用到索引,因為數(shù)據(jù)庫會將f先轉(zhuǎn)換到unicode再和Nxx比較2 、char和相同長度的varcha

13、r處理速度差不多(后面還有說明)3 、varchar的長度不會影響處理速度!(看后面解釋)4 、索引中列總長度最多支持總為900字節(jié),所以長度大于900的varchar、char和大于450的nvarchar,nchar將無法創(chuàng)建索引5 、text、ntext上是無法創(chuàng)建索引的6 、ORMapping中對應(yīng)實體的屬性類型一般是以string居多,用char的非常少,所以如果按mapping的合理性來說,可變長度的類型更加吻合7、一般基礎(chǔ)資料表中的name在實際查詢中基本上全部是使用like%xx%這種方式,而這種方式是無法利用索引的,所以如果對于此種字段,索引建了也白建8、其它一些像remar

14、k的字段則是根本不需要查詢的,所以不需要索引9、varchar的存放和string是一樣原理的,即lengthblock這種方式,所以varchar的長度和它實際占用空間是無關(guān)的10、對于固定長度的字段,是需要額外空間來存放NULL標(biāo)識的,所以如果一個char字段中出現(xiàn)非常多的NULL,那么很不幸,你的占用空間比沒有NULL的大(但這個大并不是大太多,因為NULL標(biāo)識是用bit存放的,可是如果你一行中只有你一個NULL需要標(biāo)識,那么你就白白浪費1byte空間了,罪過罪過!),這時候,你可以使用特殊標(biāo)識來存放,如:NV11、同上,所以對于這種NULL查詢,索引是無法生效的,假如你使用了NULL標(biāo)

15、識替代的話,那么恭喜你,你可以利用到索引了12 、char和varchar的比較成本是一樣的,現(xiàn)在關(guān)鍵就看它們的索引查找的成本了,因為查找策略都一樣,因此應(yīng)該比較誰占用空間小。在存放相同數(shù)量的字符情況下,如果數(shù)量小,那么char占用長度是小于varchar的,但如果數(shù)量稍大,則varchar完全可能小于char,而且要看實際填充數(shù)值的充實度,比如說varchar(3)和char(3),那么理論上應(yīng)該是char快了,但如果是char(10)和varchar(10),充實度只有30%的情況下,理論上就應(yīng)該是varchar快了。因為varchar需要額外空間存放塊長度,所以只要length(1-fillfactor)大于這個存放空間(好像是2字節(jié)),那么它就會比相同長度的char快了。13 、nvarchar比varchar要慢上一些,而且對于非

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論