當前位置:首頁 » 編程語言 » sqlserver數值類型
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlserver數值類型

發布時間: 2023-04-21 13:10:00

sql server 2008主要數據類型

總體可以歸為3種類型:
字元: char,varchar,nchar,nvarchar
數字: int,decimal,numeric,float,閉鬧穗money
時間: datetime,date,time

用慣oracle的人,一般只用3種類型:
varchar2,可以認為對應sqlserver的彎棚varchar
number,可以認為對應sqlserver的numeric
date,對應sqlserver的datetime

所以,你如果搞不明白那麼多數據類型轎卜,就用這三種類型。

② 二、資料庫與數據表--2、SQLServer的數據類型

(1)文本類型: 字元數據包悉讓含任意字母、符號或數字字元的組合

char: 固定長度的非Unicode字元數據,最大長度為8000個字元

varchar: 可變長度的非Unicode數據,最大長度為8000個字元

text: 存儲長文本信息,最大長度為2^31-1(2147483647)個字元

nchar: 固定長度的Unicode數據,最大長度為4000個字元

narchar: 可變長度的Unicode數據,最大長度為4000個字元

ntext: 存儲長文本信息,最大長度為2^30-1(1073741823)個字元

(Unicode是國際組織制定的可以容納世界上所有文字和符號的字元編碼方案,編碼數據長度是非編碼數據的兩倍)

(2)整數類型

bigint: 佔用8個位元組,可表示範圍-2^63~2^63-1之間的整數

int: 佔用4個位元組

smallint: 佔用2個位元組

tinint: 佔用1個位元組,可表示0~255之間的整數

(3)精確數字類型

decimal: -10^38~10^38-1之間固定精度和小數位的數字

numeric(常用): 功能等同於旦飢decimal

寫法:

decimal(整數,小數)和numeric(整數,小數)——若不指定位數,默認18位整數,0位小數:

(4)近似數字(浮點)類型(很少用,可以用numeric替代)

float[(n)]: 表示範圍-1.79E+308~1.79E+308

n 表示精度,在1-53之間取值,當n在1~24之間時,精度為7位有效數字,佔用4個位元組;當n在25~53之間時,精度為15位有效數字,佔8個位元組。

real: 表示範圍-3.40E+38~3.40E+38佔用4個位元組,相當於float(24)

(5)日期類型

datetime: 允許范圍1753-1-1至9999-1-1

smalldatetime(常用): 允許范圍1900-1-1至2079-6-6

時間精度不同: datetime精確到3%秒;smalldatetime精確到1分鍾

格式說明:

分隔符數字方式: 2013-08-20 或 08/20/2013

純數字方式: 08202013

英文數字類型: Aug 20,2013

注意問題: 日期在使用的時候需要使用單引號'     ' 括起來

(6)貨幣類型

money: 貨幣數值介於-2^63與2^63-1之間,精確到貨幣單位的千分之一

smallmoney: 貨幣數據介於-214748.3648與214748.3648之間,精確到貨幣單位的千分之十

(7)位類型

bit: 表示「是/否」類型的數據(1/0,true/false)

(8)二進制類型

binary: 固定長度的二進制數據,最大8000個位元組

vbinary: 可變長度的二進制數據,最大8000個位元組

image: 可變長度的模陸返二進制數據,最大長度2^31個位元組—— 應用場合: 可存儲圖片

③ SQL server 常用基本數據類型有哪些

一、
整數數據類型
整數數據類型是最常用的數據類型之一。
1、int
(integer)
2、smallint
3、tinyint
4、bigint
二、
浮點數據類型
浮點數據類型用於存儲十進制小數。浮點數值的數據在sql
server
中採用上舍入(round
up
或稱為只入不舍)方式進行存儲。所謂上舍入是指,當(且僅當)要舍入的數是一個非零數時,對其保留數字部分的最低有效位上的數值加1
,並進行必要的進位。若一個數是上舍入數,其絕對值不會減少。如:對3.14159265358979
分別進行2
位和12位舍入,結果為3.15
和3.141592653590。
1、real
數據類型
2、float
3、decimal
4、numeric
三、二進制數據類型
1、binary
2、varbinary
四、
邏輯數據類型
bit:
bit數據類型佔用1
個位元組的存儲空間,其值為0
或1
。如果輸入0
或1
以外的值,將被視為1。
bit
類型不能定義為null
值(所謂null
值是指空值或無意義的值)。
五、字元數據類型
字元數據類型是使用最多的數據類型。它可以用來存儲各種字母、數字元號、特殊符號。一般情況下,使用字元類型數據時須在其前後加上單引號』或雙引號」

1
char
2、nchar
3、varchar
4、nvarchar
六、文本和圖形數據類型
這類數據類型用於存儲大量的字元或二進制數據。
1、text
2
ntext
3
image
七、
日期和時間數據類型
1
datetime
2
smalldatetime
八、貨幣數據類型
1
money
2
smallmoney
smallmoney數據類型類似於money
類型,但其存儲的貨幣值范圍比money數據類型小,其取值從-214,748.3648到+214,748.3647,存儲空間為4
個位元組。
九、
特定數據類型
sql
server
中包含了一些用於數據存儲的特殊數據類型。
1
timestamp
十、用戶自定義數據類型
sysname
sysname
數據類型是系統提供給用戶的,便於用戶自定義數據類型。它被定義為nvarchar(128),即它可存儲128個unicode字元或256個一般字元。其具體使用方法請參見第7章「管理資料庫表」中的「自定義數據類型」章節。
十一、
新數據類型
sql
server
2000
中增加了3
種數據類型:bigint、sql_variant和table。其中bigint數據類型已在整數類型中介紹,下面介紹其餘兩種:
1
sql_variant
sql_variant數據類型可以存儲除文本、圖形數據(text、ntext、image)和timestamp類型數據外的其它任何合法的sql
server數據。此數據類型大大方便了sql
server的開發工作。
2
table
table
數據類型用於存儲對表或視圖處理後的結果集。這一新類型使得變數可以存儲一個表,從而使函數或過程返回查詢結果更加方便快、捷其、使用請參見第13章「游標、視圖和自定義函數」。

④ sql server中的怎麼把數值型轉換為字元串

有兩種。

1.轉換(int,欄位名)

例如:選擇convert(int,'3')

選擇cast('3'作為int)

一般來說,沒有必要將字元串轉換為數字類型,如果你需要比較兩個欄位是相等的,但為字元串類型欄位,類型,用「=」來比較這兩個值是相等的,SQLSERVER將自動將字元串轉換為一個數字,然後比較。

(4)sqlserver數值類型擴展閱讀:

注意事項:

這兩個函數都執行強制轉換,但是語法不同。據說有一些不同的轉換,但我更習慣於使用轉換函數,它更像一個函數的語法一方面,可以指定的格式轉換,將時間和價值轉換為一個字元串。

對於數據類型的確切值,轉換後的字元串是我們存儲的值。如:

聲明@iintset@i=123456789print'test:'+轉換(varchar(20),@i)

輸出是:test:123456789

對於具有近似值的數據類型,情況就不那麼簡單了。

聲明@ifloatset@i=123456789print'test:'+轉換(varchar(20),@i):test:1.23457e+008

⑤ sql server 貨幣 欄位 類型 一般用什麼類型

貨幣的欄位類型一般有int,float,money/smallmoney,decimal/numberic。

根據存儲數據的精度不同選擇:

int只能存儲整數的錢。

money/smallmoney數據類型精確到它們所代表的貨幣單位的萬分之一 。

decimal/numberic 可以自定義小數位和能存儲的數據精度, 所以一般使用這種類型的人會多一些。

float 對貨幣這種需要精確值的數值不合適。

總結:

在財務方面最好實用money與decimal類型。

如果是簡單的計算可以使用float類型,不過float類型在有些平台上取出數據並不是那麼准確,有可能會丟失精度。所以說如果在性能穩定的平台中,開銷不是很大,建議使用以上兩種類型。

(5)sqlserver數值類型擴展閱讀:

SQL數據類型:

1、bit 整型

bit數據類型是整型,其值只能是0、1或空值。這種數據類型用於存儲只有兩種可能值的數據,如Yes 或No、True 或False 、On 或Off.

注意:很省空間的一種數據類型,如果能夠滿足需求應該盡量多用。

2、tinyint 整型

tinyint 數據類型能存儲從0到255 之間的整數。它在你只打算存儲有限數目的數值時很有用。這種數據類型在資料庫中佔用1 個位元組。

3、smallint 整型

smallint 數據類型可以存儲從- 2的15次冪(-32768)到2的15次冪(32767)之間的整數。這種數據類型對存儲一些常限定在特定范圍內的數值型數據非常有用。這種數據類型在資料庫里佔用2 位元組空間。

4、int 整型

int 數據類型可以存儲從- 2的31次冪(-2147483648)到2的31次冪 (2147483 647)之間的整數。存儲到資料庫的幾乎所有數值型的數據都可以用這種數據類型。這種數據類型在資料庫里佔用4個位元組。

5、decimal 精確數值型

decimal 數據類型能用來存儲從-10的38次冪-1到10的38次冪-1的固定精度和范圍的數值型數據。使用這種數據類型時,必須指定范圍和精度。 范圍是小數點左右所能存儲的數字的總位數。精度是小數點右邊存儲的數字的位數。

6、numeric 精確數值型

numeric數據類型與decimal 相似。

7、smallmoney 貨幣型

smallmoney 數據類型用來表示錢和貨幣值。這種數據類型能存儲從-214748.3648 到214748.3647 之間的數據,精確到貨幣單位的萬分之一。

8、money 貨幣型

money數據類型用來表示錢和貨幣值。這種數據類型能存儲從-9220億到9220 億之間的數據,精確到貨幣單位的萬分之一。

9、float 近似數值型

float 數據類型是一種近似數值類型,供浮點數使用。說浮點數是近似的,是因為在其范圍內不是所有的數都能精確表示。浮點數可以是從-1.79E+308到1.79E+308 之間的任意數。

10、real 近似數值型

real 數據類型像浮點數一樣,是近似數值類型。它可以表示數值在-3.40E+38到3.40E+38之間的浮點數。

⑥ sqlserverfloat用法

在SQL Server中,小數數值實際上只有兩種數據類型:float 和 decimal。double precision 整體是數據類型,等價於 float(53),real等價於float(24),應該避免在程序中直接使用 double precision 和 real,而是用 float 代替。numeric 和 decimal是同義詞。

float是近似數值,存在精度缺失,Decimal是精確數值,不存在精度損失。當數值不允許精度丟失時,使用 decimal數據類型存儲。在計算小數的除法時,SQL Server 內部隱式升級數據類型,根據小數數值的數據類型,就近向float(24) 或float(53)轉換。

一:近似數值,存在精度損失

1,float 表示近似數值

float數據類型的默認類型是float(53),佔用8bytes,實際上,float 只能表示兩種類型float(53) 和 float(24),分別佔用 4Bytes 和 8Bytes。

float [ (n) ]

Where n is the number of bits that are used to store the mantissa of the float number in scientific notation and, therefore, dictates the precision and storage size. If n is specified, it must be a value between 1 and 53. The default value of n is 53.

⑦ sql server 小數欄位設為哪種類型

在SQL Server中,實際上小數數值只有兩種數據類型:float和decimal,分別是近似數值和精確數值。

float 表示近似數值,存在精度損失,數據類型是 float(n),n是可選的,默認類型是float(53),佔用8bytes。雖然n的取值做和范圍是1-53,實際上,float 只能表示兩種類型float(53) 和 float(24),分別佔用 8Bytes 和 4Bytes。

decimal不存在精度損失,數據類型decimal(p,s) 需要分別指定小數的最大位數(p)和小數位的數量(s)。decimal 數據類型的最大精度為 38。即decimal 數據類型最多可以存儲 38位數字,所有這些數字均可位於小數點後面。decimal 數據類型存儲精確的數字表示形式,沒有近似值。

(7)sqlserver數值類型擴展閱讀:

雙精度(double precision)數據類型等價於 float(53),real等價於float(24),numeric是 decimal的同義詞,應該避免在程序中直接使用double precision、real和numeric,而是用 float(24) 、float(53)和decimal 代替。

float是近似數值,存在精度缺失;decimal是精確數值,不存在精度損失。當數值不允許精度丟純彎盯失時,使用 decimal數據類型存儲數據。在計算小數的除法時,SQL Server 內部隱式升級數據類型,根據小數數值的數據類型,就近向float(24) 或float(53)轉換。鬧脊

⑧ sql server怎麼定義數據類型

SQLServer 提供了 25 種數據類型:

Binary [(n)],Varbinary [(n)],Char[(n)],Varchar[(n)],Nchar[(n)],Nvarchar[(n)],Datetime,Smalldatetime

Decimal[(p[,s])],Numeric[(p[,s])],Float[(n)],Real,Int,Smallint,Tinyint,Money,Smallmoney,Bit,Cursor

Sysname,Timestamp,Uniqueidentifier,Text,Image,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 數據類型中存儲的數據是以位字元串存儲的,不是由 SQL Server 解釋的,必須由應用程序來解釋。

例如,應用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把數據存儲在 Image 數據類型中。

(2)字元數據類型

字元數據的類型包括 Char,Varchar 和 Text

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

Varchar 是變長字元數據,其長度不超過 8KB。

Char 是定長字元數據,其長度最多為 8KB。

超過 8KB 的ASCII 數據可以使用Text數據類型存儲。例如,因為 Html 文檔全部都是 ASCII 字元,

並且在一般情況下長度超過 8KB,所以這些文檔可以 Text 數據類型存儲在SQL Server 中。

(3)Unicode 數據類型

Unicode 數據類型包括 Nchar,Nvarchar 和Ntext

在 Microsoft SQL Server 中,傳統的非 Unicode 數據類型允許使用由特定字元集定義的字元。

在 SQL Server安裝過程,允許選擇一種字元集。使用 Unicode 數據類型,列中可以存儲任何由Unicode 標準定義的字元。

在 Unicode 標准中,包括了以各種字元集定義的全部字元。使用Unicode數據類型,

所戰勝的窨是使用非 Unicode 數據類型所佔用的窨大小的兩倍。

在 SQL Server 中,Unicode 數據以 Nchar、Nvarchar 和 Ntext 數據類型存儲。

使用這種字元類型存儲的列可以存儲多個字元集中的字元。當列的長度變化時,應該使用Nvarchar 字元類型,

這時最多可以存儲 4000 個字元。當列的長度固定不變時,應該使用 Nchar 字元類型,同樣,

這時最多可以存儲4000 個字元。當使用 Ntext 數據類型時,該列可以存儲多於 4000 個字元。

(4)日期和時間數據類型

日期和時間數據類型包括 Datetime 和 Smalldatetime兩種類型

日期和時間數據類型由有效的日期和時間組成。

例如,有效的日期和時間數據包括「4/01/98 12:15:00:00:00 PM」和「1:28:29:15:01AM 8/17/98」。

前一個數據類型是日期在前,時間在後一個數據類型是霎時間在前,日期在後。

在 Microsoft SQL Server中,日期和時間數據類型包括Datetime 和 Smalldatetime 兩種類型時,

所存儲的日期范圍是從 1753 年 1 月 1 日開始,到9999 年12 月 31 日結束(每一個值要求 8 個存儲位元組)。

使用 Smalldatetime 數據類型時,

所存儲的日期范圍是 1900年 1 月 1日 開始,到 2079 年 12 月 31 日結束(每一個值要求 4 個存儲位元組)。

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

Set DateFormat {format | @format _var|

其中,format | @format_var 是日期的順序。有效的參數包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默認情況下,日期格式為MDY。

例如,當執行 Set DateFormat YMD 之後,日期的格式為年 月 日 形式;

當執行 Set DateFormat DMY 之後,日期的格式為日 月有年 形式

(5)數字數據類型

數字數據只包含數字。數字數據類型包括正數和負數、小數(浮點數)和整數

整數由正整數和負整數組成,例如 39、25、0-2 和 33967。

在 Micrsoft SQL Server 中,整數存儲的數據類型是Int,Smallint和 Tinyint。

Int 數據類型存儲數據的范圍大於 Smallint 數據類型存儲數據的范圍,

而 Smallint 據類型存儲數據的范圍大於Tinyint 數據類型存儲數據的范圍。

使用 Int 數據存儲數據的范圍是從 -2 147 483 648 到 2 147 483 647(每一個值要求4個位元組存儲空間)。

使用 Smallint 數據類型時,存儲數據的范圍從 -32 768 到 32 767(每一個值要求2個位元組存儲空間)。

使用Tinyint 數據類型時,存儲數據的范圍是從0 到255(每一個值要求1個位元組存儲空間)。

精確小 數數據在 SQL Server 中的數據類型是 Decimal 和 Numeric。這種數據所佔的存儲空間根據該數據的位數後的位數來確定。

在SQL Server 中,近似小數數據的數據類型是 Float 和 Real。例如,三分之一這個分數記作。

3333333,當使用近似數據類型時能准確表示。因此,從系統中檢索到的數據可能與存儲在該列中數據不完全一樣。

=======================================================================================

SQL Server的數據類型介紹(二)

(6)貨幣數據表示正的或者負的貨幣數量 。

在 Microsoft SQL Server 中,貨幣數據的數據類型是Money 和 Smallmoney 。

而Money數據類型要求 8 個存儲位元組,Smallmoney 數據類型要求 4 個存儲位元組。

(7)特殊數據類型

特殊數據類型包括前面沒有提過的數據類型。特殊的數據類型有3種,即Timestamp、Bit 和 Uniqueidentifier。

Timestamp 用於表示SQL Server 活動的先後順序,以二進投影的格式表示。Timestamp 數據與插入數據或者日期和時間沒有關系。

Bit 由 1 或者 0 組成。當表示真或者假、ON 或者 OFF 時,使用 Bit 數據類型。

例如,詢問是否是每一次訪問的客戶機請求可以存儲在這種數據類型的列中。

Uniqueidentifier 由 16 位元組的十六進制數字組成,表示一個全局唯一的。

當表的記錄行要求唯一時,GUID是非常有用。例如,在客戶標識號列使用這種數據類型可以區別不同的客戶。

=======================================================================

用戶定義的數據類型

用戶定義的數據類型基於在 Microsoft SQL Server 中提供的數據類型。當幾個表中必須存儲同一種數據類型時,

並且為保證這些列有相同的數據類型、長度和可空性時,可以使用用戶定義的數據類型。

例如,可定義一種稱為 postal_code 的數據類型,它基於 Char 數據類型。

當創建用戶定義的數據類型時,必須提供三個數:數據類型的名稱、所基於的系統數據類型和數據類型的可空性。

(1)創建用戶定義的數據類型

創建用戶定義的數據類型可以使用 Transact-SQL 語句。系統存儲過程 sp_addtype 可以來創建用戶定義的數據類型。其語法形式如下:

sp_addtype {type},[,system_data_bype][,'null_type']

其中,type 是用戶定義的數據類型的名稱。system_data_type 是系統提供的數據類型,例如 Decimal、Int、Char 等等。

null_type 表示該數據類型是如何處理空值的,必須使用單引號引起來,例如'NULL'、'NOT NULL'或者'NONULL'。

例子:

Use cust

Exec sp_addtype ssn,'Varchar(11)','Not Null'

創建一個用戶定義的數據類型 ssn,其基於的系統數據類型是變長為11 的字元,不允許空。

例子:

Use cust
Exec sp_addtype birthday,datetime,'Null'

創建一個用戶定義的數據類型 birthday,其基於的系統數據類型是 DateTime,允許空。

例子:

Use master
Exec sp_addtype telephone,'varchar(24),'Not Null'
Eexc sp_addtype fax,'varchar(24)','Null'

創建兩個數據類型,即 telephone 和 fax

(2)刪除用戶定義的數據類型

當用戶定義的數據類型不需要時,可刪除。刪除用戶定義的數據類型的命令是 sp_droptype {'type'}。

例子:

Use master
Exec sp_droptype 'ssn'

注意:當表中的列還正在使用用戶定義的數據類型時,或者在其上面還綁定有默認或者規則時,這種用戶定義的數據類型不能刪除。

⑨ sqlserver中如何把字元串轉換成數字

SQL Server中的數值類型分為兩種,一種是精確的數值類型,具體的數據類型有:bit、tinyint、smallint、int、bigint、smallmoney、money和decimal,這些數據類型能夠精確的表明某以數值;另一種是近似的數值類型,具體就是float和real。浮點數據為近似值,因此,並非數據類型範圍內的所有值都能精確地表示。x0dx0a有些時候我們需要將這些數值類型轉換為字元串類型,用到的轉換函數就是cast和convert,這兩個函數的作用都是進行類型轉換,只不過語法格式不同。據說在轉換時還是有一定的區別的,不過我個人更習慣於使用convert函數,應該這個函數一方面更像是個函數的語法,另一方面在做時間和數值轉換成字元串時還可以指定轉換的格式。x0dx0a對於精確數值的數據類型,轉換出來的字元串就是我們存儲的數值。比如:x0dx0adeclare @i intset @i=123456789x0dx0aprint 'test:'+convert(varchar(20),@i)x0dx0a輸出就是:test:123456789x0dx0a而如果對於近似數值的數據類型,那麼可就沒有那麼簡單了。x0dx0adeclare @i floatset @i=123456789x0dx0aprint 'test:'+convert(varchar(20),@i)x0dx0a輸出結果:test:1.23457e+008x0dx0a輸出的結果是使用科學計數法來表示的,再看看可否通過指定轉換樣式來指定不使用科學計數法呢?幫助文檔中說到float 或 real 轉換為字元數據時的 style 值:x0dx0a0(默認值)最大為 6 位數。根據需要使用科學記數法。x0dx0a1 始終為 8 位值。始終使用科學記數法。x0dx0a2 始終為 16 位值。始終使用科學記數法。x0dx0a我們的值是123456789,超過了6位數.所以不管是0還是1,2結果都會使用科學計數法來表示。那麼要怎麼樣才能將我們的數據不轉換成科學計數法而輸出呢?比較簡單的辦法就是將近似數據轉換為精確數據,然後再將精確數據轉換成字元串。x0dx0a同樣以上面的例子為例, 進行兩次數據類型的轉換如下:x0dx0adeclare @i floatset @i=123456789x0dx0aprint 'test:'+convert(varchar(20),convert(int,@i))x0dx0a輸出:test:123456789如果是有小數,那麼我們要轉換出小數位的話,可以轉換成decimal,轉換出的小數位數在定義decimal時指定。比如要輸出4位小數,那麼轉換代碼是:x0dx0adeclare @i floatset @i=123456789.12x0dx0aprint 'test:'+convert(varchar(20),convert(decimal(18,4),@i))x0dx0a輸出:test:123456789.1200

⑩ SQL Server常用數據類型

SQL Server常用數據類型

數據類型是數據的一種屬性,是數據所表示信息的類型。下面是我為大家搜索整理了關於SQLServer常用數據類型,歡迎參考閱讀,希望對大家有所幫助。

SQLServer2000提供了比較多的數據類型供用戶使用,包括字元型數據類型、數值型數據類型、貨幣型數據類型、日期/時間型數據類型等。

一、字元型數據類型

字元型數據類型是使用最多的數據類型。它可以用來存儲各種字母、數字元號、特殊符號。在使用字元類型數據時,必須為其加上單引號。若將數值數據包括在單引號中,將被視為字元類型數據。一般來說,字元型數據類型有兩種基本形式:

(一)CHAR定長字元型數據類型

CHAR數據類型的定義形式為CHAR(n),n為長度,n的取值范圍為1-8000,共佔n個位元組。若存儲的字元串長度小於n,則系統自動使用空格填補剩餘的位置。若存儲的字元串長度大於n,那麼在執行插入記錄語句時將導致執行錯誤。

(二)VARCHAR變長字元型數據類型

VARCHAR數據類型的定義形式為VARCHAR(n),最大長度為n,n的取值范圍為1-8000。VARCHAR數據類型的存儲長度為實際字元串的長度,若存儲的字元串長度小於n,系統不會使用空格填補剩餘的位置。VARCHAR數據類型通常用於存放長度變化較大的字元串,這樣可以節約大量的存儲空間。但是使用varn)數據類型的缺點是,這種變長的存儲方法使得用戶無法確切地估計存儲數據所使用的空間大小。

二、數值型數據類型

數值型數據類型包括整型數據類型、數字數據類型和浮點數據類型三種。

(一)整型數據類型

整型數據類型只存儲整數。整型數據類型包括以下四種:

bigint數據類型

bigint數據類型佔8個位元組,共64位,能夠存儲-263~263-1之間的所有正負整數。在64位中,63位用來存儲數值,1位用來存儲數值的正負。

int數據類型

int數據類型佔4個位元組,共32位,能夠存儲-231~231-1之間的所有正負整數。在32位中,31位用來存儲數值,1位用來存儲數值的正負。

smallint數據類型

smallint數據類型佔2個位元組,共16位,能夠存儲-215~215-1之間的所有正負整數。在16位中,15位用來存儲數值,1位用來存儲數值的正負。

(二)數字數據類型

數字數據類型包括decimal數據類型和numeric數據類型兩種,numeric數據類型與decimal數據類型完全相同。decimal數據類型可以提供小數所需要的實際存儲空間,decimal數據類型最多可存儲38位數字。

decimal數據類型的定義形式為decimal(p,s)。

其中:

p:為指定精度或對象能夠控制的數字個數。

s:為指定可放到小數點右邊的小數位數或數字個數。

p和s必須遵守以下規則:0<=s<=p<=38。

(三)浮點數據類型

浮點數據類型包括float數據類型和real數據類型,這兩種數據類型被稱為近似數據類型。

real數據類型

real數據類型佔4個位元組,共32位,能夠存儲-3.40E+38~3.40E+38之間所有的浮點數。

float數據類型

float數據類型佔8個位元組,共64位,能夠存儲-1.79E+308~1.79E+308之間所有的浮點數。float數據類型可精確到第15位小數。float數據類型可以定義為float(n),n為數據的精度。若n取1到7時,實際上是定義了一個real類型的數據,系統將分配4個位元組的.空間存儲數據;若n取8到15時,系統認為其是float類型,將分配8個位元組的空間存儲數據。

三、貨幣型數據類型

貨幣型數據類型用於存儲貨幣值。在SQLServer2000中提供兩種貨幣型數據類型:money數據類型和smallmoney數據類型。

(一)money數據類型

money數據類型使用8個位元組存儲數據,由兩部分組成,前面4個位元組表示貨幣值的整數部分,後面4個位元組表示貨幣值的小數部分。

(二)smallmoney數據類型

smallmoney數據類型類似於money類型,使用4個位元組存儲數據,前面2個位元組表示貨幣值的整數部分,後面2個位元組表示貨幣值的小數部分。

四、日期/時間型數據類型

日期/時間型數據類型用於存儲日期和時間的結合體。

(一)datetime數據類型

datetime數據類型可以存儲從公元1753年1月1日零時起到公元9999年12月31日23時59分59秒之間的所有日期和時間,其精確度可達三百分之一秒。datetime數據類型佔用8個位元組的存儲空間。

(二)smalldatetime數據類型

smalldatetime數據類型與datetime數據類型相似,但其日期時間范圍較小,可以存儲從1900年1月1日到2079年6月6日,精度可以達到分鍾。smalldatetime數據類型佔用4個位元組的存儲空間。

SQL Server vNext on Linux安裝

今天微軟正式發布上SQL Server 2016 SP1,根據以往的SP1定律,可以在生產環境上使用了。打了SP1的標准版將具有企業版幾乎所有的的功能。只有RAM 超過128GB或者超過24核心或者超過4路的環境才必須要安裝企業版。

還有一個重要的發布:SQL Server vNext on Linux。也是本文介紹安裝的版本。長話短說,開始安裝。

這個版本的SQL Server,官方支持的平台是Red Hat Enterpise 7.2 或者Ubuntu 16.04。但是我手上暫時沒有Red Hat,就用CentOS 7.2試試。我是以root身份安裝的。

1. 安裝

#下載庫配置文件curl https://packages.microsoft.com/config/rhel/7/mssql-server.repo > /etc/yum.repos.d/mssql-server.repo#安裝sudo yum install -y mssql-server

2. 運行配置文件

#運行SQL Server的配置文件進行配置。#這個過程會要你同意License條款,設置SA密碼,設置SQL Server服務開機啟動/opt/mssql/bin/sqlservr-setup

3. 檢查服務狀態

#檢查SQL Server的服務狀態systemctl status mssql-server

4. 修改防火牆

#修改防火牆,允許1433埠systemctl start firewalldfirewall-cmd --zone=public --add-port=1433/tcp --permanentfirewall-cmd --reload

5. 安裝SQL工具,包括sqlcmd和bcp

#下載源的庫配置文件curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo#安裝toolsyum install mssql-tools

6. 連接測試

# 使用sqlcmd的本地連接。直接在-P參數後填密碼或者回車後輸入密碼。sqlcmd -S . -U SA -p

發現sqlcmd的使用方式和windows下是一樣的。返回內容最後有一個根據當前查詢的耗時預估的每秒事務處量。

然後建個庫,建個表試試。

遠程連接。從windows使用sqlcmd,用外網IP連接

使用SSMS連接,我使用是SQL 2014安裝時自帶SSMS,可能會有一些不支持問題。可以看到Agent沒啟動的,實際上是這個版本沒有Agent。

有意思的是,使用SSMS可以創建庫,卻不能創建表。從錯誤信息來看,似乎是不支持圖形界面創建表。

總結:

嘗鮮性地測試一下,有機會還會測試更多功能。目前不支持Agent,復制和大部分BI功能組件。

很多人對SQL Server On Linux是有所期待。如果它在Linux上的表現與之在以往Windows上的表現一樣優秀的話,我相信會有更多人會使用它的。

SQL Server On Linux的更多文檔內容:SQL Server on Linux Documentation

;