SQL中的五種資料型別

2021-03-31 08:56:30 字數 2547 閱讀 8987

簡要描述一下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 **allint vs tinyint
他們的區別只是字元長度:

通常,為了節省空間,應該盡可能的使用最小的整型資料。乙個tinyint型資料只占用乙個位元組;乙個int型資料占用四個位元組。這看起來似乎差別不大,但是在比較大的表中,位元組數的增長是很快的。另一方面,一旦你已經建立了乙個字段,要修改它是很困難的。因此,為安全起見,你應該**以下,乙個欄位所需要儲存的數值最大有可能是多大,然後選擇適當的資料型別。

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

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

乙個 numeric型資料的整數部分最大只能有28位,小數部分的位數必須小於或等於整數部分的位數,小數部分可以是零。

money vs **allmoney
你可以使用 int型或numeric型資料來儲存錢數。但是,專門有另外兩種資料型別用於此目的。如果你希望你的網點能掙很多錢,你可以使用money型資料。如果你的野心不大,你可以使用**allmoney型資料。money型資料可以儲存從-922,337,203,685,477.5808到922,337,203,685,477.5807的錢數。如果你需要儲存比這還大的金額,你可以使用numeric型資料。

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

邏輯型

bit
如果你使用核取方塊( checkbox)從網頁中蒐集資訊,你可以把此資訊儲存在bit型字段中。bit型字段只能取兩個值:0或1。

當心,在你建立好乙個表之後,你不能向表中新增 bit型字段。如果你打算在乙個表中包含bit型字段,你必須在建立表時完成。

日期型

datetime vs **alldatetime
乙個 datetime型的字段可以儲存的日期範圍是從1753年1月1日第一毫秒到2023年12月31日最後一毫秒。

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

datetime型字段在你輸入日期和時間之前並不包含實際的資料,認識這一點是重要的。

SQL中的五種資料型別

簡要描述一下sql中的五種資料型別 字元型,文字型,數值型,邏輯型和日期型 字元型 varchar vs charvarchar型和char型資料的這個差別是細微的,但是非常重要。他們都是用來儲存字串長度小於255的字元。假如你向乙個長度為四十個字元的varchar型字段中輸入資料bill gate...

Redis中的五種資料型別

1 string 常用命令 除了get set incr decr mget等操作外,redis還提供了下面一些操作 獲取字串長度 設定和獲取字串的某一段內容 設定及獲取字串的某一位 bit 批量設定一系列字串的內容 應用場景 string是最常用的一種資料型別,普通的key value儲存都可以歸...

Redis 五種資料型別

一 前言 上篇部落格已經對redis的一些基本知識做了一些簡介,這篇部落格,將簡單介紹一些redis的五種資料型別。分別為string 字串 hash 雜湊 list 鍊錶 set 集合 zset 有序集合 對這些型別可以執行很多原子性的操作 比如向乙個string型別的value後面追加字串 向l...