MySQL - 數據表的操作_列的類型定義_字符串類型_二進制類型

1.1 列名:

1)採用26字母和0-9的自然數加上下互相 ‘’ 組成,命名簡潔明確,多個單詞用下劃線 ‘’ 隔開
2)全部小寫命名,儘量避免出現大寫
3)字段必須填寫描述信息
4)禁止使用數據庫關鍵字
5)字段名稱一般採用名詞或動賓短語
6)採用字段的名字必須是易於理解,一般不超過三個英文單詞
7)在命名錶的列時,不要重複表的名稱(如:在 user 表中,出現 user_name 字段)
8)字段命名使用完整名稱

1.2、列的類型定義

1.2.1 字符串類型_二進制類型

二進制數據和文本數據在mysql 中的最大區別在於:

1、二進制類型存儲原始的二進制數據(如圖片,視頻,exe文件等)。文本類型(TEXT)用來存儲字符字符串(如由英文字符、中文字符或其它語言字符組成的字符串)。

2、二進制類型沒有字符集,並且排序和比較基於列值字節的數值。而TEXT類型有字符集,並且根據字符集的校對規則對值進行排序和比較。

二進制類型是存儲二進制數據的數據類型,包括BINARY、VARBINARY、BIT、TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。二進制類型之間的對比如下表所示。
在這裏插入圖片描述

BINARY和VARBINARY類型
BINARY類型和VARBINARY類型都是在創建表時指定最大長度,其基本形式如下:

類型 (M)

其中,“字符串類型”參數指定數據類型爲BINARY類型還是VARBINARY類型;M參數指定該二進制數的最大字節長度爲M。這與CHAR類型和VARCHAR類型相似。例如,BINARY(10)就是指數據類型爲BINARY類型,其最大長度爲10。

1、BINARY類型的長度是固定的,在創建表時就指定了,不足最大長度的空間由″\0″補全。例如,BINARY(50)就是指定BINARY類型的長度爲50。

2、VARBINARY類型的長度是可變的,在創建表時指定了最大的長度,其長度可以在0到最大長度之間,在這個最大值範圍內使用多少就分配多少。

mysql> use test;   #選擇數據庫test 
mysql> create table bin_example(e_bin  binary(5),e_varbin varbinary(5)); #創建表 
mysql> insert into bin_example values( 'ab','ab'); #插入記錄,可以是普通字符串
mysql> insert into bin_example values( b'0110000101100010',b'0110000101100010'); #插入記錄,可以是二進制,與上例等同
mysql> select * from bit_example ;  #以十六進制的方式顯示

BIT類型

BIT類型在創建表時指定最大長度,其基本形式如下:

BIT(M)

其中,“M”指定該二進制數的最大存儲長度爲M,M的最大值爲64。例如,BIT(4)就是指數據類型爲BIT類型,長度爲4。若字段的類型BIT(4)存儲的數據是0~15,因爲變成二進制之後15的值爲1111,則其長度爲4。如果插入的值爲16,其二進制數爲10000,長度爲5,超過了最大長度,因此大於16的數是不能插入BIT(4)類型字段中的。

操作要點:
1、插入數據時,使用 b’位串’的方式插入相應值!

2、查詢時,可以使用 bin() 、oct() 、hex() 函數講字段的值轉成相應的二進制、八進制和十六進制

mysql> use test;   #選擇數據庫test 
mysql> create table bit_example (b bit(8) ); #創建表 
mysql> insert into bit_example values( b'10110111' ); #插入記錄,可以是二進制位
mysql> insert into bit_example values( 'a' ); #插入記錄,可以是字符,但不能超出字節長度
mysql> select bin(b) from bit_example ;  #以二進制的方式顯示字段值 

BLOB類型

在這裏插入圖片描述
1、以上各類型無須指定長度!
2、允許的長度是指實際存儲的字節數,不用考慮字符編碼。

實戰建議

1、 binary長度固定, 即每條數據佔用等長字節空間;保存長度不超過255字節的二進制數據;

2、 varbinary可變長度,可以設置最大長度,最大長度65535;適合用在長度可變的二進制數據;

3、 blob不設置長度, 當不知道屬性的最大長度時,適合用blob, 能用varbinary的地方不用blob;

4、 如果都可以選擇,按照查詢速度: binary最快, varbinary次之,blob最慢。

結語:

時間:2020-07-05

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