本文主要是介绍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--->数字、字符串
===========================================
常用的数据类型:
一、整数:
每个整型类型可以指定一个最小显示宽度(注意:这个宽度并不表示存储的值有多大)
基本格式:
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:小数位数,如果不指定,默
这篇关于mysql dec_MySQL常用数据类型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!