為什麼資料庫有那麼多資料型別?

時間 2021-05-30 16:32:01

1樓:宋澐劍

簡單來說,語言是用來實現某種特定目的的,程式語言也不例外(SQL也是),比如說,在自然語言中,交流資訊會比較容易,但在特定領域就會顯得不精準,例如process這個單詞,在不同的領域可以是不同的意思,可以翻譯為:程序,處理,加工,流程等,在不同的領域代表不同的意思,因此限定領域非常重要。

再比如,在自然語言中,同乙個字元可能代表完全不通的意思,比如「勉強「,在日語裡代表學習(學習的確很勉強:-))

在程式語言中也是如此,資料型別需要用於限定資訊的準確性,比如SQL中,你指定乙個列名OrderID,憑人的直覺會覺得這類資料就是數字,但計算機並不知道這列的含義,因此就不能夠正確處理該列。

再比如資料「19」,這列是Int值呢?還是乙個字串?還是16進製制代表的乙個Unicode字元?

如果對這列進行+1操作,那該是數字上加1變為20?還是字串操作變為191?還是二進位制操作變為1A?

通過資料型別限定資料的範圍,相當於加了範圍約束,這種約束有如下好處

1.使用優化的儲存格式,比如INT型別是四位元組,儲存格式為32位二進位制字元,而varchar表示 「9999999999」則需要10位元組(甚至更多,取決於DBMS型別)

2.在對該類約束資料實現某些操作就不再會報錯,比如日期型別 『2017-3-28 00:00:

00』就可以無障礙的通過內建函式轉換為任何等價形式,比如"28/3/2017" 或者"2023年3月28日 0點"

3.通過資料型別約束可以減少非正常資料的存入,比如INT型別的列不應該存入字串。

2樓:最愛肉鬆

姓名,籍貫,年齡,性別,住址,出生日期。

給個型別就不會浪費寶貴的儲存空間和計算能力。

傳統資料庫就靠對各種型別的字段不斷優化,在某些方面,還起到了避免插入錯誤的情況。

不過這幾年開始流行檔案型資料庫了。字段型別又不那麼重要了。

基本系統資料型別和基本資料型別有什麼差別?

LineLian數智產品 C語言中提供多種資料型別,包括整型 字元型 實型 陣列 指標 結構體等,它們擁有如下的關係 基本型別整型短整型 short 整型 int 長整型 long 字元型 char 實型單精度型 float 構造型別陣列型別結構體型 struct 共用體型 union 指標型別 空...

資料型別 為什麼區分 int和long

short,int long int,long long int 位元組長度是不一樣的,也就是需要預先開闢的空間是不一樣的。那麼你可以根據需要來宣告相應大小的資料型別,而不至於占用太多記憶體。 為什麼要有較少位元組的整型 10 塊錢就能買到的東西,為什麼要用 100 塊去買。by 知乎 與世界分享你...

學習資料庫有什麼經典書籍?

程式設計師程式設計指南 資料庫系統實現 第二版 提取碼 6oi6資料庫系統概念 提取碼 7bt0 資料庫系統概念中文第6版 提取碼 kqe0深入淺出MySQL 資料庫開發 優化與管理維護 第2版 唐漢明 提取碼 70uf 高效能MySQL 第3版 提取碼 pofh分布式資料庫系統原理.第3版 提取碼...