mysql dec_MySQL常用数据类型

MySQL-data_type数据类型

1、查看数据类型

mysql> help data type    //通过help对数据进行查看,以及使用的方法

2、MySQL常见的数据类型

前言========================================

在MySQL数据库中,进行数据存储时,难免会出现数据类型转换,其中就包括:隐式类型转换、显示类型转换

1、隐式类型转换:有害、无害

①对于新建表列

数字:int、decimal

字符串:varchar

日期:date

②查select、增insert时,对于常量

数字:不要加引号(非一定)

字符串:一定要加上引号

日期:可以加上引号,也可以不加---最好是加上

2、显式类型转换:调用cast函数

格式:

cast(expr as type)

---将任意类型的表达式expr转换成指定类型type的值

mysql> select cast(19950101 asdate);+------------------------+

| cast(19950101 as date) |

+------------------------+

| 1995-01-01 |

+------------------------+

常见的类型转换:

字符串char--->数字、日期

数字--->字符串、日期

日期date--->数字、字符串

===========================================

常用的数据类型:

一、整数:

每个整型类型可以指定一个最小显示宽度(注意:这个宽度并不表示存储的值有多大)

05c9197636879a16a8828d7c5e83865b.png

基本格式:

INT[(M)] [UNSIGNED] [ZEROFILL]

①M:指定显示宽度(默认是M=10),以实际的取值范围为准,值超过显示宽度,显示宽度自动增加

②unsigned:无符号的,表示只允许正数,所以取值范围取绝对值且最大值*2

(例:int unsigned range is 0 to 4294967295)

③zerofill: 填充0(如果声明了zerofill,该列会自动设为unsigned)

影响数字的显示方式:

如果一个数字的宽度小于所允许的最大宽度,这个值前面会用0填充

如果宽度大于所允许的最大宽度但不超过取值范围,以实际的取值范围为准,不填0;超出取值范围的报错不存储。

示例:

mysql> create table t1(id intzerofill);  #默认显示宽度10

mysql> insert into t1 values(-1);  #取值范围:0--4294967295ERROR1264 (22003): Out of range value for column 'id' at row 1mysql> insert into t1 values(123);

mysql> insert into t1 values(12300);

mysql> insert into t1 values(1.123);

mysql> select * fromt1;+------------+

| id |

+------------+

| 0000000123 |

| 0000012300 |

| 0123456789 |

| 0000000001 |

+------------+

解析:因为建表的设置是int整数,小数点后的数会四舍五入

二、(定点)小数:decimal(dec)精确小数类型---精确数的存储

同义词:decimal=dec=numeric=fixed

基本格式:

DEC[(M[,D])] [UNSIGNED] [ZEROFILL]

①M:精度,(整数位数+小数位数)不包含小数点的数字总位数(1--30),不指定默认为10

②D:小数位数,如果不指定,默


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部