设计网站的意义网站建设有哪些优质公众号
MySQL支持多种数据类型,这些数据类型可以分为三大类:数值、日期和时间以及字符串(字符)类型。这些数据类型可以帮助我们根据需要选择合适的类型来存储数据。选择合适的数据类型对于确保数据的完整性和性能至关重要。
以下是MySQL中的29种主要数据类型:
目录
一、BIGINT
二、BINARY
三、BIT
四、BLOB
五、BOOLEAN
六、CHAR
七、DATE
八、DATETIME
一、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 更新
