MYSQL数据类型详解

2023-12-13 13:24:56

????????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?更新

文章来源:https://blog.csdn.net/imwucx/article/details/134916324
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。