当前位置:   article > 正文

hive int bigint 强类型_数据库之mysql的基础类型

hive int(11) unsigned

1. bit(m)

二进制位,m表示二进制的长度,其范围为1-64,默认值为1

2. tinyint(m)

小整数,其相对于int范围较小,可用来保存一些小范围的整数数值

分为有符号和无符号类型,范围如下

signed: -128 -- 127

unsigned: 0 -- 255

注意:tinyint是占一个字节的,其中的m并不表示m个字节或m个tinyint数据,而是表示数据在显示的时候显示的最小长长度。如果字符长度小于m时,会拿某个字符进行填充。例如如果为2的话,插入1时,显示为01,使用0字符进行填充。默认为1

3. int(m)

整型数值,分为有符号和无符号,范围如下

signed: -2147483648 -- 2147483647

unsigned: 0 -- 4294967295

注意:int类型在mysql中占4个字节,其中的m也不表示m个int,而是与tinyint一样,表示最短显示长度,默认为1.

4. bigint(m)

相对于int类型,可以表示更大的范围,分为有符号和无符号类型

signed: -9223372036854775808 -- 9223372036854775807

unsiigned: 0 -- 18446744073709551615

注意: bigint的m与int的用法一致

5. float(m ,d)

单精度浮点数,不能表示精准的小数值。m表示有效数字的总个数,d表示小数点后的个数

分为有符号和无符号类型,范围如下

signed: -3.402823466E+38 -- -1.175494351E-38, 0, 1.175494351E-28 -- 3.402823466E+38

unsigned: 0, 1.175494351E-38 -- 3.402823466E+38

注意: 当数值越大时,越不精准。

6. double(m, d)

双精度浮点数,不能表示精准的小数值。m表示有效数字的总个数,d表示小数点后的个数

分为有符号和无符号两种,范围如下

signed: -1.7976931348623157E+308 -- -2.2250738585072014E-308, 0, 2.2250738585072014E -- 1.7976931348623157E+308

unsigned: 0, 2.2250738585072014E-308 -- 1.7976931348623157E+308

注意: 当数值越大时,越不精准。

7. decilaml(m, d)

能够表示一个精准的小数值。m表示有效数字的总个数,不包括负号。d表示小数点后的个数。

m的范围:1 -- 65

d的范围: 0 -- 30

注意:msql要求d小于等于m。decimal能够存储精确值的原因是因为其内部使用字符串存储该数据

8. char(m)

表示固定长度的字符串,m表示字符串的长度。最大长度为255

注意:如果输入的字符串长度小于m,其大小也是m

9. varchar(m)

表示变长的字符串,m为设置的字符串最大长度,最大为255

注意:虽然varchar是变长的字符串,能够有效节省空间大小,但是char类型的数据处理速度相对来说比varchar更快

10. text

表示用于保存变长的字符串,其范围最多可以达到65535(2^16-1)

11. mediumtext

相对于text,可以保存更长的字符串,其范围可以达到16777215(2^24-1)

13. longtext

相对于mediumtext,能保存更长的字符串,范围可以达到4GB

14. enum

枚举类型,一般是用来作为限定值的取值范围。它是一种单选的类型,必须选定给定的几个值中的某一个,适合存储表中的单选值。

例如:

create table animals( e enum('fish', 'dog', 'cat') not null );insert into animals values('fish'), ('dog'), ('cat');

15. set

集合类型。它是一种多选的数据类型,可以选择给定的几个值中的某几个,适合存储表中的多选值。

例如:

create table person( id int auto_increament primary key, sex enum('man','woman'), hobby set('music','study','movie'));insert into person(id, sex, hobby) values(null, 'man', 'music');insert into person(id, sex, hobby) values(null, 'woman', 'study,movie');

16. time类型

用来存储时间数据。格式为 HH:MM:SS,在mysql中需要3个字节进行存储。

存储范围为: -838:59:59 -- 838:59:59

允许使用字符串或数字为time列赋值。

例如:

create table time( t time);insert into time values('10:55:40');insert into time values(123123);

17. date类型

用来存储日期。格式为yyyy-mm-dd,在mysql中占3个字节

存储范围: 1000-01-01 -- 9999-12-31

例如

create table date_test( d date );insert into date_test values('2019-11-25');insert into date_test values('2019-3-2');insert into date_test values('2019#3#2');insert into date_test values('2019:4:2');insert into date_test values('2019.5.2');

18. datetime类型

用来存储日期和时间。格式为"yyyy-mm-dd hh:mm:ss",在mysq中占8个字节

存储范围: 1000-01-01 00:00:00 -- 9999-12-31 23:59:59

create table datetime_test (  d datetime );  insert into datetime_test values('2019-11-25 11:16:40'); insert into datetime_test values(now());

19. timestamp类型

用来存储时间戳。格式为“yyyymmddhhmmss”,显示为"yyyy-mm-dd hh:mm:ss"。在msql中占4个字节

存储范围为: 1970-01-01 00:00:01 UTC -- 2038-01-19 03:14:07

注意:它存储的是由格林尼治时间1970年1月1日到当前时间的秒数,但是显示为"yyyy-mm-dd hh:mm:ss"。

create table timestamp_test( d timestamp );insert into timestamp_test values('2019-11-12 12:12:12');insert into timestamp_test values('2019/9/12 13:13:13');insert into timestamp_test values(null); //系统自动分配最近的时间,也就是当前时间

20.

用来存储年份数据。格式为“yyyy”,在mysql中占1个字节

存储范围为:1901 -- 2155

create table year_test( y year );insert into year_test values('1979');insert into year_test values('1900');//超出范围

结束

以上简单介绍了mysql中一些基本的数据类型,如有错误,敬请指正,谢谢

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/529282
推荐阅读
相关标签
  

闽ICP备14008679号