博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql入门-数据类型(一)
阅读量:4320 次
发布时间:2019-06-06

本文共 1931 字,大约阅读时间需要 6 分钟。

mysql数据类型概述

mysql基础就先从支持的数据类型说起,mysql一共支持三种数据类型,数值类型,字符串类型,日期。

   数值类型:数值类型又分为两种类型整型和浮点类型

        整型:bit、bool、tinyint、smallint、mediumint、int、bigint

        浮点型:float、double、decimal

   字符串类型:char、varchar、tinytext、text、mediumtext、longtext、tinyblob、blod、mediumblob、longblob

   日期类型:date、time、datetime、year、timestamp

数值类型

第一个说整型,整型是一个比较常用的数据类型,在it这块还是比较常见的。整形有五种,分别为bit、bool、tinyint、smallint、mediumint、int、bigint。

那么这五种类型的所占空间是多少呢,咱们先来测一下。建立一张表,随意建立一个。

-- 存在删除表drop table if exists test_table_one;create table test_table_one(    a bit,    b bool,    c TINYINT,    d SMALLINT,    e int,    f BIGINT)

查看一下表结构。

-- 查看表结构desc test_table_one;

得到结果。

从这张表中,我们看到的并不是这些类型的实际存储大小,这些只不过是最小的显示位数,基本上建表的时候使用默认给定的就可以了,除非有特殊需求,指定了zerofill,类似下面这种情况。

drop table if exists test_table_one;create table test_table_one(    a bit,    b bool,    c TINYINT,    d SMALLINT,    e int(10) ZEROFILL,    f BIGINT)

要想指定显示的位数,就可以像上边e int(10)这样去指定。

得到的结果

insert into test_table_one set e = 1;select * from test_table_one;

真正的存储空间占用的大小在下面这张图(来自于w3c)

 

当选用类型的时候,一定要考虑好字段的范围,然后根据范围去选,这里给出一个阿里开发规范中的推荐选择,就是id应该选择bigint类型。


 

 接下来就是浮点类型了,浮点类型有三种,float,double、decimal。这三种类型还有另一种表现形式,float(m,d),double(m,d),decimal(m,d),解读一下第二种表示方式的含义,其中m为全部位数的个数,d为小数的最大位数。在float和double中,m的范围为0到60,而d的范围为0到30,,表示的范围在上面的表中有体现。

再说一下decimal,decimal也有两种表现形式一种是decimal,第二种就是decimal(m,d),m和d的含义和double和float的意义一样,唯一不同的是,如果使用decimal,并且没有指定m和d,这里有一个默认的值,m默认为10,d默认为0.测一下。

drop table if exists test_table_two;create table test_table_two(    a float,    b double,    c decimal)desc test_table_two;

 

 运行结果为

系统给定的默认值为m=10,d=0,当存入的数精度不符时,三种都会发生截断现象。测试数据

drop table if exists test_table_two;create table test_table_two(    a float(6,3),    b double(6,3),    c decimal(6,3))desc test_table_two;insert into test_table_two values(1.23456,2.345,5.6789);select * from test_table_two;

 

结果:

不光超出的位数发生了截断,而且还进行了四舍五入。不过阿里还是推荐使用decimal(m,d)的这种方式,一只没弄清楚原因。

未完,待续。。。。。。

 

转载于:https://www.cnblogs.com/Lighting-Sui/p/11247673.html

你可能感兴趣的文章
项目管理经验
查看>>
JMeter响应数据出现乱码的处理-三种解决方式
查看>>
No qualifying bean of type available问题修复
查看>>
spfile
查看>>
Team Foundation Service更新:改善了导航和项目状态速查功能
查看>>
Cookie/Session机制具体解释
查看>>
ATMEGA16 IOport相关汇总
查看>>
JAVA基础-多线程
查看>>
面试题5:字符串替换空格
查看>>
[Codevs] 线段树练习5
查看>>
Amazon
查看>>
component-based scene model
查看>>
Echart输出图形
查看>>
hMailServer搭建简单邮件系统
查看>>
从零开始学习jQuery
查看>>
Spring+SpringMVC+MyBatis深入学习及搭建(四)——MyBatis输入映射与输出映射
查看>>
opacity半透明兼容ie8。。。。ie8半透明
查看>>
CDOJ_24 八球胜负
查看>>
Alpha 冲刺 (7/10)
查看>>
一款jQuery打造的具有多功能切换的幻灯片特效
查看>>