国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

BINARY和VARBINARY類型--MySql數據庫

2024-07-24 12:40:07
字體:
來源:轉載
供稿:網友
BINARY和VARBINARY類類似于CHAR和VARCHAR,不同的是它們包含二進制字符串而不要非二進制字符串。也就是說,它們包含字節字符串而不是字符字符串。這說明它們沒有字符集,并且排序和比較基于列值字節的數值值。 BINARY和VARBINARY允許的最大長度一樣,如同CHAR和VARCHAR,不同的是BINARY和VARBINARY的長度是字節長度而不是字符長度。 BINARY和VARBINARY數據類型不同于CHAR BINARY和VARCHAR BINARY數據類型。對于后一種類型,BINARY屬性不會將列視為二進制字符串列。相反,它致使使用列字符集的二元 校對規則,并且列自身包含非二進制字符字符串而不是二進制字節字符串。例如CHAR(5) BINARY被視為CHAR(5) CHARACTER SET latin1 COLLATE latin1_bin,假定默認字符集是latin1。這不同于BINARY(5),它保存5字節二進制字符串,沒有字符集或 校對規則。當保存BINARY值時,在它們右邊填充值以達到指定長度。填充值是0x00(零字節)。插入值時在右側添加0x00on,并且選擇時不刪除尾部的字節。比較時所有字節很重要,包括ORDER BY和DISTINCT操作。比較時0x00字節和空格是不同的,0x00<空格。例如:對于一個BINARY(3)列,當插入時'a'變為'a /0'。'a/0'插入時變為'a/0/0'。當選擇時兩個插入的值均不更改。對于VARBINARY,插入時不填充字符,選擇時不裁剪字節。比較時所有字節很重要,包括ORDER BY和DISTINCT操作。比較時0x00字節和空格是不同的,0x00<空格。對于尾部填充字符被裁剪掉或比較時將它們忽視掉的情形,如果列的索引需要唯一的值,在列內插入一個只是填充字符數不同的值將會造成復制鍵值錯誤。如果你計劃使用這些數據類型來保存二進制數據并且需要檢索的值與保存的值完全相同,應考慮前面所述的填充和裁剪特征。下面的例子說明了用0x00填充的BINARY值如何影響列值比較: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) 如果檢索的值必須與指定進行存儲而沒有填充的值相同,最好使用BLOB數據類型。創建表時,MySQL可以默默更改BINARY或VARBINARY列的類型。參見13.1.5.1節,“沉寂的列規格變更”。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沙湾县| 饶河县| 渭南市| 石城县| 秦皇岛市| 宜城市| 漳平市| 永宁县| 临澧县| 自治县| 承德市| 铜陵市| 嘉峪关市| 门源| 奉节县| 肃南| 错那县| 高陵县| 平塘县| 芜湖县| 旬邑县| 文安县| 临湘市| 哈巴河县| 潜江市| 昌图县| 民和| 鞍山市| 阜平县| 新巴尔虎左旗| 滕州市| 重庆市| 福安市| 延吉市| 汨罗市| 西吉县| 玉门市| 西乌| 苏州市| 舟山市| 进贤县|