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

sqlserver2012數據類型

發布時間: 2022-06-04 08:22:54

sql資料庫的數據類型有哪些,請詳細解釋一下

》SQL Server 中的數據類型歸納為下列類別:

精確數字
Unicode 字元串

近似數字

二進制字元串

日期和時間

其他數據類型

字元串

》在 SQL Server 中,根據其存儲特徵,某些數據類型被指定為屬於下列各組:

大值數據類型:varchar(max)、nvarchar(max) 和
varbinary(max)
大型對象數據類型:text、ntext、image、varchar(max)、nvarchar(max)、varbinary(max)
和 xml

》精確數字

bit(位)

tinyint(1個位元組)

smallint(2個位元組,-32767~32767)

int(4個位元組,-20億~20億)

bigint(8個位元組)

numeric

decimal

smallmoney

money

》近似數字

float
real

》日期和時間

date
smalldatetime(精確到分鍾)

datetime

datetime2

time

datetimeoffset(時間差)

》字元串

char
varchar

text

》Unicode 字元串

nchar
nvarchar

ntext

》二進制字元串

binary
varbinary

image

② sql server中的整型數據類型有哪些

一、 整數數據類型

整數數據類型是最常用的數據類型之一。

1、INT (INTEGER)

INT (或INTEGER)數據類型存儲從-2的31次方 (-2 ,147 ,483 ,648) 到2的31次方-1 (2 ,147 ,483,647) 之間的所有正負整數。每個INT 類型的數據按4 個位元組存儲,其中1 位表示整數值的正負號,其它31 位表示整數值的長度和大小。

2、SMALLINT

SMALLINT 數據類型存儲從-2的15次方( -32, 768) 到2的15次方-1( 32 ,767 )之間的所有正負整數。每個SMALLINT 類型的數據佔用2 個位元組的存儲空間,其中1 位表示整數值的正負號,其它15 位表示整數值的長度和大小。

3、TINYINT

TINYINT數據類型存儲從0 到255 之間的所有正整數。每個TINYINT類型的數據佔用1 個位元組的存儲空間。

4、BIGINT

BIGINT 數據類型存儲從-2^63 (-9 ,223, 372, 036, 854, 775, 807) 到2^63-1( 9, 223, 372, 036 ,854 ,775, 807) 之間的所有正負整數。每個BIGINT 類型的數據佔用8個位元組的存儲空間。

二、 浮點數據類型

浮點數據類型用於存儲十進制小數。浮點數值的數據在SQL Server 中採用上舍入(Round up 或稱為只入不舍)方式進行存儲。所謂上舍入是指,當(且僅當)要舍入的數是一個非零數時,對其保留數字部分的最低有效位上的數值加1 ,並進行必要的進位。若一個數是上舍入數,其絕對值不會減少。如:對3.14159265358979 分別進行2 位和12位舍入,結果為3.15 和3.141592653590。

1、REAL 數據類型

REAL數據類型可精確到第7 位小數,其范圍為從-3.40E -38 到3.40E +38。 每個REAL類型的數據佔用4 個位元組的存儲空間。

2、FLOAT

FLOAT數據類型可精確到第15 位小數,其范圍為從-1.79E -308 到1.79E +308。 每個FLOAT 類型的數據佔用8 個位元組的存儲空間。 FLOAT數據類型可寫為FLOAT[ n ]的形式。n 指定FLOAT 數據的精度。n 為1到15 之間的整數值。當n 取1 到7 時,實際上是定義了一個REAL 類型的數據,系統用4 個位元組存儲它;當n 取8 到15 時,系統認為其是FLOAT 類型,用8 個位元組存儲它。

3、DECIMAL

DECIMAL數據類型可以提供小數所需要的實際存儲空間,但也有一定的限制,您可以用2 到17 個位元組來存儲從-10的38次方-1 到10的38次方-1 之間的數值。可將其寫為DECIMAL[ p [s] ]的形式,p 和s 確定了精確的比例和數位。其中p 表示可供存儲的值的總位數(不包括小數點),預設值為18; s 表示小數點後的位數,預設值為0。 例如:decimal (15 5),表示共有15 位數,其中整數10 位,小數5。 位表4-3 列出了各精確度所需的位元組數之間的關系。

4、NUMERIC

NUMERIC數據類型與DECIMAL數據類型完全相同。
注意:SQL Server 為了和前端的開發工具配合,其所支持的數據精度默認最大為28位。

③ 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'

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

④ SQL Server中姓名,學號,性別,院系都用什麼數據類型

姓名:一般都用varchar

學號:可以是int或varchar

性別:一般都用char(2)或bit

院系:一般都用varchar

直接使用字元 」N「,」M「 ,」F「 來存儲,方案的選擇主要依照個人習慣,和手機應用的需要。因為實際應用中,無論選擇哪種方案,對資料庫性能、即操作復雜度都影響可以忽略。

(4)sqlserver2012數據類型擴展閱讀:

SQL Server是一個可擴展的、高性能的、為分布式客戶機/伺服器計算所設計的資料庫管理系統,實現了與WindowsNT的有機結合,提供了基於事務的企業級信息管理系統方案。

在Windows NT 推出後,Microsoft與Sybase 在SQL Server 的開發上就分道揚鑣了,Microsoft 將SQL Server 移植到Windows NT系統上,專注於開發推廣SQL Server 的Windows NT 版本。Sybase 則較專注於SQL Server在UNIX 操作系統上的應用。

⑤ sql資料庫中常用的數據類型有什麼

一、整數數據類型:整數數據類型是最常用的數據類型之一。

1、INT(INTEGER)

INT (或INTEGER)數據類型存儲從-2的31次方 (-2 ,147 ,483 ,648) 到2的31次方-1 (2 ,147 ,483,647) 之間的所有正負整數。每個INT 類型的數據按4 個位元組存儲,其中1 位表示整數值的正負號,其它31 位表示整數值的長度和大小。

2、SMALLINT

SMALLINT 數據類型存儲從-2的15次方( -32, 768) 到2的15次方-1( 32 ,767 )之間的所有正負整數。每個SMALLINT 類型的數據佔用2 個位元組的存儲空間,其中1 位表示整數值的正負號,其它15 位表示整數值的長度和大小。

二、浮點數據類型:浮點數據類型用於存儲十進制小數。浮點數值的數據在SQL Server 中採用上舍入(Round up 或稱為只入不舍)方式進行存儲。

1、REAL數據類型

REAL數據類型可精確到第7 位小數,其范圍為從-3.40E -38 到3.40E +38。 每個REAL類型的數據佔用4 個位元組的存儲空間。

2、FLOAT

FLOAT數據類型可精確到第15 位小數,其范圍為從-1.79E -308 到1.79E +308。 每個FLOAT 類型的數據佔用8 個位元組的存儲空間。 FLOAT數據類型可寫為FLOAT[ n ]的形式。n 指定FLOAT 數據的精度。n 為1到15 之間的整數值。

當n 取1 到7 時,實際上是定義了一個REAL 類型的數據,系統用4 個位元組存儲它;當n 取8 到15 時,系統認為其是FLOAT 類型,用8 個位元組存儲它。

三、二進制數據類型

1、BINARY

BINARY 數據類型用於存儲二進制數據。其定義形式為BINARY( n), n 表示數據的長度,取值為1 到8000 。在使用時必須指定BINARY 類型數據的大小,至少應為1 個位元組。BINARY 類型數據佔用n+4 個位元組的存儲空間。

在輸入數據時必須在數據前加上字元「0X」 作為二進制標識,如:要輸入「abc 」則應輸入「0xabc 」。若輸入的數據過長將會截掉其超出部分。若輸入的數據位數為奇數,則會在起始符號「0X 」後添加一個0,如上述的「0xabc 」會被系統自動變為「0x0abc」。

2、VARBINARY

VARBINARY數據類型的定義形式為VARBINARY(n)。 它與BINARY 類型相似,n 的取值也為1 到8000, 若輸入的數據過長,將會截掉其超出部分。

不同的是VARBINARY數據類型具有變動長度的特性,因為VARBINARY數據類型的存儲長度為實際數值長度+4個位元組。當BINARY數據類型允許NULL 值時,將被視為VARBINARY數據類型。

四、邏輯數據類型

1、BIT:BIT數據類型佔用1 個位元組的存儲空間,其值為0 或1 。如果輸入0 或1 以外的值,將被視為1。 BIT 類型不能定義為NULL 值(所謂NULL 值是指空值或無意義的值)。

五、字元數據類型:字元數據類型是使用最多的數據類型。它可以用來存儲各種字母、數字元號、特殊符號。一般情況下,使用字元類型數據時須在其前後加上單引號』或雙引號」 。

1、CHAR

CHAR 數據類型的定義形式為CHAR[ (n) ]。 以CHAR 類型存儲的每個字元和符號佔一個位元組的存儲空間。n 表示所有字元所佔的存儲空間,n 的取值為1 到8000, 即可容納8000 個ANSI 字元。

若不指定n 值,則系統默認值為1。 若輸入數據的字元數小於n,則系統自動在其後添加空格來填滿設定好的空間。若輸入的數據過長,將會截掉其超出部分。

(5)sqlserver2012數據類型擴展閱讀:

SQL包括了所有對資料庫的操作,主要是由4個部分組成:

1、數據定義:這一部分又稱為「SQL DDL」,定義資料庫的邏輯結構,包括定義資料庫、基本表、視圖和索引4部分。

2、數據操縱:這一部分又稱為「SQL DML」,其中包括數據查詢和數據更新兩大類操作,其中數據更新又包括插入、刪除和更新三種操作。

3、數據控制:對用戶訪問數據的控制有基本表和視圖的授權、完整性規則的描述,事務控制語句等。

4、嵌入式SQL語言的使用規定:規定SQL語句在宿主語言的程序中使用的規則。

⑥ sql server 常用的幾個數據類型

Sql
server中常用的幾個數據類型:
binary
固定長度的二進制數據,其最大長度為
8,000
個位元組。
varbinary
可變長度的二進制數據,其最大長度為
8,000
個位元組。
image
可變長度的二進制數據,其最大長度為
2G+
-
1
(2,147,483,647)
個位元組
text
伺服器代碼頁中的可變長度非
Unicode
數據的最大長度為
2G+
(2,147,483,647)
個字元。當伺服器代碼頁使用雙位元組字元時,存儲量仍是
2,147,483,647
位元組。存儲大小可能小於
2,147,483,647
位元組(取決於字元串)。
image
可變長度二進制數據介於
0

2G+
(2,147,483,647)
位元組之間
--binary

varbinary
固定長度
(binary)
的或可變長度
(varbinary)

binary
數據類型。
binary
[
(
n
)
]
固定長度的
n
個位元組二進制數據。N
必須從
1

8,000。存儲空間大小為
n+4
位元組。
varbinary
[
(
n
)
]
n
個位元組變長二進制數據。n
必須從
1

8,000。存儲空間大小為實際輸入數據長度
+4
個位元組,而不是
n
個位元組。輸入的數據長度可能為
0
位元組。在
SQL-92

varbinary
的同義詞為
binary
varying。
注釋
1.
如果在數據定義或變數聲明語句中沒有指定
n,默認長度為
1。如果沒有用
CAST
函數指定
n,默認長度為
30。
2.
當列數據項大小一致時應使用
binary。
3.
當列數據項大小不一致時應使用
varbinary

⑦ SQL Server的常用數據類型(字元型)有哪些

對於程序中的string型欄位,SQLServer中有char、varchar、nchar、nvarchar四種類型來對應(暫時不考慮text和ntext),開建立資料庫中,對這四種類型往往比較模糊,這里做一下對比。

定長或變長
所謂定長就是長度固定的,當輸入的數據長度沒有達到指定的長度時將自動以英文空格在其後面填充,使長度達到相應的長度;有var前綴的,表示是實際存儲空間是變長的,比如varchar,nvarchar變長字元數據則不會以空格填充,比較例外的是,text存儲的也是可變長。
Unicode或非Unicode
資料庫中,英文字元只需要一個位元組存儲就足夠了,但漢字和其他眾多非英文字元,則需要兩個位元組存儲。如果英文與漢字同時存在,由於佔用空間數不同,容易造成混亂,導致讀取出來的字元串是亂碼。Unicode字元集就是為了解決字元集這種不兼容的問題而產生的,它所有的字元都用兩個位元組表示,即英文字元也是用兩個位元組表示。而前綴n就表示Unicode字元,比如nchar,nvarchar,這兩種類型使用了Unicode字元集。
基於以上兩點來看看欄位容量
char,varchar 最多8000個英文,4000個漢字
nchar,nvarchar 可存儲4000個字元,無論英文還是漢字

使用(個人偏好)
如果數據量非常大,又能100%確定長度且保存只是ansi字元,那麼char
能確定長度又不一定是ansi字元或者,那麼用nchar;
對於超大數據,如文章內容,使用nText
其他的通用nvarchar
char、varchar、nchar、nvarchar特點比較
CHAR
CHAR存儲定長數據很方便,CHAR欄位上的索引效率級高,比如定義char(10),那麼不論你存儲的數據是否達到了10個位元組,都要佔去10個位元組的空間。
VARCHAR
存儲變長數據,但存儲效率沒有CHAR高,如果一個欄位可能的值是不固定長度的,我們只知道它不可能超過10個字元,把它定義為 VARCHAR(10)是最合算的。VARCHAR類型的實際長度是它的值的實際長度+1。為什麼"+1"呢?這一個位元組用於保存實際使用了多大的長度。
從空間上考慮,用varchar合適;從效率上考慮,用char合適,關鍵是根據實際情況找到權衡點。
TEXT
text存儲可變長度的非Unicode數據,最大長度為2^31-1(2,147,483,647)個字元。
NCHAR、NVARCHAR、NTEXT
這三種從名字上看比前面三種多了個"N"。和char、varchar比較起來,nchar、nvarchar最多存儲4000個字元,不論是英文還是漢字;而char、varchar最多能存儲8000個英文,4000個漢字。可以看出使用nchar、nvarchar數據類型時不用擔心輸入的字元是英文還是漢字,較為方便,但在存儲英文時數量上有些損失。
所以一般來說,如果含有中文字元,用nchar/nvarchar,如果純英文和數字,用char/varchar