sql資料型別有哪些

2021-03-11 22:13:43 字數 6895 閱讀 4674

1樓:匿名使用者

一、 整數資料型別

整數資料型別是最常用的資料型別之一。

1、int (integer)62616964757a686964616fe58685e5aeb931333335313233

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

2、**allint

**allint 資料型別儲存從-2的15次方( -32, 768) 到2的15次方-1( 32 ,767 )之間的所有正負整數。每個**allint 型別的資料佔用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位。

三、 二進位制資料型別

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資料型別。

一般情況下,由於binary 資料型別長度固定,因此它比varbinary 型別的處理速度快。

四、 邏輯資料型別

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,則系統自動在其後新增空格來填滿設定好的空間。若輸入的資料過長,將會截掉其超出部分。

2、nchar

nchar資料型別的定義形式為nchar[ (n) ]。 它與char 型別相似。不同的是nchar資料型別n 的取值為1 到4000。

因為nchar 型別採用unicode 標準字符集(characterset)。 unicode 標準規定每個字元佔用兩個位元組的儲存空間,所以它比非unicode 標準的資料型別多佔用一倍的儲存空間。使用unicode 標準的好處是因其使用兩個位元組做儲存單位,其乙個儲存單位的容納量就大大增加了,可以將全世界的語言文字都囊括在內,在乙個資料列中就可以同時出現中文、英文、法文、德文等,而不會出現編碼衝突。

3、varchar

varchar資料型別的定義形式為varchar [ (n) ]。 它與char 型別相似,n 的取值也為1 到8000, 若輸入的資料過長,將會截掉其超出部分。不同的是,varchar資料型別具有變動長度的特性,因為varchar資料型別的儲存長度為實際數值長度,若輸入資料的字元數小於n ,則系統不會在其後新增空格來填滿設定好的空間。

一般情況下,由於char 資料型別長度固定,因此它比varchar 型別的處理速度快。

4、nvarchar

nvarchar資料型別的定義形式為nvarchar[ (n) ]。 它與varchar 型別相似。不同的是,nvarchar資料型別採用unicode 標準字符集(character set), n 的取值為1 到4000。

六、文字和圖形資料型別

這類資料型別用於儲存大量的字元或二進位制資料。

1、text

text資料型別用於儲存大量文字資料,其容量理論上為1 到2的31次方-1 (2, 147, 483, 647)個位元組,在實際應用時需要視硬碟的儲存空間而定。

sql server 2000 以前的版本中,資料庫中乙個text 物件儲存的實際上是乙個指標,它指向乙個個以8kb (8192 個位元組)為單位的資料頁(data page)。 這些資料頁是動態增加並被邏輯鏈結起來的。在sql server 2000 中,則將text 和image 型別的資料直接存放到表的資料行中,而不是存放到不同的資料頁中。

這就減少了用於儲存text 和ima- ge 型別的空間,並相應減少了磁碟處理這類資料的i/o 數量。

2 ntext

ntext資料型別與text.型別相似不同的,是ntext 型別採用unicode 標準字符集(character set), 因此其理論容量為230-1(1, 073, 741, 823)個位元組。

3 image

image資料型別用於儲存大量的二進位制資料binary data。 其理論容量為2的31次方-1(2,147,483,647)個位元組。其儲存資料的模式與text 資料型別相同。

通常用來儲存圖形等ole object linking and embedding,物件連線和嵌入)物件。在輸入資料時同binary資料型別一樣,必須在資料前加上字元「0x」作為二進位制標識

七、日期和時間資料型別

1 datetime

datetime 資料型別用於儲存日期和時間的結合體。它可以儲存從公元1753 年1 月1 日零時起到公元9999 年12 月31 日23 時59 分59 秒之間的所有日期和時間,其精確度可達三百分之一秒,即3.33 毫秒。

datetime 資料型別所佔用的儲存空間為8 個位元組。其中前4 個位元組用於儲存1900 年1 月1 日以前或以後的天數,數值分正負,正數表示在此日期之後的日期,負數表示在此日期之前的日期。後4 個位元組用於儲存從此日零時起所指定的時間經過的毫秒數。

如果在輸入資料時省略了時間部分,則系統將12:00:00:

000am作為時間預設值:如果省略了日期部分,則系統將1900 年1 月1 日作為日期預設值。

2 **alldatetime

**alldatetime 資料型別與datetime 資料型別相似,但其日期時間範圍較小,為從1900 年1 月1 日到2079 年6 月6:日精度較低,只能精確到分鐘,其分鐘個位上為根據秒數四捨五入的值,即以30 秒為界四捨五入。如:

datetime 時間為14:38:30.

283時**alldatetime 認為是14:39:00 **alldatetime 資料型別使用4 個位元組儲存資料。

其中前2 個位元組儲存從基礎日期1900 年1 月1 日以來的天數,後兩個位元組儲存此日零時起所指定的時間經過的分鐘數。

八、 貨幣資料型別

貨幣資料型別用於儲存貨幣值。在使用貨幣資料型別時,應在資料前加上貨幣符號,系統才能辨識其為哪國的貨幣,如果不加貨幣符號,則預設為「¥」。各貨幣符號如圖4-2所示。

1 money

money 資料型別的資料是乙個有4 位小數的decimal 值,其取值從-2的63次方(-922,337,203,685,477.5808到2的63次方-1(+922,337,203,685,477.5807),資料精度為萬分之一貨幣單位。

money 資料型別使用8個位元組儲存。

2 **allmoney

**allmoney資料型別類似於money 型別,但其儲存的貨幣值範圍比money資料型別小,其取值從-214,748.3648到+214,748.3647,儲存空間為4 個位元組。

九、 特定資料型別

sql server 中包含了一些用於資料儲存的特殊資料型別。

1 timestamp

timestamp資料型別提供資料庫範圍內的惟一值此型別相當於binary8或varbinary(8),但當它所定義的列在更新或插入資料行時,此列的值會被自動更新,乙個計數值將自動地新增到此timestamp資料列中。每個資料庫表中只能有乙個timestamp資料列。如果建立乙個名為「timestamp」的列,則該列的型別將被自動設為timestamp資料型別。

2 uniqueidentifier

uniqueidentifier 資料型別儲存乙個16 位的二進位制數字。此數字稱為(guidglobally unique identifier ,即全球惟一鑑別號)。此數字由sqlserver 的newid函式產生的全球惟一的編碼,在全球各地的計算機經由此函式產生的數字不會相同。

十、 使用者自定義資料型別

sysname sysname 資料型別是系統提供給使用者的,便於使用者自定義資料型別。它被定義為nvarchar(128),即它可儲存128個unicode字元或256個一般字元。

以**形式說明:

字段型別 描述

bit 0或1的整型數字

int 從-2^31(-2,147,483,648)到2^31(2,147,483,647)的整型數字

**allint 從-2^15(-32,768)到2^15(32,767)的整型數字

tinyint 從0到255的整型數字

decimal 從-10^38到10^38-1的定精度與有效位數的數字

numeric decimal的同義詞

money 從-2^63(-922,337,203,685,477.5808)到2^63-1(922,337,203,685,477.5807)的貨幣資料,最小貨幣單位千分之十

**allmoney 從-214,748.3648到214,748.3647的貨幣資料,最小貨幣單位千分之十

float 從-1.79e+308到1.79e+308可變精度的數字

real 從-3.04e+38到3.04e+38可變精度的數字

datetime 從2023年1月1日到2023年12日31的日期和時間資料,最小時間單位為百分之三秒或3.33毫秒

**alldatetime 從2023年1月1日到2023年6月6日的日期和時間資料,最小時間單位為分鐘

timestamp 時間戳,乙個資料庫寬度的唯一數字

uniqueidentifier 全球唯一識別符號guid

char 定長非unicode的字元型資料,最大長度為8000

varchar 變長非unicode的字元型資料,最大長度為8000

text 變長非unicode的字元型資料,最大長度為2^31-1(2g)

nchar 定長unicode的字元型資料,最大長度為8000

nvarchar 變長unicode的字元型資料,最大長度為8000

ntext 變長unicode的字元型資料,最大長度為2^31-1(2g)

binary 定長二進位制資料,最大長度為8000

varbinary 變長二進位制資料,最大長度為8000

image 變長二進位制資料,最大長度為2^31-1(2g)

SQL資料型別使用,sql資料型別有哪些?

各種資料型別並不是死的,很多東西需要看你使用時的習慣和一致性需要學號字段設定時基本上是通長度,這時候用char正好契合,如果你非要用int,float或者varchar等也是可以的,但是在使用以及給使用者看的時候有很多需要轉換,比較麻煩 bit只用2個值用來定義是 否,男 女,有效 無效,等標記性質...

mysql有哪些資料型別

在 mysql 中,有三種主要的型別 text 文字 number 數字 和 date time 日期 時間 型別。text 型別 number 型別 from 樹懶學堂 注意 以上的 size 代表的並不是儲存在資料庫中的具體的長度,如 int 4 並不是只能儲存4個長度的數字。實際上int si...

oracle支援的資料型別有哪些

oracle資料庫的核心是表,表中的列使用到的常見資料型別如下 對應number型別的示例 對於日期型別,可以使用sysdate內建函式可以獲取當前的系統日期和時間,返回date型別,用systimestamp函式可以返回當前日期 時間和時區。oracle 所有的資料型別有哪些?oracle資料庫的...