日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql varbinary 长度_mysql8 参考手册--BINARY和VARBINARY类型

發布時間:2023/12/10 数据库 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql varbinary 长度_mysql8 参考手册--BINARY和VARBINARY类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

BINARY和VARBINARY類型與CHAR和VARCHAR類似,只是它們存儲的是二進制字符串而不是非二進制字符串。也就是說,它們存儲字節字符串而不是字符串。這意味著它們具有二進制字符集和排序規則,并且比較和排序基于值中字節的數值。

對于BINARY和VARBINARY,允許的最大長度與CHAR和VARCHAR相同,只是BINARY和VARBINARY的長度是以字節而不是字符度量的。

BINARY和VARBINARY數據類型不同于CHAR BINARY和VARCHAR BINARY數據類型。對于后一種類型,BINARY屬性不會將列視為二進制字符串列。相反,它將使用列字符集(如果未指定列字符集,則使用表默認字符集)的二進制`(_bin)'排序規則,并且列本身存儲非二進制字符串,而不是二進制字節字符串。例如,如果默認字符集是utf8mb4,則CHAR(5)BINARY被視為CHAR(5)character set utf8mb4 COLLATE utf8mb4_bin。這與BINARY(5)不同,后者存儲具有二進制字符集和排序規則的5字節二進制字符串。

如果未啟用嚴格的SQL模式,并且您為BINARY或VARBINARY列分配的值 超過了列的最大長度,則該值將被截斷以適合并生成警告。對于截斷的情況,要導致發生錯誤(而不是警告)并抑制該值的插入,請使用嚴格的SQL模式。

當存儲二進制值時,它們用pad值填充到指定的長度。pad值為0x00(零字節)。值用0x00右填充以進行插入,并且不刪除用于檢索的尾隨字節。所有字節在比較中都是重要的,包括按順序和不同的操作。0x00和space的比較不同,0x00在space之前排序。

示例:對于BINARY(3)列, 在插入時'a '變為 'a \0'。 插入時'a\0'變為'a\0\0'。兩個插入的值均保持不變以進行檢索。

對于VARBINARY,不存在插入的填充,也不剝離用于檢索的字節。所有字節在比較中都是重要的,包括按順序和不同的操作。0x00和space的比較不同,0x00在space之前排序。

對于剝離尾隨字節或比較忽略它們的情況,如果一列具有要求唯一值的索引,則將僅尾隨字節數不同的值插入該列會導致重復鍵錯誤。例如,如果表包含'a',則嘗試存儲'a\0'會導致重復鍵錯誤。

如果打算使用BINARY數據類型存儲二進制數據并且要求檢索的值與存儲的值完全相同,則應仔細考慮上述填充和剝離特性 。以下示例說明了 值的0x00填充如何影響 YBINAR列值比較:

mysql> CREATE TABLE t (c BINARY(3));

Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO t SET c= 'a';

Query OK, 1 row affected (0.01 sec)

mysql> SELECT HEX(c), c= 'a', c = 'a\0\0' from t;

+--------+---------+-------------+

| HEX(c) | c = 'a' | c = 'a\0\0' |

+--------+---------+-------------+

| 610000 | 0 | 1 |

+--------+---------+-------------+

1 row in set (0.09 sec)

如果檢索的值必須與為存儲指定的值相同且沒有填充,則最好使用VARBINARY或使用 一種 BLOB數據類型來代替。

總結

以上是生活随笔為你收集整理的mysql varbinary 长度_mysql8 参考手册--BINARY和VARBINARY类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。