mysql数据值和列类型

admin  2016-07-10 20:24   Hits: 

对mysql中数据值的分类,有数值型,字符型,日期型和空值等,这和一般的编程语言的分类差不多,另外,mysql数据库的表是一个二维表,由一个或多个数据列构成,每个数据列都有它的特定类型,该类型决定了mysql如何看待该数据列,我们可以把整形数值存放到字符类型的列中,mysql则会把它看成字符串处理。mysql列类型有三种,数值型,字符串类和日期/时间类,从大类来看列类型和数值类型一样,都是只有三种,但每种列类型都可以细分。
 
1、数值类的数据列类型
mysql的数值分整形和浮点型两种,而整形中又分为五种整形数据列类型,TINYINT  INT  SMALLINT MEDIUMINT BIGINT。mysql也有三种浮点数值列类型,分别是 FLOAT DOUBLE DECIMAL。对于浮点数mysql采用科学计数法,而整数是十进制,也可是十六进制。他们的区别是取值范围不同,存储空间也各不相同。在整形数据列后加上UNSIGNED属性可以禁止负数,取值从0开始,声明整型数据列时,未满可以为它指定显示宽度M,如INT(5),指定显示为5个字符,如果没有给它指定显示宽度,mysql会为它指定一个默认值。为了节省存储空间和提高数据库处理效率,我们应该根据应用数据的取值范围来选择一个最适合的数据列类型,如果把一个超出数据列取值范围的数存入该列,则mysql就会截短该值。
 
2、字符串类数据列类型
字符串可以用来表示任何一种值,所以它是最基本的类型之一,我们可以用字符串类型来存储图像或声音之类的二进制数据,也可以存储用压缩的数据,mysql支持单或双引号包围的字符序列。对于变长的字符串类型,其长度取决于实际存放在列中的值的长度,L+n字节,其中n为存放该值的长度所需要的字节数,CHAR类型和VARCHAR类型长度范围都是0-255之间的大小,它们之间的差别是CHAR把这个大小视为准确大小,用空格填补比较短的值,而VARCHAR把它视为最大值并且只使用了存储字符串实际上需要的字节数。BLOG TEXT可以存放任意大数据,只是前者区分大小写,后者不区分,ENUM和GET类型是特殊的串类型,其列值必须从固定的串集中选取。差别是前者是单选后者是多选。
 
3、日期和时间数据列类型
MYSQL的日期时间类型是存储如2009-1-1或者 12:0:0这样的数值,也可以利用DATE_FORMAT()函数以任意形式显示日期值,而默认是按年-月-日的顺序显示日期,MYSQL总是把日期和日期里的年份放在最前面,每个时间和日期类型都有一个零值,当插入非法数值就用零来添加。另外,也可以使用整形存储时间戳,这是基于PHP的项目中常见的方式。
 
4、NULL
NULL可以看做没有值或未知值,0或NULL都意味假,对NULL进行计算,结果还是NULL,可以将NULL插入到数据表中并检索,也可以测试某个值是否为NULL。
 
5、类型转换
和PHP类似,在MYSQL的表达式中,如果某个数据值的类型与上下文所要求的类型不相符,MYSQL则会根据将要进行的操作自动对数据值进行类型转换。
上一篇:创建、选择及查看数据库
下一篇:mysql 数据字段属性