數據庫中的數據類型詳解

Numeric(10,2) 指字段是數字型,長度爲10 小數爲兩位的 

簡要描述一下SQL中的五種數據類型:字符型,文本型,數值型,邏輯型和日期型
字符型

VARCHAR VS CHAR

VARCHAR型和CHAR型數據的這個差別是細微的,但是非常重要。他們都是用來儲存字符串長度小於255的字符。

假如你向一個長度爲四十個字符的VARCHAR型字段中輸入數據Bill Gates。當你以後從這個字段中取出此數據時,你取出的數據其長度爲十個字符——字符串Bill Gates的長度。 現在假如你把字符串輸入一個長度爲四十個字符的CHAR型字段中,那麼當你取出數據時,所取出的數據長度將是四十個字符。字符串的後面會被附加多餘的空格。

當你建立自己的站點時,你會發現使用VARCHAR型字段要比CHAR型字段方便的多。使用VARCHAR型字段時,你不需要爲剪掉你數據中多餘的空格而操心。

VARCHAR型字段的另一個突出的好處是它可以比CHAR型字段佔用更少的內存和硬盤空間。當你的數據庫很大時,這種內存和磁盤空間的節省會變得非常重要

文本型

TEXT

使用文本型數據,你可以存放超過二十億個字符的字符串。當你需要存儲大串的字符時,應該使用文本型數據。

注意文本型數據沒有長度,而上一節中所講的字符型數據是有長度的。一個文本型字段中的數據通常要麼爲空,要麼很大。 

當你從HTML form的多行文本編輯框(TEXTAREA)中收集數據時,你應該把收集的信息存儲於文本型字段中。但是,無論何時,只要你能避免使用文本型字段,你就應該不適用它。文本型字段既大且慢,濫用文本型字段會使服務器速度變慢。文本型字段還會喫掉大量的磁盤空間。

一旦你向文本型字段中輸入了任何數據(甚至是空值),就會有2K的空間被自動分配給該數據。除非刪除該記錄,否則你無法收回這部分存儲空間。 



數值型

SQL支持許多種不同的數值型數據。你可以存儲整數 INT 、小數 NUMERIC、和錢數 MONEY。

INT VS SMALLINT VS TINYINT
他們的區別只是字符長度: INT型數據的表數範圍是從-2,147,483,647到2,147,483,647的整數SMALLINT 型數據可以存儲從-32768到32768的整數TINYINT 型的字段只能存儲從0到255的整數,不能用來儲存負數
通常,爲了節省空間,應該儘可能的使用最小的整型數據。一個TINYINT型數據只佔用一個字節;一個INT型數據佔用四個字節。這看起來似乎差別不大,但是在比較大的表中,字節數的增長是很快的。另一方面,一旦你已經創建了一個字段,要修改它是很困難的。因此,爲安全起見,你應該預測以下,一個字段所需要存儲的數值最大有可能是多大,然後選擇適當的數據類型。 



MUNERIC

爲了能對字段所存放的數據有更多的控制,你可以使用NUMERIC型數據來同時表示一個數的整數部分和小數部分。NUMERIC型數據使你能表示非常大的數——比INT型數據要大得多。一個NUMERIC型字段可以存儲從-1038到1038範圍內的數。NUMERIC型數據還使你能表示有小數部分的數。例如,你可以在NUMERIC型字段中存儲小數3.14。 

當定義一個NUMERIC型字段時,你需要同時指定整數部分的大小和小數部分的大小。如:MUNERIC(23,0)

一個 NUMERIC型數據的整數部分最大隻能有28位,小數部分的位數必須小於或等於整數部分的位數,小數部分可以是零。 

MONEY VS SMALLMONEY 

你可以使用 INT型或NUMERIC型數據來存儲錢數。但是,專門有另外兩種數據類型用於此目的。如果你希望你的網點能掙很多錢,你可以使用MONEY型數據。如果你的野心不大,你可以使用SMALLMONEY型數據。MONEY型數據可以存儲從-922,337,203,685,477.5808到922,337,203,685,477.5807的錢數。如果你需要存儲比這還大的金額,你可以使用NUMERIC型數據。 

SMALLMONEY型數據只能存儲從-214,748.3648到214,748.3647 的錢數。同樣,如果可以的話,你應該用SMALLMONEY型來代替MONEY型數據,以節省空間。 

邏輯型

BIT

如果你使用複選框( CHECKBOX)從網頁中搜集信息,你可以把此信息存儲在BIT型字段中。BIT型字段只能取兩個值:0或1。 

當心,在你創建好一個表之後,你不能向表中添加 BIT型字段。如果你打算在一個表中包含BIT型字段,你必須在創建表時完成。 

日期型

DATETIME VS SMALLDATETIME

一個 DATETIME型的字段可以存儲的日期範圍是從1753年1月1日第一毫秒到9999年12月31日最後一毫秒。 

如果你不需要覆蓋這麼大範圍的日期和時間,你可以使用SMALLDATETIME型數據。它與DATETIME型數據同樣使用,只不過它能表示的日期和時間範圍比DATETIME型數據小,而且不如DATETIME型數據精確。一個SMALLDATETIME型的字段能夠存儲從1900年1月1日到2079年6月6日的日期,它只能精確到秒。 

DATETIME型字段在你輸入日期和時間之前並不包含實際的數據,認識這一點是重要的
在www.iyuanma.com中有很多關於這反面的介紹

參考資料:http://www.iyuanma.com/info/20/19714_200592671755.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章