Mysql常见的数据类型分为整数类型、浮点型类型、字符串类型、时间和日期类型、二进制类型。
其中整数类型(int),日期和时间类型和字符串类型是数据库中使用最频繁的数据类型。定点数类型
、二进制数据类型使用相对比较少。
二进制类型:
BINARY、VARBINARY、 BIT、 TINYBLOB、 BLOB、 MEDIUMBLOB、 LONGBLONG
BINARY、VARBINARY的用法和CHAR、 VARCHAR的用法类似。
BIT类型也是在创建表的时候指定了最大长度,BIT(M)。
Tip:在查询BIT类型的数据时,要用BIN(字段名+0)来将值转换为二进制显示。
BLOB类型是一种特殊的二进制类型。BLOB可以用来保存数据量很大的二进制数据,如图片等。
BLOB类型与TEXT类型很类似。不同点在于BLOB类型用于存储二进制数据,BLOB类型数据时根据其
二进制编码进行比较和排序,而TEXT 类型是文本模式进行比较和排序。
Tip:BLOBL类型主要用来存储图片、PDF文档等二进制文件。通常情况下,可以将图片、PDF文档都可以
存储在文件系统中,然后在数据库中存储这些文件的路径。这种方式存储比直接存储在数据库中简单,但
是访问速度比存储在数据库中慢。
Question .Mysql中什么数据类型能够存储路径?
Answer:Mysql中,CHAR,VARCHAR和TEXT等字符串类型都可以存储路径。但是,如果路径中使用“\”符
号时,这个符号会被过滤。解决的办法是,路径中用“/”或者“\\”来代替“\”。
整数类型:
标准SQL中支持INTEGER(4字节)和SMALLINT(2字节)这两类整数类型。MySQL数据库扩展支持了TINYINT(1个字节)
,MEDIUMINT(3个字节)和BIGINT(8个字节).
浮点数类型和定点数类型:
FlOAT类型(4) 、 DOUBLE 类型(8)、 DECIMAL类型(M+2)。
基本形式:
数据类型(M,D)
M是数据的总长度,小数点不占位置;
D是指小数点后的长度。
日期和时间类型:
YEAR类型,TIME类型,DATA类型,DATATIME类型,TIMESTAMP类型。
取得当前系统时间用NOW()或者CURRENT_TIME(CURRENT_DATE、CURRENT_TIMESTAMP)
TIMESTAMP类型的特点是时间是根据时区来显示的。类型范围小(1970-01-01 08:00:01~2038-01-19 11:14:07)
。输入NULL或者无任何输入时,系统会输入系统当前日期与时间(与DATATIME的区别)。
字符串类型:
CHAR、VARCHAR、TEXT、ENUM和SET。
Question:MySQL中如何使用布尔类型?
Answer:在SQL标准中,存在Bool和Boolean类型。MySQL为了支持SQL标准,也是可以定义Bool和Boolean
类型的。但是,Bool和Boolean类型最后转换成的是TINYINT(1)。也就是说,在MySQL中,布尔类型等价于
TINYINT(1)。因此,创建表的时候将一个字段定义成Bool和Boolean类型,数据库中真实定义的是TINYINT(1)。