数据库中的一些基本数据类型
Posted 九层之台 始于垒土
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库中的一些基本数据类型相关的知识,希望对你有一定的参考价值。
数据类型(
data_type)是指系统中所允许的数据的类型。
在创建表时,必须为每一列设置正确的数据类型及可能的长度。
mysql的数据类型分别有整数,浮点数和定点数类型,日期和时间类型,字符串类型和二进制类型等。
数据类型(
data_type)是指系统中所允许的数据的类型。
在创建表时,必须为每一列设置正确的数据类型及可能的长度。
MySQL的数据类型分别有整数,浮点数和定点数类型,日期和时间类型,字符串类型和二进制类型等。
整数类型(可小写)
MySQL支持选择在该类型关键字后面的括号内指定整数值的显示宽度(列如INT(4))。INT(M)中的M指示最大显示宽度。
显示宽度和数据类型的取值范围是无关的,显示宽度只是指MySQL最大可能显示的数字个数,数值的位数小于指定的宽度时会由空格填补,如果插入的大于显示宽度的值,只要该值不超过该类型整数的取值范围,数值依然可以插入,而且能够显示出来。列如,year字段插入19999,当使用SELECT查询该列值的时候,MySQL显示的将是带有完整5位数的数字。
其他整数数据类型也可以在定义表结构时指定所需的显示宽度,如果不指定,则系统会为每一种类型指定默认的宽度值。
浮点数类型和定点数类型
浮点数类型和定点数类型都可以用(M,D)来表示,其中M称为精度,表示总共的位数;D称为标度,表示小数的位数。 DECIMAL的默认D值为0,M值为10;
不论是定点还是浮点类型,如果用户指定的精度超出了精度范围,则会四舍五入进行处理。
浮点数相对于定点数的优点是在长度一定的情况下,浮点数能够表示更大的范围;缺点是会引起精度问题。
在MySQL中,定点数以
字符串
形式存储,在对精度要求比较高的时候(如货币,科学计数法),使用DECIMAL的类型比较好。
日期与时间类型
两位年值的规则在00~69范围的转换为20000~2069,
70~99范围的转换为1970~1999。0值被转换为0000,而不是2000;‘0’和‘00’都为2000;
TIME类型
(MySQL解释TIME值为过去的时间而不是当前的时间,并假定最右边的两位表示秒,如果使用了冒号则肯定被看作当天的时间)
时分秒 HH:MM:SS
‘
HH:MM:SS
’
DATE类型
年月日
‘
YYYY-MM-DD
’
YYYY-MM-DD
使用CURRENT_DATE或者NOW(),插入当前系统日期。输入INSERT语句的时间不一样,获取的结果也不一样。
MySQL允许“不严格”的语法,任何标点符号都可以用作日期部分和时间部分之间的间隔符。98-11-23 89.02.22 23/11/23
DATETIME类型
年月日时间
‘
YYYY-MM-DD HH:MM:SS
’
YYYYMMDDHHMMSS
TIMESTAMP类型(UTC)
格式与DATATIME相同,但是取值范围小于DATATIME的取值范围
字段名 ENUM(‘值1’,‘值2’,...‘值n’)
ENUM值依照索引顺序排列,并且空字符串排在非空字符串的前面,NULL值排在其他所有枚举值之前。ENUM类型的字段在取值时只能从指定的枚举列表中取,而且一次只能取一个值。
SET 一个设置,字符串对象可以有零个或者多个SET成员
SET(
‘
值1
’
,
’
值2
’
,...
’
值n
’
)
与ENUM类似,但是SET类型的字段可以从定义的列值中选择多个字符的联合。如果插入SET字段中的值有重复,则MySQL自动删除重复的值。
MySQL支持两类字符串数据:文本字符串和二进制字符串。
一般在保存少量字符串的时候用CHAR或者VARVHAR,而在保存大文本的时选择使用TEXT或者BLOB,二者之间的主要差别是BLOB能用来保存二进制数据,比如照片,音频信息等;TEXT只能保存字符数据,比如一篇文章或者日记。
在选择数据类型时,在可以表示该字段值的所有类型中应使用占用存储空间最少的数据类型,因为这样不仅可以减少存储空间,从而节省I/O资源,还可以在进行数据运算的时候减轻CPU负载。
另外,两个浮点型数据进行减法和比较运算时也容易出问题,因此在进行计算的时候要注意,如果要进行数值比较,最好使用定点型DECIMAL。
以上是关于数据库中的一些基本数据类型的主要内容,如果未能解决你的问题,请参考以下文章
细谈JAVA中的数据类型
Java中的基本数据类型及其封装类
Chisel3 - 基本数据类型
JAVA中的数据类型——西科软件实训中心
Java中基本数据类型和包装类
JavaScript 基本数据类型和引用类型的区别详解