【clickhouse专栏】基础数据类型说明

│ IntervalHour │ 0 │ │

│ UInt256 │ 0 │ │

│ Int16 │ 0 │ │

│ LowCardinality │ 0 │ │

│ AggregateFunction │ 0 │ │

│ Nothing │ 0 │ │

│ Decimal256 │ 1 │ │

│ Tuple │ 0 │ │

│ Array │ 0 │ │

│ Enum16 │ 0 │ │

│ IntervalMinute │ 0 │ │

│ FixedString │ 0 │ │

│ String │ 0 │ │

│ DateTime │ 1 │ │

│ Map │ 0 │ │

│ UUID │ 0 │ │

│ Decimal64 │ 1 │ │

│ Nullable │ 0 │ │

│ Enum │ 0 │ │

│ Int32 │ 0 │ │

│ UInt8 │ 0 │ │

│ Date │ 1 │ │

│ Decimal32 │ 1 │ │

│ UInt128 │ 0 │ │

│ Float64 │ 0 │ │

│ SimpleAggregateFunction │ 0 │ │

│ Nested │ 0 │ │

│ DateTime64 │ 1 │ │

│ Int128 │ 0 │ │

│ Decimal128 │ 1 │ │

│ Int8 │ 0 │ │

│ Decimal │ 1 │ │

│ Int256 │ 0 │ │

│ IntervalWeek │ 0 │ │

│ UInt64 │ 0 │ │

│ Enum8 │ 0 │ │

│ DateTime32 │ 1 │ │

│ UInt16 │ 0 │ │

│ Float32 │ 0 │ │

│ INET6 │ 1 │ IPv6 │

│ INET4 │ 1 │ IPv4 │

│ BINARY │ 1 │ FixedString │

│ NATIONAL CHAR VARYING │ 1 │ String │

│ BINARY VARYING │ 1 │ String │

│ NCHAR LARGE OBJECT │ 1 │ String │

│ NATIONAL CHARACTER VARYING │ 1 │ String │

│ NATIONAL CHARACTER LARGE OBJECT │ 1 │ String │

│ NATIONAL CHARACTER │ 1 │ String │

│ NATIONAL CHAR │ 1 │ String │

│ CHARACTER VARYING │ 1 │ String │

│ LONGBLOB │ 1 │ String │

│ MEDIUMTEXT │ 1 │ String │

│ TEXT │ 1 │ String │

│ TINYBLOB │ 1 │ String │

│ VARCHAR2 │ 1 │ String │

│ CHARACTER LARGE OBJECT │ 1 │ String │

│ DOUBLE PRECISION │ 1 │ Float64 │

│ LONGTEXT │ 1 │ String │

│ NVARCHAR │ 1 │ String │

│ INT1 UNSIGNED │ 1 │ UInt8 │

│ VARCHAR │ 1 │ String │

│ CHAR VARYING │ 1 │ String │

│ MEDIUMBLOB │ 1 │ String │

│ NCHAR │ 1 │ String │

│ CHAR │ 1 │ String │

│ SMALLINT UNSIGNED │ 1 │ UInt16 │

│ TIMESTAMP │ 1 │ DateTime │

│ FIXED │ 1 │ Decimal │

│ TINYTEXT │ 1 │ String │

│ NUMERIC │ 1 │ Decimal │

│ DEC │ 1 │ Decimal │

│ TINYINT UNSIGNED │ 1 │ UInt8 │

│ INTEGER UNSIGNED │ 1 │ UInt32 │

│ INT UNSIGNED │ 1 │ UInt32 │

│ CLOB │ 1 │ String │

│ MEDIUMINT UNSIGNED │ 1 │ UInt32 │

│ BOOL │ 1 │ Int8 │

│ SMALLINT │ 1 │ Int16 │

│ INTEGER SIGNED │ 1 │ Int32 │

│ NCHAR VARYING │ 1 │ String │

│ INT SIGNED │ 1 │ Int32 │

│ TINYINT SIGNED │ 1 │ Int8 │

│ BIGINT SIGNED │ 1 │ Int64 │

│ BINARY LARGE OBJECT │ 1 │ String │

│ SMALLINT SIGNED │ 1 │ Int16 │

│ MEDIUMINT │ 1 │ Int32 │

│ INTEGER │ 1 │ Int32 │

│ INT1 SIGNED │ 1 │ Int8 │

│ BIGINT UNSIGNED │ 1 │ UInt64 │

│ BYTEA │ 1 │ String │

│ INT │ 1 │ Int32 │

│ SINGLE │ 1 │ Float32 │

│ FLOAT │ 1 │ Float32 │

│ MEDIUMINT SIGNED │ 1 │ Int32 │

│ BOOLEAN │ 1 │ Int8 │

│ DOUBLE │ 1 │ Float64 │

│ INT1 │ 1 │ Int8 │

│ CHAR LARGE OBJECT │ 1 │ String │

│ TINYINT │ 1 │ Int8 │

│ BIGINT │ 1 │ Int64 │

│ CHARACTER │ 1 │ String │

│ BYTE │ 1 │ Int8 │

│ BLOB │ 1 │ String │

│ REAL │ 1 │ Float32 │

└─────────────────────────────────┴──────────────────┴─────────────┘




[]( )二、基础数据类型

-----------------------------------------------------------------



clickhouse和传统的数据库一样,提供了基础的数据类型,这一部分就简单介绍一下,相信学过编程语言的同学对这一部分并不陌生。



### []( )整数类型



整数类型,IntN随着N的增大,整型数值的范围扩大。U表示unsigned无符号,无符号就是没有负数符号,只能存储大于等于0的树。



*   有符号整型(IntN):Int8、Int16、Int32、Int64、Int128、Int256。数值范围是【-2^(N-1) ~ 2^(N-1)-1】,比如:Int8(-128到127)

    

*   无符号整型(UIntN):UInt8、UInt16、UInt32、UInt64、UInt128、UInt256。数值范围是【0 ~ 2^N-1】,比如:UInt8(0到255)

    



### []( )浮点类型



*   单精度浮点数Float32,学过C、java、mysql的朋友把它当作float数据类型使用即可。**从小数点后第8位起会发生精度丢失**。

    

*   双精度浮点数Float64,学过C、java、mysql的朋友把它当作double数据类型使用即可。**从小数点后第17位起会发生精度丢失**。

    



### []( )Decimal类型



有的时候Float32、Float64无法满足计算精度的要求,我们就需要使用Decimal数据类型。ClickHouse 提供了 Decimal32、Decimal64 和 Decimal128 三种精度的Decimal。在定义表字段的类型时,可以通过两种形式声明:简写方式有 Decimal32(S)、Decimal64(S)、Decimal128(S) 三种,原生方式为 Decimal(P, S),表示该定点数的整数位加上小数位的总长度最大为 P,其中小数位长度最多为 S。![图片](https://img-blog.csdnimg.cn/img_convert/d182f737e2fc4390b9e9d5ef77cf2fec.png)参考下面的SQL及输出结果进行理解和学习



SELECT

  toDecimal64(2, 3) AS x,   --数值为2,精度为3,所以2.000

  toTypeName(x) AS xtype,

  toDecimal32(2, 2) AS y,   --数值为2,精度为2,所以2.00

  toTypeName(y) as ytype,

  x + y AS a,  --2.000 + 2.00,加减法取最大精度。所以4.000

  toTypeName(a) AS atype,

  x * y AS b,  --2.000*2.00,乘法的精度值相加(2+3=5)。所以4.00000

  toTypeName(b) AS btype,

  x / y AS c, --2.000/2.00,被除数2.000精度是3,结果精度等于被除数精度。所以1.000

  toTypeName(c) AS ctype;

总结

大型分布式系统犹如一个生命,系统中各个服务犹如骨骼,其中的数据犹如血液,而Kafka犹如经络,串联整个系统。这份Kafka源码笔记通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码。

麻烦帮忙转发一下这篇文章+关注我

就这一次!拼多多内部架构师培训Kafka源码笔记(现已绝版)

x / y AS c, --2.000/2.00,被除数2.000精度是3,结果精度等于被除数精度。所以1.000

  toTypeName(c) AS ctype;

总结

大型分布式系统犹如一个生命,系统中各个服务犹如骨骼,其中的数据犹如血液,而Kafka犹如经络,串联整个系统。这份Kafka源码笔记通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码。

麻烦帮忙转发一下这篇文章+关注我

[外链图片转存中…(img-Wrc4fcz5-1714494583865)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 29
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值