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

Mysql--基础篇--数据类型(整数,浮点数,日期,枚举,二进制,空间类型等)

MySQL提供了多种数据类型,用于定义表中列的数据格式。选择合适的数据类型不仅可以提高查询性能,还能确保数据的完整性和准确性。

一、数值类型

数值类型用于存储整数、浮点数和定点数。根据精度和范围的不同,数值类型可以分为以下几类:

1、整数类型

在这里插入图片描述
示例:

CREATE TABLE numbers (
    id INT AUTO_INCREMENT PRIMARY KEY,
    tiny_num TINYINT,
    small_num SMALLINT UNSIGNED,     // 默认是有符范围,UNSIGNED指定为无符
    medium_num MEDIUMINT,
    big_num BIGINT
);

说明:
默认的数据类型都是有符号的,如果想要定义为无符号的数据类型,需要加上UNSIGNED关键字,示例如上。

2、浮点数类型

在这里插入图片描述
示例:

CREATE TABLE measurements (
    id INT AUTO_INCREMENT PRIMARY KEY,
    float_value FLOAT,
    double_value DOUBLE,
    decimal_value DECIMAL(10, 2)  -- 10位总长度,2位小数
);

二、字符串类型

字符串类型用于存储文本数据。根据存储方式和长度的不同,字符串类型可以分为固定长度和可变长度两种。

1、定长字符串类型

在这里插入图片描述

示例:

CREATE TABLE names (
    id INT AUTO_INCREMENT PRIMARY KEY,
    first_name CHAR(50),
    last_name CHAR(50)
);

2、变长字符串类型

在这里插入图片描述
示例:

CREATE TABLE articles (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255),
    content TEXT,
    short_description TINYTEXT
);

三、日期和时间类型

日期和时间类型用于存储与时间相关的数据。MySQL提供了多种日期和时间类型,适用于不同的场景。
在这里插入图片描述
示例:

CREATE TABLE events (
    id INT AUTO_INCREMENT PRIMARY KEY,
    event_date DATE,
    start_time TIME,
    end_time TIME,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

四、枚举和集合类型

1、ENUM类型

ENUM类型用于存储一组预定义的值。每个列只能从这些预定义的值中选择一个

示例:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50),
    status ENUM('active', 'inactive', 'suspended') DEFAULT 'inactive'
);

2、SET类型

SET类型类似于ENUM,但它允许列中存储多个预定义值的组合

示例:

CREATE TABLE permissions (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    roles SET('admin', 'editor', 'viewer') NOT NULL
);

五、二进制和BLOB类型

二进制类型用于存储二进制数据,如图片、文件等。BLOB类型是二进制大对象的缩写,适用于存储较大的二进制数据。
在这里插入图片描述
示例:

CREATE TABLE images (
    id INT AUTO_INCREMENT PRIMARY KEY,
    image_name VARCHAR(255),
    image_data LONGBLOB
);

六、空间数据类型

空间数据类型用于存储地理空间数据,如点、线、多边形等。MySQL支持OpenGIS规范中的空间数据类型,适用于GIS(地理信息系统)应用。
在这里插入图片描述
示例:

CREATE TABLE locations (
    id INT AUTO_INCREMENT PRIMARY KEY,
    location POINT
);

插入地理坐标:

INSERT INTO locations (location) VALUES (ST_PointFromText('POINT(120.7 31.2)'));

运行结果:
在这里插入图片描述
查询坐标:

select * from locations;

运行结果:
在这里插入图片描述

七、数据类型总结

MySQL提供了丰富的数据类型,涵盖了数值、字符串、日期时间、枚举、二进制和空间数据等多种类型。选择合适的数据类型不仅有助于优化存储空间,还能提高查询性能并确保数据的完整性。根据你的具体需求,选择最适合的数据类型来设计表结构。


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

相关文章:

  • Jupyter Markdown样式说明
  • HTML静态网页成品作业(HTML+CSS)——婚礼婚纱网页设计制作(6个页面)
  • OSPF使能配置
  • 攻防靶场(32):两个爆破技巧 Funbox 7 EasyEnum
  • 5. 多线程(3) --- synchronized
  • 力扣经典题目之2283. 判断一个数的数字计数是否等于数位的值
  • [网络安全]DVWA之File Upload—AntSword(蚁剑)攻击姿势及解题详析合集
  • windows蓝屏以及windows补丁回滚
  • Solaris操作系统
  • JavaScript系列(12)-- 高阶函数应用
  • Spring5框架之SpringMVC
  • 记录一下Coding一直不能clone
  • 7_TypeScript Number --[深入浅出 TypeScript 测试]
  • Ae:合成设置 - 3D 渲染器
  • 除了RAII和智能指针,还有哪些资源管理机制?
  • Java设计模式 —— 【行为型模式】命令模式(Command Pattern) 详解
  • doris 2.1 Data Queries Common Table Expression UDF 学习笔记
  • 【LeetCode】4. 去重的效率提升
  • 基于CentOS的Docker + Nginx + Gitee + Jenkins部署总结(进阶)-- 接入钉钉通知功能
  • C# 对象和类型(结构)