1.數據類型
(1)常用數據類型
1.整數類型
int | ?存儲范圍是-2,147,483,648到2,147,483,647之間的整數,主鍵列常設置此類型。 (每個數值占用 4字節) |
smallint | ?存儲范圍是-32,768 到 32,767 之間的整數,用來存儲限定在特定數值范圍內的數據。 (每個數值占用 2 字節) |
tinyint | ?存儲范圍是0到255 之間的整數,用來存儲有限數目的數值。 (每個數值占用 1 字節) |
bigint | ?存儲范圍是-9,223,372,036,854,775,808到?9,223,372,036,854,775,807之間的整數。 (每個數值占用?8 字節) |
bit | ?值只能是0或1,當輸入0以外的其他值時,系統均把它們當1看待。常用來表示真假、男女等二值選擇。 |
?
2.數值類型
decimal(p,s) | ?p 為精度(有效位),表示可儲存數值的最大位數,小數點左右兩側都包括在內,默認最大位為38 位;s為小數位數,標識小數點后 ?面所能儲存的最大位數,默認最小位為0位。如:123.45,則 p=5,s=2(內存大小取決于精度p) |
numeric(p,s) | ?numeric 和 decimal 是功能相同的,同是用來保存精度可變的浮點型數據。 |
float | ?浮點型,它是一種近似數值類型,float(n)可儲存1-53的可變精度浮點數值。 (內存大小取決于精度n) |
money | ?貨幣型,能存儲從-9220 億到 9220 億之間的數據,精確到小數點后四位。 (每個數值占用 8 字節) |
?
3.日期時間
datetime | ?儲存有效日期范圍是1753/1/1~9999/12/31,可精準到3.33毫秒。(每個數值占用 8 字節) |
smalldatetime | ?儲存有效日期范圍是1900/1/1~2079/6/6,精確到分鐘。(每個數值占用 4 字節) |
?
4.二進制類型
image | ?雖然類型名為image, 但是并不意味著只能保存圖片二進制數據,實際上它可以保存任何二進制數據。 |
?
?
5.字符串類型
char(m) | ?固定長度字符串,長度為 m。 |
nchar(m) | ?國際化固定長度字符串,長度為 m。 |
varchar(m) | ?可變長度字符串,最大長度為m,且必須是一個介于 1 和 8,000 之間的數值。 |
nvarchar(m) | ?國際化可變長度字符串,最大長度為m,?且必須是一個介于 1 和 4,000 之間的數值。 |
text | ?可變長度字符串,最大長度為 231?- 1個字節。 |
ntext | ?國際化可變長度字符串,最大長度為 230?- 1個字符。 |
國際化就是通用與標準。char、varchar、text儲存的字符是基于ASCII編碼格式,對于其他編碼格式的字符可能會造成存儲問題。Unicode字符集(萬國碼)就是為了解決字符集這種不兼容的問題而產生的,它所有的字符都用兩個字節表示,即英文字符也是用兩個字節表示。nchar、 nvarchar、ntext存儲的正是Unicode編碼格式的字符。所以一般來說,如果含有中文字符,用nchar、nvarchar、ntext, 如果只含英文字符,就用char、varchar、text。 |
作者:Esofar
出處:http://www.cnblogs.com/esofar/p/4852765.html
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。


第一大類:整數數據bit:bit數據類型代表0,1或NULL,就是表示true,false.占用1byte.int:以4個字節來存儲正負數.可存儲范圍為:-2^31至2^31-1.smallint:以2個字節來存儲正負數.存儲范圍為:-2^15至2^15-1tinyint: 是最小的整數類型,僅用1字節,范圍:0至此^8-1第二大類:精確數值數據numeric:表示的數字可以達到38位,存儲數據時所用的字節數目會隨著使用權用位數的多少變化.decimal:和numeric差不多第三大類:近似浮點數值數據float:用8個字節來存儲數據.最多可為53位.范圍為:-1.79E+308至1.79E+308.real:位數為24,用4個字節,數字范圍:-3.04E+38至3.04E+38第四大類:日期時間數據datatime:表示時間范圍可以表示從1753/1/1至9999/12/31.使用8個字節.,精確到3.33毫秒smalldatetime:表示時間范圍可以表示從1900/1/1至2079/12/31.使用4個字節,精確到分鐘第五大類:字符串數據char:長度是設定的,最短為1字節,最長為8000個字節.不足的長度會用空白補上.varchar:長度也是設定的,最短為1字節,最長為8000個字節,尾部的空白會去掉.text:長寬也是設定的,最長可以存放2G的數據.第六大類:Unincode字符串數據nchar:長度是設定的,最短為1字節,最長為4000個字節.不足的長度會用空白補上.儲存一個字符需要2個字節.nvarchar:長度是設定的,最短為1字節,最長為4000個字節.尾部的空白會去掉.儲存一個字符需要2個字節.ntext:長度是設定的,最短為1字節,最長為2G.尾部的空白會去掉,儲存一個字符需要2個字節.第七大類:貨幣數據類型money:記錄金額范圍為:-92233720368577.5808至92233720368577.5807.需要8 個字節.smallmoney:記錄金額范圍為:-214748.3648至214748.36487.需要4個字節.第八大類:標記數據timestamp:該數據類型在每一個表中是唯一的!當表中的一個記錄更改時,該記錄的timestamp字段會自動更新.uniqueidentifier:用于識別數據庫里面許多個表的唯一一個記錄.第九大類:二進制碼字符串數據binary:固定長度的二進制碼字符串字段,最短為1,最長為8000.varbinary:與binary差異為數據尾部是00時,varbinary會將其去掉image:為可變長度的二進制碼字符串,最長2G.
?
(2)新增數據類型:
~ XML:專門用來存儲xml
~varchar(max)與nvarchar(max):加個max是什么意思呢,不是傳統意義上的8000,max指示該類型最大存儲大小為2^32 - 1,約為2G。該類型用來替代原本的text與ntext類型,text與ntext在未來更高的版本會被拋棄
~varbinary(max):與varbinary相同特性,max指示該類型最大存儲大小為2^32 - 1,約為2G
(3)數據存儲基本拓展:
概念:數據以頁為單位存儲,一個頁8KB,去掉固定要用的相關開銷,還有8060個字節可以使用。8個頁組成一個擴展區;
分配單元:
【1】IN_ROW_DATA:存儲行內數據
【2】ROW_OVERFLOW_DATA:當【1】中的行數據超過一個頁最大存儲空間(即8060B時),存儲溢出數據。原行內留下一個24B的指針
【3】LOB_Data:存儲Lob(二進制)對象
2.同義詞
概念:同義詞的概念我是這么理解的,其實就是再起個名字;舉個例子,李狗蛋有3個稱呼,大名李狗蛋,外號二狗子,小名蛋蛋。
? ??由此可以看出,大名、外號、小名都代表的是同一個人,外號和小名是基于大名得來的,所以大名就叫做基對象,而小名和外號就叫做同義詞。
特點:
(1)局部同義詞名稱唯一
(2)對同義詞做的任何更改其實就是在修改基對象
(3)不能引用用戶定義的聚合函數
基本形式:
--基本形式 create synonym 同義詞名 for 基對象 --實例演示 create synonym test102 for dbo.test101
?
?
3.分區表
概念:其實就是把表中數據,根據水平或者垂直分割
(1)水平分割:其實就是列太多,把它分到多個表中,要查的時候就join起來
(2)垂直分割:其實就是行數據太多,導致單表太大,把它分成多個相同結構的表,分別根據某個邏輯(比如說時間字段)去進行分割
操作:
? ? (1). 創建分區函數?
(2). 創建分區方案
(3). 對表進行分區
概念加實操參考:
(1)基礎:http://www.cnblogs.com/gered/p/8074747.html
(2)深入:http://www.cnblogs.com/gered/p/8856585.html
(3)探究:http://www.cnblogs.com/CareySon/archive/2011/12/30/2307766.html