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

当我运行"SELECT 0 AS COL..“时,MySQL列类型返回decimal或bigint。

当运行"SELECT 0 AS COL.."时,MySQL列类型返回decimal或bigint取决于MySQL版本和配置。

在MySQL 5.7及更早的版本中,当使用"SELECT 0 AS COL.."时,MySQL会将列类型默认设置为decimal。decimal是一种精确数值类型,用于存储小数或整数值。它具有可变精度,可以根据需要存储大范围的数字。

在MySQL 8.0及更新的版本中,默认情况下,当使用"SELECT 0 AS COL.."时,MySQL会将列类型设置为bigint。bigint是一种整数类型,用于存储大整数值。它可以存储更大的整数范围,但不支持小数。

这个选择是由MySQL的内部实现决定的,根据版本和配置的不同可能会有所不同。如果需要确切的列类型,可以使用CAST函数来显式指定列类型,例如"SELECT CAST(0 AS decimal) AS COL.."或"SELECT CAST(0 AS bigint) AS COL.."。

以下是两个相关的腾讯云产品和产品介绍链接地址:

  1. 云数据库 MySQL:腾讯云提供的一种高性能、可扩展的云数据库服务,适用于各种规模的应用程序。它提供了高可用性、自动备份、数据恢复等功能。了解更多信息,请访问:https://cloud.tencent.com/product/cdb_mysql
  2. 云数据库 TencentDB for MySQL:腾讯云提供的一种全托管的MySQL数据库服务,具有高可用性、自动备份、数据恢复等功能。它还提供了性能优化、安全防护、监控报警等功能。了解更多信息,请访问:https://cloud.tencent.com/product/tcdb_mysql
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

理解 MySQL 中的数字类型

存储字符串指定的类型 VARCHAR(50) 中可接收一个数字作为长度,其实除了字符串类型,数字类型也是可指定该参数的,比如 INT(10),BIGINT(20)。...如果指定了 ZEROFILL,MySQL返回该数字,对于实际位数小于展示宽度的数字,将自动在左边补零。比如类型为 INT(5),实际存储了数字 5,返回时会得到 00005。...假如在 Node.js 中使用 mysqljs/mysql 作为数据库连接的模块,在执行请求,其回调中返回的 fields 入参便包含了相应的 meta 信息。...因为 D 缺省时默认为 0,所以 DECIMAL(M) 表示 DECIMAL(M,0),现时,MySQL 中,M 缺省时默认为 10,所以 DECIMAL 表示 DECIMAL(10,0)。...进行数字计算如果有溢出,也会抛错,比如对于 BIGINT 其最大值为 9223372036854775807,因为 MySQL 中默认对数字类型是有符号类型,如下操作会抛错, mysql> SELECT

2.1K20

SQL注入攻击导致BIGINT溢出错误

2、缓冲区溢出 缓冲区是用户为程序运行时在计算机中申请的一段连续的内存,它保存了给定类型的数据,而缓冲区溢出就是通过向程序的缓冲区中写入超过其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其他的命令...# In decimal mysql> select18446744073709551615+1; ERROR 1690 (22003): BIGINT UNSIGNEDvalue is out of...我们知道,如果一个查询成功返回,其返回值为0,所以对其进行逻辑非的话就会变成1,举例来说,如果我们对类似(select*from(select user())x)这样的查询进行逻辑非的话,就会有: mysql...DumpIn One Shot 我们能够一次性转储所有数据库、和数据表吗?答案是肯定的。但是,当我们从所有数据库中转储数据表和的时候,只能得到较少的结果,毕竟我们是通过错误消息来检索数据的。...假设,我们在一个数据库中创建了一个31的数据表。 那么,我们只能看到27个结果,而我的其他4个表和该用户数据表的其他都无法返回。 ?

2K60
  • Hive SQL使用过程中的奇怪现象|避坑指南

    在Hive和MySQL中,运算两个整数相除,输出的结果都是decimal类型。...,则会返回整形类型 -- Hive中查询 select 10 div 3 -- 输出:3 -- 在MySQL中查询 select 10 div 3 -- 输出:3 区分大小写...1 可以看出:相同的SQL语句,如果使用MySQL,则同一查询将返回1,因为在进行字符串比较MySQL不区分大小写。...非数值类型的字符串转为数值类型 使用SQL,我们可以使用CAST命令转换表中的数据类型。如果要将字符串列转换为整数,可以执行以下操作。...-- 返回0 Hive中的视图与SQL查询语句 当我们在Hive中创建视图,其底层是将视图对应的SQL语句存储到了一张表中的某个字段中,以Hive为例,其元数据中存在下面的一张表: CREATE

    2.3K21

    MySQL文档阅读(一)-数字类型

    当业务需求(例如涉及金钱的数据)要求在数据库中存储精确数值,需要使用这些类型。在MySQL中NUMERIC也实现为DECIMAL,因此后续针对DECIMAL的叙述也适用于NUMERIC。...在使用ZEROFILL属性,数字左边空余的部分会由0填充,例如:对于一个定义为INT(4) ZEROFILL的,给定一个值为5,将显示为0005。...如果你将256存入TINYINT或者TINYINT UNSIGNEDMySQL会分别存储127255。...当把一个溢出值赋值给一个浮点数或者一个FIXED-POINTMySQL会截断并存储该数据类型能表示的边界值。 在numberic表达式求值过程中发生溢出,则会导致一个错误。...例如,SIGNED BIGINT的最大值是9223372036854775807, 因此如下的表达式会产生错误: mysql> SELECT 9223372036854775807 + 1; ERROR

    1.3K10

    MySQL数据类型

    MySQL表中建立属性:列名称 类型例如:num tinyint unsigned 注意: 尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其如此...,还不如设计时,将int类型提升为bigint类型。...当我们的表的编码是utf8,varchar(n)的参数n最大值是65532/3=21844[因为utf中,一个字符占用3个字节],如果编码是gbk,varchar(n)的参数n最大是65532/2=32766...“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,3,…最多65535个;当我们添加枚举值,也可以添加对应的数字编号。...MySQL筛选函数 集合查询使用find_ in_ set函数: find_in_set(sub,str_list) :如果 sub 在 str_list 中,则返回下标;如果不在,返回0; str_list

    6410

    MySQL】数据库的数据类型

    数据类型 一、数据类型分类 mysql 中的数据类型分类如下,其中红色字体的为常用的类型: 二、数值类型 mysql 中表的建立属性:列名称 数据类型,例如 num int,它与我们平时写的语言数据类型是倒过来的...,注意:尽量不使用 unsigned,对于 int 类型可能存放不下的数据,int unsigned 同样可能存放不下,与其如此,还不如设计时,将 int 类型提升为 bigint 类型。...1 没有出现任何东西,其实 bit 字段在显示,是按照 ASCII码 对应的值显示,例如我们插入 65,其对应的ASCII码 值位 ‘A’: 如果我们有这样的值,只存放01,例如性别,只有男和女,...;而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,3,…最多 65535 个;当我们添加枚举值,也可以添加对应的数字编号。...find_in_set(sub, str_list) :如果 sub 在 str_list 中,则返回下标;如果不在,返回 0;str_list 用逗号分隔的字符串。

    15410

    深入解析实时数仓Doris:Rollup上卷表与查询

    那么当我们进行如下查询: SELECT user_id, sum(cost) FROM table GROUP BY user_id; Doris 会自动命中这个 ROLLUP 表,从而只需扫描极少的数据量...max_dwell_time min_dwell_time 北京 20 35 10 2 北京 30 2 22 22 上海 20 200 5 5 广州 32 30 11 11 深圳 35 111 6 3 当我们进行如下这些查询...那么当我们进行如下查询mysql> SELECT * FROM table where age=20 and message LIKE "%error%"; 会优先选择 ROLLUP 表,因为 ROLLUP...查询能否命中 ROLLUP 的一个必要条件(非充分条件)是,查询所涉及的所有(包括 select list 和 where 中的查询条件等)都存在于该 ROLLUP 的中。...以下是可以命中Rollup的一些聚合查询的种类, 类型 查询类型 Sum Distinct/Count Distinct Min Max APPROX_COUNT_DISTINCT Key false

    33210

    MySQL基础数据类型

    比如图片,视频等找一个文件服务器,数据库中只存路径url。 #3. 时间类型: 最常用:datetime #4....#CHAR类型 对于 CHAR 类型的字符串,MySQL 数据库会自动对存储的右边进行填充(Right Padded)操作,直到字符串达到指定的长度 N。...而在读取该,MySQL 数据库会自动将 填充的字符删除。...这时再通过 SELECT 语句进行查询,得到的结果是“abc ”,abc 右边有 7 个填充字符 0x20,并通 过 HEX 函数得到了验证。这次 LENGTH 函数返回的长度为 10。...需要注意的是,LENGTH 函数返回的是字节长度,而不是字符长度。对于多字节字符集,CHAR(N)长度的最多 可占用的字节数为该字符集单字符最大占用字节数 *N。

    5K10

    python第十二周:MySql

    Decimal[Dec]、Numeric),以及近似数值数据类型(Float、Real、Double Precision) 作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT..., 如果左边的值小于等于右边的值返回true (A<=B)返回true #like 子句(模糊查询) 格式:select field1,field2。。。。。...其中%表示任意0多个字符 #MySQL排序 格式:select field1,filed2,。。。。 from table_name1,table_name2。。。。           ...#修改数据表结构 当我们需要修改数据表名或者修改数据表字段,就需要使用到MySQL alter命令 *删除字段 alter table table_name drop column_name; *添加字段...#MySQL null值处理 为处理当提供的查询条件nullMySQL提供了三大运算符 名称 描述 IS NULL 当的值NULL,返回true IS NOT NULL 当的值不是NULL

    1.3K30

    MySQL(1)——数据类型的选择(一)

    尽量避免 NULL:如果查询中包含可为 NULL 的,对 MySQL 来说更难优化,因为可为 NULL 的使得索引、索引统计和值比较都更负责。...不过一般将 NULL 的改为非 NULL 性能提升比较小,在对应列建索引应避免设计为可为 NULL。 二、整数类型 存储整数,可以使用的类型及存储空间如下 ?...MySQL 可以为整数类型指定宽度,比如 INT(11),对大多数应用来说是没有意义的,对于存储来说也没有影响。 三、实数类型 可以使用 DECIMAL 存储比 BIGINT 还大的整数。...数据量大的情况下,可以使用 BIGINT 替代,进行相应位数的乘除倍数就行,存储比 DECIMAL 小,计算精确。...当存储 char 值MySQL 会删除所有的末尾空格 ② char 适合存储很短的字符串,所有值都接近同一个长度 两者使用区别 ① 对于经常变更的,使用 char 更好,因为定长的 char

    1.1K20

    MySQL基础『数据类型

    (1, 3, 100), (0, 2, 255); mysql> select * from testBIT; 这是因为 查表,位字段类型默认按 ASCII 的形式显示,查表可以发现,100 正好对应字符...注意: 位字段类型限制的是比特位,而非位数,3 的二进制表示为 0011,已经使用了两个比特位,自然也就超出范围了,所以 bit(1) 只能插入 0 1 3.浮点数 3.1.FLOAT MySQL...这是因为 当小数部分不足MySQL 自动补齐,补齐后,实际插入的值为 -100.00,有五位数,超出范围,自然就被拦截了 MySQL 也并非是铁面无私,当我们插入的数据小数部分超过指定精度MySQL...> desc commentWall; 向其中插入一些留言信息,并在片刻之后修改其中的留言信息 注意: 因为时间戳不允许用户手动插入,所以在插入数据,不能再使用全插入的方式,需要指明往哪些中插入数据...,不存在则返回 0,在 MySQL 中可以直接通过 select 指令执行函数 mysql> select find_in_set('a', 'a,b,c,d,e'); mysql> select find_in_set

    20910

    MySQL支持的数据类型

    关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。 MySQL支持的整数类型有TINYINT、MEDIUMINT和BIGINT。...每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值使用"零"值。 TIMESTAMP类型有专有的自动更新特性,将在后面描述。...在存储检索过程中不进行大小写转换。 CHAR的长度固定为创建表是声明的长度,范围(0-255);而VARCHAR的值是可变长字符串范围(0-65535)。 ? ?...返回顶部 ENUM和SET类型 ENUM中文名称叫枚举类型,它的值范围需要在创建表通过枚举方式显示。ENUM只允许从值集合中选取单个值,而不能一次取多个值。...SET和ENUM非常相似,也是一个字符串对象,里面可以包含0-64个成员。根据成员的不同,存储上也有所不同。set类型可以允许值集合中任意选择1多个元素进行组合。

    1.6K30

    MySQL-2

    对于DECIMAL,可以指定小数点前后所允许的最大位数,则会影响的空间消耗。DECIMAL只是一种存储格式,在计算中DECIMAL会转换为DOUBLE类型。...有很多种方法可以指定浮点所需要的精度,这使得MySQL会选择不同的数据类型或在存储对值进行取舍。这些精度定义是非标准的,所以建议只指定数据类型而不指定精度。...浮点类型在存储同样范围的值,通常比DECIMAL使用更少的空间。应尽量支队小树进行精确计算才使用DECIMAL。在数据量比较大,可以使用BIGINT代替DECIMAL。...数据类型 大小 范围 说明 tinyint 1个字节 有符号(-128 到127),无符号(0到255) 默认为有符号 int 4个字节 有符号(- 2^23 ~ 2^23 – 1) 默认为有符号 bigint...MySQL填充BINARY采用的是\0而不是空格,在检索也不会去掉填充值。

    81810

    MySQL 数值类型溢出处理

    来,考考大家一个问题,在 MySQL 中当某一设置为 int(0) 时会发生什么 ?...MySQL 数值类型溢出处理 当 MySQL 在某个数值列上存储超出列数据类型允许范围的值,结果取决于当时生效的 SQL 模式 如果启用了严格的 SQL 模式,则 MySQL 会根据 SQL 标准拒绝带有错误的超出范围的值...,并且插入失败 如果没有启用任何限制模式,那么 MySQL 会将值裁剪到数据类型范围的上下限值并存储 当超出范围的值分配给整数列MySQL 会存储表示数据类型范围的相应端点的值 当为浮点定点分配的值超出指定...(默认)精度和比例所隐含的范围MySQL 会存储表示该范围的相应端点的值 这个,应该很好理解吧?...如果为负,则会引发错误 mysql> SET sql_mode = ''; Query OK, 0 rows affected (0.00 sec) mysql> SELECT CAST(0 AS

    2.2K20

    SQL学习笔记三(补充-2)之MySQL数据类型

    #CHAR类型 对于 CHAR 类型的字符串,MySQL 数据库会自动对存储的右边进行填充(Right Padded)操作,直到字符串达到指定的长度 N。...而在读取该,MySQL 数据库会自动将 填充的字符删除。...这时再通过 SELECT 语句进行查询,得到的结果是“abc ”,abc 右边有 7 个填充字符 0x20,并通 过 HEX 函数得到了验证。这次 LENGTH 函数返回的长度为 10。...需要注意的是,LENGTH 函数返回的是字节长度,而不是字符长度。对于多字节字符集,CHAR(N)长度的最多 可占用的字节数为该字符集单字符最大占用字节数 *N。...(0.03 sec) mysql> SELECT @a:='MySQL 技术内幕 '; Query OK, 0 rows affected (0.03 sec) mysql> SELECT @a,HEX

    1.8K40
    领券