首页
学习
活动
专区
圈层
工具
发布

phpmyadmin 添加enum

基础概念

ENUM 是 MySQL 中的一种数据类型,用于定义一个列,该列只能包含预定义的一组值中的一个。ENUM 类型的列在数据库中以整数形式存储,但显示时使用其字符串值。

相关优势

  1. 数据完整性:通过限制列的值只能是预定义的一组值,可以确保数据的完整性和一致性。
  2. 节省空间:相比于 VARCHAR 类型,ENUM 类型通常占用更少的存储空间,因为每个值只存储一次。
  3. 查询效率ENUM 类型的列在查询时通常比 VARCHAR 类型更快,因为它们的值是固定的。

类型

ENUM 类型的值是用逗号分隔的字符串列表,例如:

代码语言:txt
复制
ENUM('value1', 'value2', 'value3')

应用场景

ENUM 类型适用于以下场景:

  • 性别('Male', 'Female', 'Other')
  • 状态('Active', 'Inactive', 'Pending')
  • 类别('CategoryA', 'CategoryB', 'CategoryC')

在 phpMyAdmin 中添加 ENUM

在 phpMyAdmin 中添加 ENUM 列的步骤如下:

  1. 打开 phpMyAdmin 并选择要修改的数据库。
  2. 选择要修改的表。
  3. 点击“结构”选项卡。
  4. 找到要添加 ENUM 列的行,点击“添加”按钮。
  5. 在“字段名”中输入列名。
  6. 在“类型”中选择“ENUM”,并在括号内输入预定义的值,例如 ('value1', 'value2', 'value3')
  7. 根据需要设置其他属性,如默认值、是否允许为空等。
  8. 点击“保存”按钮。

示例代码

假设我们有一个名为 users 的表,我们想添加一个名为 statusENUM 列,预定义值为 ('Active', 'Inactive', 'Pending')

代码语言:txt
复制
ALTER TABLE users ADD COLUMN status ENUM('Active', 'Inactive', 'Pending') DEFAULT 'Active';

参考链接

常见问题及解决方法

问题:为什么 ENUM 列的值显示为数字?

原因ENUM 列在数据库中以整数形式存储,每个值对应一个整数索引。

解决方法:在查询时使用 SELECT 语句将整数转换为对应的字符串值,例如:

代码语言:txt
复制
SELECT name, status FROM users;

问题:如何修改 ENUM 列的值?

原因:直接修改 ENUM 列的值可能会导致数据不一致。

解决方法:使用 ALTER TABLE 语句修改 ENUM 列的定义,例如:

代码语言:txt
复制
ALTER TABLE users MODIFY COLUMN status ENUM('Active', 'Inactive', 'Pending', 'Suspended');

总结

ENUM 类型在 MySQL 中用于定义列的预定义值集合,具有数据完整性、节省空间和查询效率等优势。在 phpMyAdmin 中添加 ENUM 列相对简单,只需在表结构中定义即可。常见的问题包括值的显示和修改,可以通过适当的查询和 ALTER TABLE 语句解决。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 枚举类型enum用法(enum类型)

    Java5新增了enum 关键字(与calss、interface 关键字用法相同),用来定义枚举类。 【2】为什么需要枚举类?...对枚举的扩展 switch( )的控制表达式(即括号中的条件)可以是任何枚举类型;当switch控制表达式使用枚举类型时,后面case表达式中的值可以直接使用枚举值的名字,而无需添加枚举类作为限定...(3)所有枚举类都继承了 java.lang.Enum 抽象类,所以枚举类可以直接使用 java.lang.Enum 类中所包含的方法 //java.lang.Enum package java.lang...> other = (Enum)o; Enum self = this; if (self.getClass() !...Operation2.DIVIDE.eval(4,2)); //2.0 } } 需要注意的是:枚举类里定义抽象方法时不能使用 abstract 关键字将枚举类定义成抽象类,因为系统会自动为它添加

    4.1K20

    C++枚举类型enum与enum class

    参考链接: C++枚举 文章目录  一.关于枚举类型二.枚举类型enum的使用三.枚举类型enum class的使用 一.关于枚举类型   1. 什么是枚举类型? ...在C++中,枚举类型分为不限定作用域(enum)和限定作用域(enum class)。   2. enum与enum class的区别? (为什么需要限定作用域?) ...enum与class enum区别在于是否限定其作用域。C语言规定,枚举类型(enum)的成员的可见范围被提升至该枚举类型所在的作用域内。...这便体现C++11引入枚举类(enum class)的重要性,enum class能够有效对枚举作用域进行限定,避免了枚举成员的重定义。 ...三.枚举类型enum class的使用  定义:  enum class/*枚举类型*/  {     /*枚举成员*/,                     /*枚举成员*/,

    5.8K41

    【mysql】ENUM类型

    ENUM类型 ENUM类型也叫作枚举类型,ENUM类型的取值范围需要在定义字段时进行指定。设置字段值时,ENUM类型只允许从成员中选取单个值,不能一次选取多个值。...举例: 创建表如下: CREATE TABLE test_enum( season ENUM('春','夏','秋','冬','unknow') ); 添加数据: INSERT INTO test_enum...VALUES('春'),('秋'); INSERT INTO test_enum VALUES('UNKNOW'); 忽略大小写 [在这里插入图片描述] 当添加个没有定义的数值时,就会报错 [在这里插入图片描述...] 当添加多个定义的值,也会报错 [在这里插入图片描述] 可以使用索引进行枚举元素的调用,下标从 1 开始# 允许按照角标的方式获取指定索引位置的枚举值 INSERT INTO test_enum VALUES...('1'),(3); SELECT * FROM test_enum;[在这里插入图片描述] 没有限制非空的情况下,可以添加null值# 当ENUM类型的字段没有声明为NOT NULL时,插入NULL

    2.4K20
    领券