MySQL数据类型 -- 数值型

版权声明:本文为博主原创文章,欢迎扩散,扩散请务必注明出处。 https://blog.csdn.net/robinson_0612/article/details/82823622

在MySQL关系型数据库中,MySQL支持的数据类型非常丰富。它主要分为3大类,即:数值型,日期时间性,字符型。而实际上这三类数据类型可以进一步的细分扩展,可以根据业务需要选择最适合的一种。本文主要介绍数值类型,并演示其用法。

一、数值型 MySQL支持所有标准SQL的所有数值类型。在MySQL中,主要分为以下2大类。一类是整数类型,一类是浮点数类型,如下图所示。

整数类型   上图中列出了整数类型的使用以及其占用字节数,括号后面的数字表示最大显示宽度,与存储空间无关。

整数类型   上图中列出了浮点数类型的使用方法,m表示整数位长度,n表示小数点后的位数。

二、数值型演示

mysql> CREATE TABLE t_num
    -> (
    -> id1 int,
    -> id2 int(4) ZEROFILL
    -> );
Query OK, 0 rows affected (0.11 sec)

mysql> INSERT INTO t_num
    -> VALUES (1, 1);
Query OK, 1 row affected (0.01 sec)

mysql> select * from t_num;
+------+------+
| id1 | id2 |
+------+------+
| 1 | 0001 | -- 注意,这里第二列,右边填充了0值
+------+------+
1 row in set (0.00 sec)

mysql> show create table t_num\G
*************************** 1. row ***************************
       Table: t_num
Create Table: CREATE TABLE `t_num` (
  `id1` int(11) DEFAULT NULL, -- 未指定显示宽度的列,默认为11位
  `id2` int(4) unsigned zerofill DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.09 sec)

-- 下面插入一个超过11位的值,报错,提示超出范围
mysql> insert into t_num values(123456789123,2);
ERROR 1264 (22003): Out of range value for column 'id1' at row 1

-- 下面为表新增一个列,salary,其数据类型为decimal
mysql> alter table t_num add column salary DECIMAL(5,2);
Query OK, 0 rows affected (0.26 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> select 'Leshami' as Author
    -> union all
    -> select 'http://blog.csdn.net/leshami';
+------------------------------+
| Author |
+------------------------------+
| Leshami |
| http://blog.csdn.net/leshami |
+------------------------------+

-- 插入以一个decimal数据类型的值,提示报错
-- 因为5表示的是总长度,而不是整数部分的长度
mysql> insert into t_num values(2,2,12345.32);
ERROR 1264 (22003): Out of range value for column 'salary' at row 1

-- 再次插入,将总长度控制在5位,则成功
mysql> insert into t_num values(2,2,123.32);
Query OK, 1 row affected (0.02 sec)

mysql> select * from t_num;
+------+------+--------+
| id1 | id2 | salary |
+------+------+--------+
| 1 | 0001 | NULL |
| 2 | 0002 | 123.32 |
+------+------+--------+
2 rows in set (0.00 sec)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏aCloudDeveloper

string 之 strcmp函数

Author: bakari  Date: 2012/8/9 继上篇。。。。。 下面是我写的代码与源码作的一些比较,均已严格测试通过,分别以“string 之”...

2187
来自专栏JavaQ

温故而知新-MySQL数据类型

选择数据类型的原则 MySQL支持多种数据类型,选择合适的数据类型存储数据对MySQL存储引擎来说至关重要,下面的一些原则可以在选择数据类型的时候做出更合适的选...

3107
来自专栏CodingToDie

MySql Hash 索引

Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 ...

2963
来自专栏cloudskyme

设计模式(4)-序列生成器之单例模式

场景:序列生成器 系统中统一的序列生成程序,整个系统统一一套!那么就用单例模式吧! 首先看看单例模式 1)类持有一个自己的实例,而且还是个静态实例。 2)类的构...

3426
来自专栏jeremy的技术点滴

实例变量的懒初始化

3214
来自专栏Zephery

数据库

1.SQL执行的顺序 ? 2.NULL “空值” 和”NULL”的概念: 1:空值(‘’)是不占用空间的,判断空字符用 = ‘’ 或者 <> ‘’ 来进行处...

3698
来自专栏Clive的技术分享

PHP实现单例模式

<?php /** * 单例模式实现 */ class Singleton { //静态变量保存全局实例 private static $ins...

3007
来自专栏开发与安全

从零开始学C++之对象的使用(三):static 与单例模式、auto_ptr与单例模式、const 用法小结、mutable修饰符

一、static 与单例模式 单例模式也就是简单的一种设计模式,它需要: 保证一个类只有一个实例,并提供一个全局访问点 禁止拷贝 #include <i...

2120
来自专栏C/C++基础

设计模式(7)——单例模式(Singleton Pattern,创建型)

使用设计模式可以提高代码的可复用性、可扩充性和可维护性。单例模式(Singleton Pattern),确保一个类只有一个实例,并提供一个全局访问点。

912
来自专栏java一日一条

MySql数据库索引原理

第二部分结合MySQL数据库中InnoDB数据存储引擎中索引的架构实现讨论聚集索引、非聚集索引及覆盖索引等话题。

1343

扫码关注云+社区

领取腾讯云代金券