MYSQL数据类型详解
2023-12-13 13:24:56
????????MySQL支持多种数据类型,这些数据类型可以分为三大类:数值、日期和时间以及字符串(字符)类型。这些数据类型可以帮助我们根据需要选择合适的类型来存储数据。选择合适的数据类型对于确保数据的完整性和性能至关重要。
????????以下是MySQL中的29种主要数据类型:
目录
一、BIGINT
BIGINT
?是 MySQL 中一种常用的数据类型,它用于存储大整数值。
语法:
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
使用:
- 当存储的信息超过int上限的整数时使用。
- 存储非常大的数字,如金融领域,存储倾向金额和统计总数量等信息。
- 注:需要注意其“存储范围”和“显示宽度”。
示例:
CREATE TABLE test(
file_name VARCHAR(255) NOT NULL,
size BIGINT UNSIGNED NOT NULL,
amount BIGINT NOT NULL,
PRIMARY KEY (file_name)
);
INSERT INTO test (file_name, size) VALUES
('file1.txt', 102401238401, 99990000000),
('file2.txt', 3847283123, 99990005555),
('file3.txt', 98213233844, 99990006666);
二、BINARY
BINARY
?是 MySQL 中一种常用的数据类型,它用于存储二进制数据。
语法:
BINARY(M)
使用:
- 存储二进制数据。如加密密钥、图像、视频文件和音频文件等。
- 注:需要注意其存储的字节数和二进制数据的来源。
示例:
CREATE TABLE users (
user_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR(255) NOT NULL,
password BINARY(64) NOT NULL,
image BINARY(1024) NOT NULL,
PRIMARY KEY (user_id)
);
INSERT INTO users (username, password, image) VALUES
('zhangsan', UNHEX(SHA2('abcdefg', 256)), LOAD_FILE('/home/test/image1.jpg')),
('lisi', UNHEX(SHA2('secret', 256)), LOAD_FILE('/home/test/image2.jpg'));
三、BIT
BIT
?是 MySQL 中一种常用的数据类型,它用于存储位数据。
语法:
BIT(M)
使用:
- 存储布尔值、标志位?和?位掩码等。如表示用户状态、表示删除状态等。
- 注:需要注意其存储的位数和位数据的含义。
示例:
CREATE TABLE users (
user_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR(255) NOT NULL,
status BIT(1) NOT NULL,
PRIMARY KEY (user_id)
);
INSERT INTO users (username, status) VALUES
('zhangsan', b'1'),
('lisi', b'0');
四、BLOB
BLOB
?是 MySQL 中用于存储大量二进制数据的数据类型。它可以存储最大值为 65,535 字节的数据,也可以存储超过 4GB 的数据。
语法:
column_name BLOB(size)
使用:
- 存储任何(大量)二进制数据,如图像、音频、视频、文档等。它们通常是较大的文件,因此需要特殊的数据类型来存储它们。
- 注:硬盘存储空间和文件大小上限。
示例:
CREATE TABLE user (
id INT PRIMARY KEY,
avatar BLOB
);
INSERT INTO user (id, avatar) VALUES
(1, 0xA***********************************************);
可以通过HEX()函数将二进制数转换为二六进制字符串进行存储。
五、BOOLEAN
MySQL?BOOLEAN
?数据类型用于存储布尔值,即?TRUE
?或?FALSE
。在 MySQL 中,BOOLEAN
?实际上是?TINYINT(1)
?的别名。
语法:
column_name BOOLEAN
使用:
- 存储逻辑值,例如是否被删除、是否完成等。
- 注:需要注意 MySQL 将?
TRUE
?转换为 1,将?FALSE
?转换为 0。
示例:
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50),
is_employed BOOLEAN
);
INSERT INTO employees VALUES
(1, 'zhangsan', TRUE),
(2, 'lisi', FALSE);
六、CHAR
CHAR
?是 MySQL 中的一种数据类型,用于存储定长的字符串数据。
语法:
CHAR(M)
使用:
- 存储长度固定的字符串,例如邮政编码、电话号码等。
- 注:查询速度快,但可能会浪费存储空间。
- 与?
VARCHAR
?数据类型相比,CHAR
?存储的是定长字符串,因此在查询时速度更快。但是,如果存储的字符串长度不够时,会自动在字符串后面补空格,因此会浪费一定的存储空间。
- 与?
示例:
CREATE TABLE employee (
id INT PRIMARY KEY,
name CHAR(20),
phone CHAR(11)
);
INSERT INTO employee (id, name, phone)
VALUES (1, 'zhangsan', '1995252****'),(1, 'lisi', '1995252****);
七、DATE
在 MySQL 中,?DATE
?是一种日期数据类型,用于存储年、月、日值。它的值范围从 ‘1000-01-01’ 到 ‘9999-12-31’。使用?DATE
?数据类型可以轻松地进行日期计算和格式化。
语法:
DATE
使用:
- 用于存储日期值,比如出生日期、交易日期等。
示例:
CREATE TABLE user(
id INT PRIMARY KEY,
name VARCHAR(50),
birthdate DATE
);
INSERT INTO user(id, name, birthdate)
VALUES
(1, 'zhangsan', '1900-12-10'),
(2, 'lisi', '2012-12-10');
八、DATETIME
MySQL 中的?DATETIME
?数据类型是一种日期和时间格式,它可以存储从 1000-01-01 00:00:00 到 9999-12-31 23:59:59 之间的日期和时间。它的存储大小是 8 个字节。
语法:
DATETIME[(<fsp>)]
使用:
- 存储具有日期和时间信息的数据。它可以用于存储时间戳、事件时间等信息。
示例:
CREATE TABLE user(
id INT PRIMARY KEY AUTO_INCREMENT,
name INT,
create_time DATETIME
);
INSERT INTO orders (name, create_time )
VALUES ('zhangsan', '2022-01-01 10:30:00');
????????
不卷了,待20231211?更新
文章来源:https://blog.csdn.net/imwucx/article/details/134916324
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!