当前位置: 首页 > article >正文

MYSQL---------支持数据类型

数值类型

  • 整数类型
    • TINYINT:通常用于存储小范围的整数,范围是-128到127或0到255(无符号)。例如,存储年龄可以使用TINYINT类型。示例:CREATE TABLE users (age TINYINT);
    • SMALLINT:范围比TINYINT大,有符号的范围是-32768到32767,无符号是0到65535。可用于存储一些较小范围但又比TINYINT稍大的数据,如员工编号。示例:CREATE TABLE employees (emp_id SMALLINT);
    • INT:最常用的整数类型,有符号范围是-2147483648到2147483647,无符号是0到4294967295。可用于存储一般的整数数据,如订单编号。示例:CREATE TABLE orders (order_id INT);
    • BIGINT:用于存储大整数,有符号范围是-9223372036854775808到9223372036854775807,无符号是0到18446744073709551615。适用于存储非常大的数字,如大型网站的用户ID等。示例:CREATE TABLE users (user_id BIGINT);
  • 浮点数类型
    • FLOAT:单精度浮点数,用于存储小数,精度有限。例如,存储商品价格,允许一定的精度误差。示例:CREATE TABLE products (price FLOAT);
    • DOUBLE:双精度浮点数,精度比FLOAT更高。用于需要更高精度的小数存储,如科学计算中的数据。示例:CREATE TABLE scientific_data (value DOUBLE);
  • 定点数类型DECIMAL,用于存储精确的小数,常用于财务数据等对精度要求高的场景。例如,存储金额。示例:CREATE TABLE accounts (balance DECIMAL(10,2));表示总长度为10位,小数部分占2位。

日期时间类型

  • DATE:用于存储日期,格式为YYYY-MM-DD。例如,存储用户的出生日期。示例:CREATE TABLE users (birth_date DATE);插入数据:INSERT INTO users (birth_date) VALUES ('1990-01-01');
  • TIME:用于存储时间,格式为HH:MM:SS。可用于存储活动的开始时间等。示例:CREATE TABLE events (start_time TIME);插入数据:INSERT INTO events (start_time) VALUES ('10:30:00');
  • DATETIME:存储日期和时间,格式为YYYY-MM-DD HH:MM:SS。适用于需要同时记录日期和时间的场景,如订单创建时间。示例:CREATE TABLE orders (create_time DATETIME);插入数据:INSERT INTO orders (create_time) VALUES ('2023-01-01 12:00:00');
  • TIMESTAMP:也用于存储日期和时间,它的取值范围比DATETIME小,但会自动更新为当前时间。常用来记录数据的最后更新时间等。示例:CREATE TABLE logs (update_time TIMESTAMP);

字符串类型

  • CHAR:固定长度字符串,最大长度为255个字符。适用于存储长度固定的数据,如身份证号码、邮政编码等。示例:CREATE TABLE addresses (postcode CHAR(6));
  • VARCHAR:可变长度字符串,最大长度一般为65535个字符(受限于数据库表的最大行大小)。用于存储长度不固定的字符串,如姓名、地址等。示例:CREATE TABLE users (name VARCHAR(50));
  • BINARY:固定长度二进制字符串,用于存储二进制数据,如加密后的密码、图片的二进制数据等。示例:CREATE TABLE encrypted_data (password BINARY(64));
  • VARBINARY:可变长度二进制字符串,可存储可变长度的二进制数据。示例:CREATE TABLE images (image_data VARBINARY(MAX));

枚举类型(ENUM)

用于存储有限个特定值中的一个,如性别字段,只能是男或女。示例:CREATE TABLE users (gender ENUM('男','女'));插入数据:INSERT INTO users (gender) VALUES ('男');

集合类型(SET)

可以存储一个或多个指定值的集合。例如,存储用户的兴趣爱好,用户可以有多个爱好。示例:CREATE TABLE users (hobbies SET('阅读','运动','音乐','绘画'));插入数据:INSERT INTO users (hobbies) VALUES ('阅读,运动');
在这里插入图片描述
以下是 MySQL 中各种数据类型的代码示例:

-- 创建一个名为 data_types 的数据库
CREATE DATABASE data_types;

-- 使用 data_types 数据库
USE data_types;

-- 创建一个包含各种数据类型的表
CREATE TABLE sample_table (
    -- 整数类型示例
    tinyint_column TINYINT,
    smallint_column SMALLINT,
    int_column INT,
    bigint_column BIGINT,
    -- 浮点数类型示例
    float_column FLOAT,
    double_column DOUBLE,
    decimal_column DECIMAL(10, 2),
    -- 日期时间类型示例
    date_column DATE,
    time_column TIME,
    datetime_column DATETIME,
    timestamp_column TIMESTAMP,
    -- 字符串类型示例
    char_column CHAR(20),
    varchar_column VARCHAR(50),
    binary_column BINARY(10),
    varbinary_column VARBINARY(50),
    -- 枚举类型示例
    enum_column ENUM('male', 'female', 'other'),
    -- 集合类型示例
    set_column SET('reading', 'sports', 'music', 'painting')
);


-- 插入数据到 sample_table
INSERT INTO sample_table (
    tinyint_column,
    smallint_column,
    int_column,
    bigint_column,
    float_column,
    double_column,
    decimal_column,
    date_column,
    time_column,
    datetime_column,
    timestamp_column,
    char_column,
    varchar_column,
    binary_column,
    varbinary_column,
    enum_column,
    set_column
) VALUES (
    127,  -- TINYINT 的最大值(有符号)
    32767, -- SMALLINT 的最大值(有符号)
    2147483647, -- INT 的最大值(有符号)
    9223372036854775807, -- BIGINT 的最大值(有符号)
    123.45, -- FLOAT 示例
    1234.5678, -- DOUBLE 示例
    1234.56, -- DECIMAL 示例
    '2025-01-01', -- DATE 示例
    '12:34:56', -- TIME 示例
    '2025-01-01 12:34:56', -- DATETIME 示例
    CURRENT_TIMESTAMP, -- TIMESTAMP 示例,会自动插入当前时间
    'fixed string', -- CHAR 示例
    'variable string', -- VARCHAR 示例
    0x1234567890, -- BINARY 示例,十六进制表示
    0x1234567890, -- VARBINARY 示例,十六进制表示
    'male', -- ENUM 示例
    'reading,sports' -- SET 示例,存储多个集合元素
);


-- 查询 sample_table 中的数据
SELECT * FROM sample_table;


-- 更新数据示例
UPDATE sample_table 
SET 
    float_column = 98.76,
    enum_column = 'female'
WHERE int_column = 2147483647;


-- 删除数据示例
DELETE FROM sample_table WHERE bigint_column = 9223372036854775807;


-- 修改表结构示例,添加新的字段
ALTER TABLE sample_table
ADD new_column INT;


-- 删除表结构示例,删除新添加的字段
ALTER TABLE sample_table
DROP COLUMN new_column;


-- 删除表
DROP TABLE sample_table;


-- 删除数据库
DROP DATABASE data_types;

代码解释:

  • 创建数据库和表
    • CREATE DATABASE data_types;:创建一个名为 data_types 的数据库。
    • USE data_types;:指定后续操作使用 data_types 数据库。
    • CREATE TABLE sample_table (...):创建一个名为 sample_table 的表,其中包含了各种数据类型的字段。
  • 插入数据
    • INSERT INTO sample_table (...) VALUES (...):向 sample_table 插入一条记录,为每个字段提供相应的数据。
  • 查询数据
    • SELECT * FROM sample_table;:查询 sample_table 中的所有数据。
  • 更新数据
    • UPDATE sample_table SET... WHERE...:更新 sample_table 中满足条件的数据。
  • 删除数据
    • DELETE FROM sample_table WHERE...:删除 sample_table 中满足条件的数据。
  • 修改表结构
    • ALTER TABLE sample_table ADD new_column INT;:为 sample_table 表添加一个名为 new_column 的新字段。
    • ALTER TABLE sample_table DROP COLUMN new_column;:删除 sample_table 表中的 new_column 字段。
  • 删除表和数据库
    • DROP TABLE sample_table;:删除 sample_table 表。
    • DROP DATABASE data_types;:删除 data_types 数据库。

这个示例展示了 MySQL 中各种数据类型的使用,包括如何创建表、插入数据、更新数据、删除数据、修改表结构和删除表和数据库。你可以根据自己的需求修改和扩展这个示例。

请注意,以上代码基于 MySQL 8.0 运行,不同的 MySQL 版本在某些语法和数据类型的使用上可能会略有不同。在实际使用中 使用的 MySQL 版本进行相应的调整。 同时,在使用 INSERT
语句插入二进制数据时,使用了十六进制表示,根据实际情况使用相应的二进制数据。在使用 ENUMSET
类型时,插入的值必须是定义的枚举或集合元素之一,否则会报错。 另外,TIMESTAMP 会自动更新为当前时间,在不同的情况下可能会根据
MySQL 的配置有所不同。

在这里插入图片描述


http://www.kler.cn/a/469291.html

相关文章:

  • reactor的Hooks.enableAutomaticContextPropagation();不生效解决方案
  • 【UI自动化测试】selenium八种定位方式
  • 衡量算法效率的方法:时间复杂度、空间复杂度
  • 计算机网络 —— 网络编程实操(1)(UDP)
  • 小R的蛋糕分享
  • 标题:利用Spring Boot构建JWT刷新令牌应用
  • unity中的UI系统---GUI
  • 如何使用Termux 通过 SSH 连接到远程服务器
  • vue3 如何封装aixos
  • 【AI数学基础】线性代数:内积和范数
  • 换肤-主题:使用 CSS 自定义属性 -- var()函数 详解
  • 报错:websocket注入为null,已解决!
  • 在 uni-app 中使用 wxml-to-canvas 的踩坑经验总结
  • 【开源免费】基于SpringBoot+Vue.JS大学城水电管理系统(JAVA毕业设计)
  • Spark基本介绍
  • 《新概念模拟电路》-电流源电路
  • android开发从入门进阶到高级学习资料集合
  • 日期时间选择(设置禁用状态)
  • ChatUML:AI自动生成UML图表
  • National Science Review 基于柔性光栅结构色的触觉感知方法及传感器
  • springboot集成websokcet+H5开发聊天原型(二)
  • 【FlutterDart】 拖动改变 widget 的窗口尺寸大小GestureDetector~简单实现(10 /100)
  • 利用TCP协议实现客户端—服务器端通信
  • GTX750Ti打DP补丁
  • SQL-leetcode-196. 删除重复的电子邮箱
  • 【服务器项目部署】✈️将本地项目部署到服务器(二)!