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 中各种数据类型的代码示例:

sql 复制代码
-- 创建一个名为 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 的配置有所不同。

相关推荐
河南查新信息技术研究院1 分钟前
在科技查新中怎样判定其项目的新颖性?
数据库·科技·全文检索
梁萌15 分钟前
MongoDB-文章目录
数据库·mongodb
Manbo618 分钟前
电脑steam api dll缺失了怎么办?
服务器·数据库·microsoft
Roger的数据库恢复专栏24 分钟前
如何进一步提高Oracle lgwr的写性能?
数据库·oracle
王尼莫啊25 分钟前
【QT】找不到qwt_plot.h
开发语言·数据库·qt
爱可生开源社区29 分钟前
Undo 表空间分配回滚段
数据库
黄公子学安全40 分钟前
网安入门之MySQL后端基础
数据库·mysql·oracle
雪芽蓝域zzs1 小时前
MySQL(五)MySQL图形化工具-Navicat
数据库·mysql
狗狗显卡1 小时前
PHP进阶-php文件读取与连接数据库基础部分
android·数据库·php
吴冰_hogan1 小时前
并发编程之CAS与Atomic原子操作详解
java·开发语言·数据库