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)

猜你喜欢

转载自blog.csdn.net/robinson_0612/article/details/82823622
今日推荐