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

【MySQL】MySQL 中 ENUM 的用法

MySQL 中 ENUM 的用法

在 MySQL 中,ENUM 是一种字符串数据类型,用于列出一组预定义的值。它允许你为列指定一个有限的选项集,确保插入的数据仅限于这些选项之一。

1. 定义 ENUM 列

在创建表时,可以使用 ENUM 数据类型定义列。例如:

CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100),status ENUM('active', 'inactive', 'suspended') NOT NULL
);

在这个例子中,status 列只能包含 ‘active’、‘inactive’ 或 ‘suspended’ 这三个值。

2. 插入数据

插入数据时,ENUM 列只能使用定义的值:

INSERT INTO users (name, status) VALUES ('Alice', 'active');
INSERT INTO users (name, status) VALUES ('Bob', 'inactive');

如果尝试插入一个不在定义范围内的值,会导致错误:

INSERT INTO users (name, status) VALUES ('Charlie', 'banned');  -- 错误

3. 修改 ENUM 列

可以使用 ALTER TABLE 命令修改 ENUM 列的定义。例如,添加一个新的选项:

ALTER TABLE users MODIFY status ENUM('active', 'inactive', 'suspended', 'deleted') NOT NULL;

5. 注意事项

存储:ENUM 类型的值在内部以整数形式存储,实际存储的字节数取决于定义的值的数量(最多 65535 个值)。
排序:ENUM 值的排序顺序与定义的顺序相同。
空值:如果列定义为 NOT NULL,则必须提供有效的 ENUM 值。
性能:在某些情况下,使用 ENUM 可以提高性能,因为它使用整数存储和比较。

CREATE TABLE products (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100),category ENUM('electronics', 'furniture', 'clothing') NOT NULL
);INSERT INTO products (name, category) VALUES ('Laptop', 'electronics');
INSERT INTO products (name, category) VALUES ('Sofa', 'furniture');

总结

ENUM 是一个方便的 MySQL 数据类型,用于限制列的值为一组预定义的字符串,确保数据的有效性和一致性。


http://www.mrgr.cn/news/9307.html

相关文章:

  • 使用策略模式代替多个ifelse
  • 工厂模式和策略模式区
  • IP子网划分之网络工程师软考中级
  • c语言——数组
  • 深入理解 GC 原理、调度与调优
  • 深度学习100问7-向量降维的算法有那些
  • Elasticsearch用法
  • 『大模型笔记』dockerfile中的ENTRYPOINT和CMD有什么区别?
  • QT error: expected ‘:‘ before ‘slots‘ public slots:
  • BaseCTF-web-Week1
  • 3D场景标注标签信息,three.js CSS 2D渲染器CSS2DRenderer、CSS 3D渲染器CSS3DRenderer(结合react)
  • 使用vagrant、virtualbox、快速创建kali linux
  • iOS 17.6.1版本重发,修复高级数据保护错误
  • 【PyQt6 应用程序】PyUIC使用加载可视化文件
  • React 学习——zustand使用
  • A Neural Probabilistic Language Model
  • Vue3.0项目实战(一)——Vue3 大事件管理系统项目搭建
  • 如何向linux社区提交一个新的驱动或patch
  • 《AI办公类工具PPT系列之五——ChatBA》
  • Web AI测试WINSCP从windows同步文件到Linux脚本使用案例-测试验证成功