首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

要慎用mysql的enum字段的原因

PHP低级编程的兄弟是这样来看这个问题的,我作下笔录如下,期望能客观的理解这个enum字段的优点及缺点: 膘哥观点:     enum有优点。但个人觉得。。。...缺点更多,客观的讲:优点主要是在建数据 库的时候就可以把一些值给规范好。缺点是。。enum不适合PHP。...,这是PHP和 mysql 在使用enum 最大的问题。所以。。安心点啦。干脆点直接tinyint。...规劝: 1)enum是整型这样的错误很容易发生,尤其是php弱类型的,一般新来一个人,没注意enum类型,就会犯错。...这种字段的重复内容过多的,索引建不建,关系不大,这种在mysql叫索引的势太低,其查询效果不太好 https://www.cnblogs.com/-mrl/p/5096447.html 发布者:全栈程序员栈长

69020
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【MySql】MySql的数据类型

    数据类型分类 对于数据类型分类,这里简单分为数值类型(如BIT,BOOL,INT),文本、二进制类型(如CHAR,VARCHAR),时间日期(DATE),String类型(如ENUM类型),这里简单了解一下即可...of range value for column 'num' at row 1 mysql> 用tinyint unsigned数据类型创建表t2: mysql> create table if not...反过来,我们如果已经有数据被插入到MySql中了,一定是插入的时候是合法的 所以MySql中一般而言,数据类型本身也是一种约束,约束程序员尽可能进行正确的插入,约束使用者,如果你不是一个很好的使用者,...bit数据类型的表t3: mysql> create table if not exists t3( -> id int, -> online bit(1) -> ); Query...enum和set 语法: enum:枚举,“单选”类型; enum(‘选项1’,‘选项2’,‘选项3’,…); 该设定只是提供了若干个选项的值,最终一个单元格中,实际只存储了其中一个值;而且出于效率考虑

    26030

    MySQL中 enum 插入的时候注意事项

    后来发现是enum字段没有加引号搞的鬼。 结论:    enum的字段,在插入的时候,必须带上引号。否则会出现不可预期的问题。...+-----+-----+ 原因:    enum类型的字段插入数值的时候, 带引号的时候,插入的才是真正的数值。...ENUM枚举     一般不建议使用,后期不便于扩展。任何不在枚举的范围的值插入都会报错,一般用tinyint替代ENUM比较合适。      ENUM的字段值不区分大小写。...utm_source=tuicool&utm_medium=referral) 在建立enum类型的字段时,我们会给他规定一个范围比如 enum('a','b','c'),这时mysql内部会建立一张hash...同样,enum在mysql手册上的说明: ENUM('value1','value2',...) 1或2个字节,取决于枚举值的个数(最多65,535个值) 除非enum的个数超过了一定数量,否则他所占的存储空间也总是

    1.1K31

    检查 Python 中给定字符串是否仅包含字母的方法

    Python被世界各地的程序员用于不同的目的,如Web开发,数据科学,机器学习,并通过自动化执行各种不同的过程。在本文中,我们将了解检查python中给定字符串是否仅包含字符的不同方法。...检查给定字符串是否仅包含字母的不同方法 等阿尔法函数 这是检查 python 中给定字符串是否包含字母的最简单方法。它将根据字符串中字母的存在给出真和假的输出。...这是一种非常简单的方法,用于检查字符串是否仅包含字母。...: True 对于 Unicode 字符 这是一种非常特殊的情况,如果字符串被赋予 Unicode 字符的输入,则有可能显示错误的输出。...: True 结论 在 Python 中有许多方法可以确定给定字符串是否仅包含字母。

    23830

    MySQL的复杂数据类型,学会使用再也不怕复杂场景了、枚举(ENUM)、集合(SET)、JSON、空间数据类型

    MySQL数据库作为关系型数据库管理系统(RDBMS)中的佼佼者,提供了多种数据类型以满足不同应用场景的需求。...本文将深入探讨MySQL中的枚举类型(ENUM)、集合类型(SET)、JSON类型以及空间数据类型 枚举类型(ENUM) 枚举类型是一种用于存储固定值列表的数据类型。...,MySQL将抛出错误。...索引限制:虽然可以对JSON列进行索引,但索引的使用受限于JSON路径表达式。 数据验证:虽然MySQL会自动验证JSON数据的有效性,但错误的数据插入仍然可能导致应用错误。...JSON类型的特性和注意事项 数据验证 MySQL会自动验证插入到JSON列的数据是否为有效的JSON格式。如果数据不是有效的JSON,MySQL将拒绝插入并返回错误。

    17110

    MySQL中的数据类型_请列举MySQL中常见的数据类型

    大家好,又见面了,我是你们的朋友全栈君。   我在网上也搜过很多,就是想知道在数据库中的建表语句的字段类型对应Java实体类中属性的类型是什么。   ...结果网上一套一套的说法不一,完全不一致,有没有一致点的,不会错的!看我,你就有。   ...` enum('1','red') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, PRIMARY KEY (`int_unsigned...MySQL数据类型 Java实体类属性类型 说明 int Integer 不管是signed还是unsigned,Java实体类型都是Integer bigint Long 不管是bigint(xxx)...9.不建议使用enum、set类型,使用tinyint替代。 10.仅仅只有单个字符的字段用char(1),比如性别字段。

    1.9K30

    MySQL | 不同的数据类型

    数据定义语言:数据类型 数据类型:数字 类型 大小 说明 TINYINT 1字节 ^1 小整数 SMALLINT 2字节 普通整数 MEDIUMINT 3字节 普通整数 INT 4字节 较大整数 BIGINT...8字节 大整数 FLOAT 4字节 单精度浮点数 DOUBLE 8字节 双精度浮点数 DECIMAL ——– DECIMAL(10, 2) 1^ : (-2^7 --- +2^7-1) 不精确的浮点数...十进制的浮点数无法在计算机中用二进制精确表达 CREATE TABLE temp( id INT UNSIGNED PRIMARY KEY, num FLOAT(20,10) ) 0.2 ---...temp CREATE TABLE temp( id INT UNSIGNED PRIMARY KEY, num DECIMAL(20,10) ) 0.2 ----> 0.2000000000 数据类型...不固定长度字符串 TEXT 1 - 65535 字符 不确定长度字符串 MEDIUMTEXT 1 - 1 千 6 百万字符 不确定长度字符串 LONGTEXT 1 - 42 亿字符 不确定长度字符串 数据类型

    1.6K20

    MySQL支持的数据类型

    如果超出类型范围的操作,会发生”Out of range”错误提示。...日期时间类型 MySQL中有多种数据类型可以用于日期和时间的表示,不同的版本可能有所差异。 这些数据类型的主要区别如下。 如果要用来表示年月日,通常用DATE来表示。...如果只是表示年份,可以用YEAR来表示,它比DATE占用更少的空间。 每种日期时间类型都有一个有效值范围,如果超出这个范围,在默认的SQLMode下,系统会进行错误提示,并将以零值来进行存储。...MySQL包括了CHAR,VARCHAR,BINARY,VARBINARY,BLOB,TEXT,ENUM和SET等多种字符串类型 ?...如果裁剪非空格字符,则会造成错误(而不是警告)并通过使用严格SQL模式禁用值的插入。

    2.8K30

    MySQL(常见的数据类型)

    常见数据类型如下 数值型 整型 int 或 integer 小数 浮点数 单精度:float 双精度:double 定点数 numerice 字符型 短文本 定长 char 不定长 varchar...意思就是,char在定义长度时的长度,在后面存储数据时是不可变的。varchar反之。char是固定长度的字符,varchar可变长度的字符。...长文本 日期 枚举 类型用途ENUM 声明插入值的范围 使用方式: CREATE TABLE test_enum( n1 ENUM('a','b','c') --声明枚举的范围 ); INSERT...INTO test_enum(n1) values('a'); INSERT INTO test_enum(n1) values('b'); INSERT INTO test_enum(n1) values...('c'); INSERT INTO test_enum(n1) values('d'); -- 超出枚举范围的会报错 MySql中枚举类型数据的插入都是以文本类型或数值插入的,可以是具体的对应值和对应数值的文本或者对应数值

    1.1K10

    MySQL中的数据类型

    MySQL中定义数据字段的类型对数据库的优化是非常重要,它支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 数值类型 ? 日期和时间类型 ? 字符串类型 ?...CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同,它们的最大长度和是否尾部空格被保留等方面也不同,在存储或检索过程中不进行大小写转换。...BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串,也就是说,它们包含字节字符串而不是字符字符串,这说明它们没有字符集,并且排序和比较基于列值字节的数值值...BLOB 是一个二进制大对象,可以容纳可变数量的数据,上表所示中有共有4种类型,它们区别在于可容纳存储范围不同。...TEXT 用于存文本数据,对应BLOB的4种类型,4种类型存储的最大长度不同,可根据实际情况选择。

    2.8K20

    MySQL支持的数据类型

    数值类型 MySQL支持所有标准SQL数值数据类型。...BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。...对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。 返回顶部 ENUM和SET类型 ENUM中文名称叫枚举类型,它的值范围需要在创建表时通过枚举方式显示。...ENUM只允许从值集合中选取单个值,而不能一次取多个值。 SET和ENUM非常相似,也是一个字符串对象,里面可以包含0-64个成员。根据成员的不同,存储上也有所不同。...sec) # 选择enum('female','male')中的一项作为gender的值,可以正常插入 mysql> insert into t10 values ('nezha','male');

    1.6K30

    Mysql 的 bit 数据类型

    Mysql 的 bit 数据类型 bit类型 bit 类型不是对应true和false,也不是只有一位 示例 新建数据表test CREATE TABLE `test` ( `id` int(...结论 数字被转换成二进制 字符将被转换成ascii码 boolean 类型被转换成0或1 多选的应用 有以下选项:苹果(1),梨(2),西瓜(4),香蕉(8),可以选中其中任意几项,并使用一个字段保存...分别使用数字表示选项:苹果(1),梨(2),西瓜(4),香蕉(8) 转换成二进制为:苹果(0001),梨(0010),西瓜(0100),香蕉(1000) 将选中的数字相加(或进行位或运算),并存成...bit字段即可 读取结果时,将保存的字段与选项的代码进行位与运算即可 `` (adsbygoogle = window.adsbygoogle || []).push({});

    3.1K30

    mysql数据类型的选择

    2、浮点数和定点数 浮点数FLOAT、DOUBLE相对于定点数DECIMAL的优势是:在长度一定的条件下,浮点数能表示更大的数据范围。...由于TIMESTAMP列的取值范围小于DATETIME的取值范围,因此存储范围较大的日期最好使用DATETIME 4、CHAR和CARCHAR CHAR是固定长度字符,VARCHAR是可变长度字符。...5、ENUM与SET ENUM只能取单个值,它的数据列表是一个枚举集合。它的合法列表最多有65535个成员。...因此,在需要从多个值中选取一个时,可以使用ENUM.比如性别字段适合定义为ENUM类型,每次只能从男或女中取一个值。 SET可取多个值。它的合法列表最多有64个成员。空字符串也是一个合法的SET值。...在需要取多个值的时候,时合使用SET类型。比如,一个人的兴趣爱好,最好使用SET类型。 ENUM和SET的值是以字符串的形式出现的,但是在MYSQL内部以数值的形式存储它们。

    1K20
    领券