整数类型
tinyinr
占用字节:1
有符号
取值范围:[-pow(2,7),pow(2,7)-1],即—128 ~ 127.
无符号
取值范围:[0,255]
smallint
占用字节:2
有符号
取值范围:[-pow(2,15),pow(2,15)-1],即 –32768 ~ 32767
无符号
取值范围:[0,65535]
mediumint
占用字节:3
有符号
取值范围:[-pow(2,23),pow(2,23)-1],即—8388608 ~ 8388607
无符号
取值范围:[0,16777215]
bigint
占用字节:8
有符号
取值范围:[-pow(2,63),pow(2,63)-1],即—9223372036854775808 ~ 9223372036854775807
无符号
取值范围:[0,18446744073709551615]
浮点数类型
float
占用字节:4
基本形式:float(M,D)
表示一共能存M位,其中小数点后占D位
double
占用字节:8
定点数类型
decimal
标准格式:decimal(M,D) (会四舍五入达到精度)
可以指定浮点数和整数的精度(不建议使用,会影响数据库的迁移)
基本形式:数据类型(M,D)
数据类型为整数或者浮点数的数据类型,M参数称为精度,D参数称为标度。
如:float(6,2),数据长度为6,小数点保留2位,如:1234.56,
日期/时间类型
date
占用字节:3
取值范围:1000—01—01 ~ 9999—12—31
time
占用字节:3
取值范围:-838:59:59 ~ 838:59:59
datatime
占用字节:8
取值范围:1000—01—01 00:00:00 ~ 9999—12—31 23:59:59
timestamp
占用字节:4
取值范围:19700101080001 ~ 20380119111407
该类型的数值与时区相关
year
占用字节:1
取值范围:1901~2155
字符串类型
char
储存 0—255字节
用于定长字符串
常用:性别 gender char(1)
varchar
储存 0—65535字节
用于变长字符串
常用: 用户名 username varchar(50)
binary(二进制)
varbinary(二进制)
blob
blob是一个二进制的对象,它是一个可以存储大量数据的容器(如图片,音乐等等),且能容纳不同大小的数据,在MySQL中有四种Blob类型,他们的区别就是可以容纳的信息量不容分别是以下四种:
TinyBlob类型 最大能容纳255B的数据,储存0-255字节
Blob类型 最大能容纳65KB的,储存0-65 535字节
MediumBlob类型 最大能容纳16MB的数据,储存0-166 777 215字节
LongBlob类型 最大能容纳4GB的数据 储存0-4 294 967 295字节
插入blob类型的数据要调用PreparedStatement对象中的setBlob(int index , InputStream in)方法来设置传入的的参数,其中index表示blob类型的数据所对应的占位符的位置,而InputStream类型的in表示被插入文件的节点流
读取blob类型的数据使用getblob()方法读取到blob对象,然后调用blob的getBinaryStream()方法得到输入流,再使用IO操作进行文件的写入操作
text
text保存大量字符数据
有四种类型分别对应四种blog类型,有相同的最大长度和储存需求
TinyText类型 储存0-255字节
Text类型 储存0-65 535字节
MediumText类型 储存0-16 777 215字节
LongText类型 储存0-4 294 967 295字节
enum
用于枚举
set
集合类型。假如有abc,它可以选择a,b,c,ab,ac,bc,abc