MySQL中的BLOB和BINARY類型是用于存儲二進制數據的數據類型。它們可以用來存儲照片、音頻、視頻等大型數據。
BLOB是指二進制大型對象(Binary Large Object),用于存儲可變長度的二進制數據,其最大長度為2^32-1字節。BLOB字段僅僅是指定了一個最大長度,而沒有規定其內容的格式,因此BLOB字段可以存儲任何二進制數據。
BINARY是指將所有字符都當做二進制數據(Binary Data)來處理,用于存儲固定長度的二進制數據。BINARY字段必須指定它的長度。如果存儲的數據長度小于指定長度,則MySQL會自動在右邊填充0,如果存儲的數據長度大于指定長度,則MySQL會截斷多余的數據。
CREATE TABLE `image` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`data` blob NOT NULL,
PRIMARY KEY (`id`)
);
在上面的代碼中,我們創建了一個名為“image”的表,其中包含id、name和data三個字段。其中data字段的類型為BLOB,該字段用于存儲二進制數據。
下面是向image表中插入數據的示例代碼:
INSERT INTO `image`(`name`, `data`)
VALUES ('test.jpg', LOAD_FILE('/path/to/test.jpg'));
在上面的代碼中,我們使用LOAD_FILE()函數加載指定路徑下的圖片文件,并將其插入到數據表中。