MySQL数据库中二进制数据类型有哪些常用种类?

MySQL数据库常用二进制数据类型包括:BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。

MySQL 支持多种数据类型,包括二进制数据类型,用于存储和处理二进制数据,以下是对MySQL中常用的几种二进制数据类型的详细解释:

MySQL数据库中二进制数据类型有哪些常用种类?

BIT(M)

说明:位字段类型,M表示每个值的位数,范围为1至64,如果M被省略,默认值为1。

存储需求:大约 (M+7)/8 字节,BIT(1) 占用 1 字节,BIT(64) 占用 8 字节。

使用示例

CREATE TABLE example (
    b BIT(5)
);
INSERT INTO example (b) VALUES (2), (8), (16);
SELECT * FROM example;

BINARY(M)

说明:固定长度的二进制字符串,M表示字符串的最大长度。

存储需求:M字节,如果插入的值不足M字节,会在右边用“”补齐。

使用示例

CREATE TABLE example (
    fixed_binary BINARY(10)
);
INSERT INTO example (fixed_binary) VALUES ('abc'), ('abcdefgh');
SELECT LENGTH(fixed_binary) FROM example;

VARBINARY(M)

说明:可变长度的二进制字符串,M表示字符串的最大长度。

MySQL数据库中二进制数据类型有哪些常用种类?

存储需求:实际长度加1字节,VARBINARY(10) 插入长度为5的数据时,实际存储空间为6字节。

使用示例

CREATE TABLE example (
    variable_binary VARBINARY(20)
);
INSERT INTO example (variable_binary) VALUES ('abc'), ('abcdefghijklmnopqrst');
SELECT LENGTH(variable_binary) FROM example;

BLOB类型

TINYBLOB(M):最大长度为255字节(2^81)。

BLOB(M):最大长度为65,535字节(2^161)。

MEDIUMBLOB(M):最大长度为16,777,215字节(2^241)。

LONGBLOB(M):最大长度为4GB(2^321)。

存储需求:L+额外字节,其中L是数据的实际长度,具体额外字节数取决于BLOB类型。

使用示例

CREATE TABLE example (
    tiny_blob TINYBLOB,
    blob_data BLOB,
    medium_blob MEDIUMBLOB,
    long_blob LONGBLOB
);
INSERT INTO example (tiny_blob, blob_data, medium_blob, long_blob) VALUES (
    LOAD_FILE('/path/to/smallfile.jpg'),
    LOAD_FILE('/path/to/mediumfile.jpg'),
    LOAD_FILE('/path/to/largefile.jpg'),
    LOAD_FILE('/path/to/hugefile.jpg')
);
SELECT * FROM example;

FAQs

MySQL数据库中二进制数据类型有哪些常用种类?

问题一:在MySQL中,如何将图像文件存储到数据库中?

答:在MySQL中,可以使用BLOB类型来存储图像文件,确保表中的相应列使用了BLOB类型,然后使用LOAD_FILE()函数将文件内容读取并插入到数据库中。

INSERT INTO images (image) VALUES (LOAD_FILE('/path/to/image.jpg'));

这里,images表有一个名为image的列,其数据类型为BLOB。

问题二:如何在MySQL中检索并显示存储的图像文件?

答:要从MySQL中检索并显示存储的图像文件,可以使用SELECT语句获取BLOB列的数据,然后通过编程语言(如PHP、Java等)将结果输出到网页或应用界面上,使用PHP从MySQL中检索图像并显示:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn>connect_error) {
    die("连接失败: " . $conn>connect_error);
}
$sql = "SELECT image FROM images WHERE id=1";
$result = $conn>query($sql);
if ($result>num_rows > 0) {
    // 输出数据
    while($row = $result>fetch_assoc()) {
        header("Contenttype: image/jpeg");
        echo $row["image"];
    }
} else {
    echo "0 结果";
}
$conn>close();
?>

这段PHP代码从images表中检索ID为1的记录,并将其作为图像显示在网页上。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1099396.html

(0)
未希的头像未希新媒体运营
上一篇 2024-09-29 02:10
下一篇 2024-09-29 02:14

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入