30位整数 mysql mysql中整型是什么

您所在的位置:网站首页 什么是整数类型的数据 30位整数 mysql mysql中整型是什么

30位整数 mysql mysql中整型是什么

2023-06-16 08:29| 来源: 网络整理| 查看: 265

MySQL中的数据类型

1 整体说明MYsql的数据类型#1. 数字:    整型:tinyint  int  bigint    小数:        float :在位数比较短的情况下不精准        double :在位数比较长的情况下不精准            0.000001230123123123            存成:0.000001230000

        decimal:(如果用小数,则用推荐使用decimal)            精准            内部原理是以字符串形式去存

#2. 字符串:    char(10):简单粗暴,浪费空间,存取速度快            root存成root000000    varchar:精准,节省空间,存取速度慢

    sql优化:创建表时,定长的类型往前放,变长的往后放                    比如性别           比如地址或描述信息

    >255个字符,超了就把文件路径存放到数据库中。            比如图片,视频等找一个文件服务器,数据库中只存路径或url。

#3. 时间类型:    最常用:datetime

#4. 枚举类型与集合类型   enum 和set

2 数值类型整型类型:TINYINT SMALLINT MEDIUMINT INT BIGINT作用:存储年龄、等级、id、各种号码等。说明:(1)默认是有符号的(2)定义无符号的数据类型:unsigned :表示无符号  当前字段添加约束示例:create table t2(x int unsigned);(3)该类型指定宽度时,仅仅只是指定查询结果的显示宽度,与存储范围无关(默认的显示宽度,都是在最大值的基础上加1),存储范围如下(4)为什么int类型默认显示宽度为11   int的存储宽度是4个Bytes,即32个bit,即2**32

    无符号最大值为:4294967296-1

    有符号最大值:2147483648-1

    有符号和无符号的最大数字需要的显示宽度均为10,而针对有符号的最小值则需要11位才能显示完全,所以int类型默认的显示宽度为11是非常合理的

========================================        tinyint[(m)] [unsigned] [zerofill]

            小整数,数据类型用于保存一些范围的整数数值范围:            有符号:                -128 ~ 127            无符号:                0 ~ 255

            PS: MySQL中无布尔值,使用tinyint(1)构造。========================================        int[(m)][unsigned][zerofill]

            整数,数据类型用于保存一些范围的整数数值范围:            有符号:                    -2147483648 ~ 2147483647            无符号:                    0 ~ 4294967295========================================        bigint[(m)][unsigned][zerofill]            大整数,数据类型用于保存一些范围的整数数值范围:            有符号:                    -9223372036854775808 ~ 9223372036854775807            无符号:                    0  ~  18446744073709551615

3. 浮点型(1)定点数类型: DEC等同于DECIMAL

(2)浮点类型:FLOAT DOUBLE

(3)作用:存储薪资、身高、体重、体质参数等-------------------------FLOAT-------------------FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]#参数解释:单精度浮点数(非准确小数值),M是全长,D是小数点后个数。M最大值为255,D最大值为30

#有符号:           -3.402823466E+38 to -1.175494351E-38,           1.175494351E-38 to 3.402823466E+38

#无符号:           1.175494351E-38 to 3.402823466E+38#精确度:           **** 随着小数的增多,精度变得不准确 ****

 -------------------------DOUBLE-----------------------DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]

#参数解释: 双精度浮点数(非准确小数值),M是全长,D是小数点后个数。M最大值为255,D最大值为30

#有符号:           -1.7976931348623157E+308 to -2.2250738585072014E-308           2.2250738585072014E-308 to 1.7976931348623157E+308

#无符号:           2.2250738585072014E-308 to 1.7976931348623157E+308

#精确度:           ****随着小数的增多,精度比float要高,但也会变得不准确 ****

======================================--------------------DECIMAL------------------------decimal[(m[,d])] [unsigned] [zerofill]

#参数解释:准确的小数值,M是整数部分总个数(负号不算),D是小数点后个数。 M最大值为65,D最大值为30。

#精确度:           **** 随着小数的增多,精度始终准确 ****           对于精确数值计算时需要用此类型           decaimal能够存储精确值的原因在于其内部按照字符串存储。

4 日期类型(1)类型:DATE TIME DATETIME TIMESTAMP YEAR(2)作用:存储用户注册时间,文章发布时间,员工入职时间,出生时间,过期时间等(3)语法:       

YEAR YYYY(1901/2155) DATE YYYY-MM-DD(1000-01-01/9999-12-31) TIME HH:MM:SS('-838:59:59'/'838:59:59') DATETIME YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y) TIMESTAMP YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)

(4)datatime和timestamp的区别

    在实际应用的很多场景中,MySQL的这两种日期类型都能够满足我们的需要,存储精度都为秒,但在某些情况下,会展现出他们各自的优劣。    下面就来总结一下两种日期类型的区别。

    1.DATETIME的日期范围是1001——9999年,TIMESTAMP的时间范围是1970——2038年。

    2.DATETIME存储时间与时区无关,TIMESTAMP存储时间与时区有关,显示的值也依赖于时区。在mysql服务器,    操作系统以及客户端连接都有时区的设置。

    3.DATETIME使用8字节的存储空间,TIMESTAMP的存储空间为4字节。因此,TIMESTAMP比DATETIME的空间利用率更高。

    4.DATETIME的默认值为null;TIMESTAMP的字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP),    如果不做特殊处理,并且update语句中没有指定该列的更新值,则默认更新为当前时间。

5 枚举和集合

create table consumer( id int, name varchar(50), sex enum('male','female','other'), level enum('vip1','vip2','vip3','vip4'),#在指定范围内,多选一 fav set('play','music','read','study') #在指定范围内,多选一和多选多 ); insert into consumer values (1,'alex','other','vip2','play,read,study');



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3