天天看點

MySQL資料庫基礎:資料類型詳解-二進制字元串類型

前言

正好趁着這次MySQL技能樹的建成一起學習複習一下MySQL資料庫的基本知識。也是一直在用這個資料庫,有些基礎的知識點長久不用就會遺忘,就比如資料類型溢出的問題,很多時候建表的時候随便給定個類似,結果導入資料的時候報錯又得删表就很麻煩,如果提前做好資料長度設定可以有效的避免這個問題而且還能節省很多空間,是以對MySQL所有資料類型做個總結是一個值得的選擇。 最好的總結方式就是根據學習順序整理出一張思維導圖可以幫我們很快的梳理清楚思路:

MySQL資料庫基礎:資料類型詳解-二進制字元串類型

該系列文章将按照這個脈絡行文,此系列文章将被納入我的專欄一文速學SQL各類資料庫操作,基本覆寫到使用SQL處理日常業務以及正常的查詢建庫分析以及複雜操作方方面面的問題。從基礎的建庫建表逐漸入門到處理各類資料庫複雜操作,以及專業的SQL常用函數講解都花費了大量時間和心思創作,如果大家有需要從事資料分析或者資料開發的朋友推薦訂閱專欄,将在第一時間學習到最實用常用的知識。此篇部落格篇幅較長,值得細讀實踐一番,我會将精華部分挑出細講實踐。部落客會長期維護博文,有錯誤或者疑惑可以在評論區指出,感謝大家的支援。

MySQL資料庫基礎:資料類型詳解-二進制字元串類型

MySQL中的二進制字元串類型主要存儲一些二進制資料,比如可以存儲圖檔、音頻和視訊等二進制資料。

一、BIT類型

BIT類型中,每個值的位數最小值為1,最大值為64,預設的位數為1。BIT類型中存儲的是二進制值。

create table mytable1(
  b BIT(5)
  );
複制代碼      
INSERT INTO mytable1(b) VALUES (2),(8),(16);
複制代碼      
MySQL資料庫基礎:資料類型詳解-二進制字元串類型

使用b+0查詢資料時,可以直接查詢出存儲的十進制資料的值。

SELECT b+0 FROM mytable1;      
MySQL資料庫基礎:資料類型詳解-二進制字元串類型

注意:在向BIT類型的字段中插入資料時,一定要確定插入的資料在BIT類型支援的範圍内。

二、BINARY與VARBINARY類型

BINARY類型為定長的二進制類型,當插入的資料未達到指定的長度時,将會在資料後面填充“\0”字元,以達到指定的長度。同時BINARY類型的字段的存儲空間也為固定的值。

VARBINARY類型為變長的二進制類型,長度的最小值為0,最大值為定義VARBINARY類型的字段時指定的長度值,其存儲空間為資料的實際長度值加1。

create table mytable2(
  b BINARY(10),
  vb VARBINARY(10)
  );      

其中,b字段與vb字段指定的長度均為10。

INSERT INTO mytable2(b,vb) VALUES (10,10);
SELECT LENGTH(b), LENGTH(vb) FROM mytable2;      

三、BLOB類型