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

枚举('是','不')vs tinyint - 使用哪一个?

枚举('是','不')和tinyint都是常用的数据类型,用于表示布尔值或者二进制状态。它们在不同的场景下有不同的使用优势。

枚举('是','不')是一种枚举类型,用于表示有限的离散取值。它可以提供更直观的语义,使得代码更易读和理解。在某些情况下,使用枚举('是','不')可以使代码更加简洁,减少了对数字的硬编码。例如,在表示用户的状态时,可以使用枚举('是','不')来表示用户的激活状态。

在数据库中,使用tinyint作为布尔类型的表示也是常见的做法。tinyint是一种较小的整数类型,只占用1个字节的存储空间。它可以表示0和1两个取值,分别对应于假和真。在某些情况下,使用tinyint可以节省存储空间,并且在进行比较和计算时具有更高的效率。

综上所述,选择使用枚举('是','不')还是tinyint取决于具体的需求和场景。如果需要表示有限的离散取值,并且更注重代码的可读性和语义,可以选择枚举('是','不')。如果需要节省存储空间并且对性能要求较高,可以选择tinyint。

腾讯云提供了丰富的云计算产品和服务,包括云数据库、云服务器、云原生应用引擎等。具体推荐的产品和产品介绍链接地址可以根据实际需求进行选择。

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

相关·内容

分享一下我怎么使用枚举

分享一下我怎么使用枚举的 一、介绍 对于java枚举陌生了,直接上代码 二、代码 使用了一个接口,用来规定一下里面的字段,统一下好处理 package com.banmoon.test.enums;...a.getCode().equals(code)).findFirst().map(EnableStatusEnum::getMsg).orElse(defaultMsg); } } 大家也都知道,枚举这东西对于一批固定的几个状态值进行管理...通常是某张表的一些状态值,如果一张表里面有多个状态值,我们可以这样写一个常量类,里面放置每一个字段的枚举类 package io.yunshuo.dataset.enums; import io.yunshuo.commons.tools.exception.RenException...private final Integer code; private final String msg; } } 三、最后 没什么技术含量的,就是分享一下,我这样使用枚举的...我觉得挺清晰明了的 我半月,你我一同共勉!!!

37740
  • 数据库MySQL-数据类型

    '女','保密') # 枚举 -> ); Query OK, 0 rows affected (0.06 sec) -- 插入的枚举值只能枚举中提供的选项 mysql> insert into...'); ERROR 1265 (01000): Data truncated for column 'sex' at row 1 枚举通过整形数字来管理的,第一个值1,第二个值2,以此类推,枚举值在数据库存储的整形数字...答:2字节=16位,216=65536,范围(0-65535),由于枚举从1开始,所以枚举值最多有65535个 1.2.4 集合(set) 从集合中选择一些值作为数据(多选) mysql> create...1.2.6 练习题 电话号码一般使用什么数据类型存储? varchar 手机号码用什么数据类型 char 性别一般使用什么数据类型存储?...char tinyint enum 年龄信息一般使用什么数据类型存储? tinyint 照片信息一般使用什么数据类型存储?

    1.9K20

    mysql学习总结02 — 数据类型

    tinyint(3):表示最长可以显示3位,unsigned说明只能正数,0~255不会超过三个长度tinyint(4):表示最长可以显示4位,-128~127 zerofill:从左侧开始填充0 (...mysql> alter table sunshine add field2 tinyint zerofill; 显示长度可以自己设定,超出长度(但是超出范围)不会影响,只会配合zerofill对长度不够的进行补充...'20'+year : '19'+year ) time 本质用来表示时间区间(xxx个小时),所以可表示范围较大 -838:59:59~838:59:59 time 录入时可使用一个简单的日期(可为负数...text,不再使用char和varchar char的长度L区分中英文 varchar需要记录数据长度(系统根据数据长度自动分配空间),所以每个varchar数据产生后,系统都会在数据后面增加1-2个字节的额外开销用来保存数据所占用的空间长度...--: | | 男 | | 女 | | 男 | 由于实际enum字段存储的结果数值,数据插入时可以使用对应的数值 特性:mysql自动进行类型转换,如果数据遇到 " + - *

    1.4K20

    MySQL数据类型

    数据类型分类 简单看一下数据可常见类型: 数值类型 tinyint类型 创建一个表,表中内容tinyint型有符号: mysql> create table if not exists t1 (...创建一个表,表中内容tinyint unsigned型无符号: mysql> create table if not exists t2( -> num tinyint unsigned...在MySQL表中建立属性列:列名称 类型例如:num tinyint unsigned 注意: 尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其如此...定长的意义,直接开辟好对应的空间 变长的意义,在超过自定义范围的情况下,用多少,开辟多少 日期和时间类型 常用的日期有如下三个: date :日期 'yyyy-mm-dd' ,占用三字节 datetime...数字”,因为这些选项的每个选项值依次对应如下数字:1,2,4,8,16,32,…最多64个 说明:建议在添加枚举值,集合值的时候采用数字的方式,因为不利于阅读。

    5810

    MyBatis的jdbcType和javaType详解

    为了表示这些数据类型,Java源码采用枚举来定义的: public enum JDBCType implements SQLType { TINYINT(Types.TINYINT),...SMALLINT(Types.SMALLINT), INTEGER(Types.INTEGER) } 枚举变量也是有类型的,也是有值的,正如整数变量整数类型,也有值大小一样,上述枚举变量值的定义通过...public class Types { public final static int TINYINT = -6; public final static int...#{updateBy,jdbcType=VARCHAR}, #{updateTime,jdbcType=DATE} ) 这样,保证了前四种不能为空的前提下...如果createBy为空,插入的时候mybatis不知道具体转换成什么jdbcType类型,通常会使用一个默认设置,虽然默认配置一般情况下不会出错,但是遇到个别情况还是会有问题的。

    9.7K10

    【MySql】MySql的数据类型

    反过来,我们如果已经有数据被插入到MySql中了,一定是插入的时候合法的 所以MySql中一般而言,数据类型本身也是一种约束,约束程序员尽可能进行正确的插入,约束使用者,如果你不是一个很好的使用者,...就能保证数据库中的数据可预期,完整的 MySql表中建立属性列:列名称 类型在后,如num tinyint unsigned; 这是tinyint类型我们所需要注意的,同时,尽量不使用unsigned...定长的意义,直接开辟好对应的空间 变长的意义,在超过自定义范围的情况下,用多少,开辟多少。...说明:建议在添加枚举值,集合值的时候采用数字的方式,因为不利于阅读。...,只能插入枚举的类型。

    24630

    大战SQL列类型及其列属性

    原文如下:和我关系密切的人理解我,讨厌我,有时甚至喜欢我,而那些与我联系不太密切的人被我的直率冒犯。很明显,我需要加深对别人的理解,别人也需要加深对我的理解。...上次讲到了列类型的枚举类型,那么接下来还有集合记录长度,列属性倒不是特别多,也就有空属性,列描述以及默认值,所以学起来也是超快~ 集合字符串 集合跟枚举实际上很类似,实际上存储的数值,而不是字符串(集合可以多选...) 集合定义:set 元素列表 使用使用元素列表中的多个元素,使用逗号分隔 插入数据:使用多个元素字符串组合,也可以直接插入数值 相关语句: -- 创建集合表 create table my_set...所以集合实际上很少用,枚举可能还会用,虽然效率低一些,但能判断元素的确切位置。...如添加tinyint字段后报错: ? 那么怎样才可以呢?

    1.3K30

    MySQL(三)

    ,L 长度范围 0 ~ 65535 Text: 文本类型,存储普通字符文本 Tinytext: 系统使用 1 个字节来保存,实际能存储 28 + 1 Text: 系统使用 2 个字节来保存,实际能存储...216 + 2 Mediumtext: 系统使用 3 个字节来保存,实际能存储 224 + 3 Longtext: 系统使用 4 个字节来保存,实际能存储 232 + 4 Enum: 枚举类型,在存入之前...,先预设几个项来限制可输入值,基本语法: enum({枚举值1}, {枚举值2}, …) Set: 将多个数据项同时保存,本质将指定的项按照对应的二进制位来控制,1 表示被选中,0 表示未被选中,基本语法...: set({值1}, {值2}, …) 注意: 如果数据长度超过 255 个字符,我们一般使用 text,而不是 char 或 varchar。...枚举类型在 MySQL 中实际存储的整型,注意从 1 开始。

    69520

    SqlParameter类中的两对好基友:SqlDbType与DbType、SqlValue与Value

    这两对属性光从MSDN上看不出什么区别,在到底选用其中哪个属性时给我造成过困扰,后来冥冥中觉得它们之间可能有关联,遂决定实验一下: 果然,它们之间内部私通的,赋值其中一个,另一个会跟着改变。...通过反编,发现SqlDbType和DbType通过一个叫MetaType的类实现的私通(这个类internal的,所以外部不能访问),而SqlValue和Value则是通过SqlParameter类中的一个私有字段...总之知道这两对基友有联动就行了,以后不用再纠结用哪一个。...(v=vs.80).aspx 关于SqlDbType和DbType的对应关系,可参看此表(但其中SqlDbType其实不是指SqlDbType枚举,但意思明白的):http://msdn.microsoft.com.../zh-cn/library/system.data.sqltypes(v=vs.80).aspx PS:原来cnblogs的超链默认原窗口打开,我想骂人

    67220

    MySQL2_字符集及数据类型

    1.保存数据的时候需要使用字符集 2.数据传输的时候也需要使用字符集 在存续的时候使用字符集 在MySQL的服务器上,在数据库中,在表的使用上,在字段的设置上...._general_ci 尾缀的都是区分大小写的 create table t2( str char(1) )charset=utf8mb4 collate=utf8mb4_bin; #看到尾缀边..._bin的都是区分大小的 #Linux中Mysql区分大小的 #需要自己去配置 #vim /etc/my.cnf #找到[mysqld] #1区分大小写,0区分大小写 lower_case_table_names...,那么这个数一定是非负数 #0-255 0-2^8-1 tinyint unsigned create table t3( age tinyint unsigned ); (3)显示宽度(zerofill...(enum) 多选一的时候使用的一种数据类型 在前端使用单选框的时候,枚举类型可以发挥作用 create table t6( name varchar(32), sex enum('男','女','

    40120

    MySQL数据类型 详细讲解

    8个字节 ---- 从表可知,不同类型整数存储所需的字节数不同的,占用字节数最小的TINYINT类型,占用字节最大的BIGINT类型,相应的占用字节越多的类型所能表示的数值范围越大。...字符串可以进行区分或者区分大小写的串比较,另外,还可以进行模式匹配查找。MySQL中字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。...,只能有一个枚举字符串值 1或2个字节,取决于枚举值数目(最大值65535) SET 一个设置,字符串对象可以有0个或多个SET成员 1,2,3,4或8个字节,取决于集合成员的数量(最多64个成员)...对于InnoDB存储引擎:使用可变长的数据列,因为InnoDB数据表的存储格式不分固定长度和可变长度,因此使用CHAR不一定比使用VARCHAR更好,但由于VARCHAR按照实际存的长度存储,比较节省空间...2.5 ENUM和SET     ENUM只能取单值,它的数据列表示一个枚举集合。它的合法值列表最多有65535个成员。因此,在需要从多个值中选取一个时,可以使用ENUM。

    1.5K10

    【mysql】整数类型

    (4) 表示的tinyint 范围内 -128~127 的符号位4位(符号+数字位数),所以默认数据的宽度为 4 ,其他同上。...从MySQL 8.0.17开始,整数数据类型推荐使用显示宽度属性。...,如果指定,则系统为每一种类型指定默认的宽度值。...适用场景 TINYINT:一般用于枚举数据,比如系统设定取值范围很小且固定的场景。 SMALLINT:可以用于较小范围的统计数据,比如统计工厂的固定资产库存数量等。...相反,使用 INT,就能确保有足够大的取值范围,不用担心数据超出范围影响可靠性的问题。 要注意的,在实际工作中,系统故障产生的成本远远超过增加几个字段存储空间所产生的成本。

    1.8K20

    MybatisPlus通用枚举

    一一《古诗十九首》 在项目开发中,经常数据库中的一个字段对应一个枚举 对于这些枚举,我们要使用数据库将他们的值映射起来 MybatisPlus为我们提供了优雅的解决方案 只需要配置中添加枚举处理器...,默认使用ordinalType default-enum-type-handler: org.apache.ibatis.type.EnumOrdinalTypeHandler 然后如果对于一些简单的枚举...,例如使用ordinal和数据库的值映射的枚举,我们可以直接使用 比如此处UserDetail中使用GenderEnum 在数据库中:0对应女,1对应男 package com.ruben.simplescaffold.enumration...; private final String desc; @EnumValue private final Integer value; } 注意此处对应数据库字段的长度为tinyint...指定长度,如果指定长度为1,则默认会失效 2.以及实现com.baomidou.mybatisplus.annotation.IEnum接口 package com.ruben.simplescaffold.enumration

    55320

    MySQL - 高效的设计MySQL库表

    ---- 第二范式 VS 第三范式 第二范式:非主键列是否依赖主键(包括一列通过某一列间接依赖主键),要是有依赖关系就是第二范式; 第三范式:非主键列是否直接依赖主键,不能那种通过传递关系的依赖...比如:人的年龄用 unsigned tinyint(范围 0~255,人的寿命不会超过 255 岁);海龟就必须 smallint,但如果太阳的年龄,就必须 int;如果所有恒星的年龄都加起来,...解决方案:使用 TINYINT,在 COMMENT 信息中标明被枚举的含义。...短数据使用 TINYINT 或 SMALLINT,比如:人类年龄,城市代码。 使用 UNSIGNED 存储非负数值,扩大正数的范围。 ---- int(3) int(5) 区别 ?...Char 类型;字符长度不相同的使用 Varchar 类型,预先分配存储空间,长度不要超过 255。

    3.3K12

    《高性能Mysql》读书笔记之Schema与数据类型优化

    BIGINT 64 -263~263 注意点 整数类型有可选的 UNSIGNED 属性,表示不允许负值,这样可以使正数的上限提高一倍 TINYINT 存储范围 -128~127 ,TINYINT...,每个值在行内用1~4个字节存储一个指针,然后再外部存储实际的值 使用枚举代替字符串类型 枚举使用整数存储而不是字符串 MYSQL存储的每个值在列表中的位置,而不是实际的值,实际的值存在 .frm...谨慎使用BIT类型,大部分应用避免使用此类型 SET 在MYSQL内部一个打包的位的集合表示 改变列的定义的代价很高,需要alter table 和 枚举增长一样一样的 二、MySQL Schema...设计中的陷阱 太多的列 太多的关联 单个查询最好在12个表以内做关联 全能的枚举即过度使用枚举 变相的枚举即避免滥用SET,考虑使用枚举代替集合 三、范式和反范式 范式的优点 范式化的更新操作通常比反范式化要快...优化 现在一台不常用的服务器上进行ALTER TABLE 操作,然后和提供服务的主库进行切换 用要求的表结构创建一张和原表无关的新表,然后通过重命名和删表方式交换量表数据 直接修改 .frm 表而涉及表数据

    16930

    MySQL建表数据类型的选择

    一般情况下,应该尽量使用可以正确存储数据的最小数据类型。例如只需要存 0~200,tinyint unsigned 更好。...这里有两个例子:一个应该使用 MySQL 内建的类型(date, time, datatime)而不是字符串来存储日期和时间,另一个应该用无符号整型存储 IP 地址。 尽量避免NULL。...整数类型:(tinyint,smallint,mediumint,int,bigint) 存储(字节) 存储(位) 有符号范围 无符号范围 TINYINT 1 8 -128 ~127 0~255 SMALLINT...如果使用数字作为枚举常量,这种双重性很容易导致混乱,例如 enum('1', '2', '3') 。建议尽量避免这么做。 枚举字段按照内部存储的整数而不是定义的字符串进行排序的。...用整数保存时间戳的格式通常不方便处理,所以我们推荐这么做。(对于这点很多公司项目中用整数存储,我也查了资料,使用整数的理由一般日期比较,计算时整数更好处理)

    5.2K10

    数据模型文件

    XCode的数据模型文件就是一个Model.xml,(名字可变),同目录配套Build.tt,用于在vs里调用XCode生成基于xml模型文件的多个实体类文件。...字符串长度Length默认50,建议小于50,-1表示最大ntext 其它字段建议设置长度,特别建议给Double和Decimal设置精度 字段Column只需要DataType指定.Net类型即可...,反向工程会根据使用数据库的不同而映射到不同数据库类型。...Column支持Type指定枚举类型,建议带命名空间的全名。例如上面User表中Sex类型的字段就是枚举SexKinds Indexes内放置该表所有索引。...Boolean 布尔型 bit 强烈 MySql中建议tinyint替代枚举来实现布尔型 Int64 长整型 long 强烈 有可能超过21亿的整数,选长整型 Decimal 十进制 money 慎用

    82320
    领券