整型
整型数据类型包括:
tinyint:微整型
smallint:小整型
mediumint:中整型
int:整型
bigint:大整型
默认整数类型是带符号的 可以有正负值
不带符号的整数类型设置形式,使用unsigned
小数型
浮点小数
浮点小数是“不精确的小数”,包括float和double
float:占用4字节存储空间 可称为“单精度浮点数”,约7位有效小数
double:占用8字节存储空间 可称为“双精度浮点数”,约17位有效数字
定点小数
定点小数是“精确的小数”–它通过内部技巧 突破了“有些小数无法用二进制精确表示”的局限
其设定方式通常是:decimal(M,D)
其M表示该小数的总的有效位数(最大65),D表示该小数的小数点后的位数
关于类型选择问题:
年龄:应该用tinyint (加上unsigned更合适)
工资:double或者decimal (加上unsigned更合适)
人口:int (加上unsigned更合适)
日期时间型
date类型:
表示日期:格式类似这样:’0000-00-00′
time类型:
表示时间,格式类似这样:’00:00:00′
datetime类型:
表示日期时间,格式类似这样:’0000-00-00 00:00:00′
timestamp类型
表示”时间戳”, 其实就是一个整数数字,该数字是从”时间起点”到现在为止的”秒数”
时间起点是”1970-1-1 0:0:0″
timestamp类型的字段无需插入数据,而是会自动取得当前的日期时间 (表示当前时刻)
而且,此类型字段会在数据更新时,也同样自动获取当前的时间日期(表示修改的时刻)
now()函数的使用:表示当前时间 是MySQL中的系统函数,直接用就行
特别总结 他在insert 或update某行数据的时候 能够自动获得当前时间
year类型
表示年份,格式为:’0000′
注意 时间类型的字面值 通常使用单引号引起来
字符串型
字符串类型常用的包括:char varchar text enum set 分述如下
定长字符char和变长字符varchar
定长字符类型char:
适用于存储的字符长度为固定的字符 比如 邮政编码 身份证号码 手机号码
设定形式:字段名称 char(字符个数)
特点:
存储长度固定 最长可设定为255个字符
实际写入的字符不足设定长度内部会自动用空格填充到设定的长度
相对varchar类型 存取速度更快
变长类型varchar
适用于存储字符长度不确定的字符 比如姓名 用户名 标题 内容 等大多数场合的字符
设定形式:字段名称 varchar(字符个数)
特点:
存储的字符长度是写入的实际长度 但不超过设定的长度 最长可设定为65532(字节)
注:由于其最长的限制是字节数 因此存储的中文和英文的实际字符个数是不同的
英文:一个字符占一个字节
中文BGK:一个字符占2字节
中文UTF8:一个字符占3字节
实际写入的字符不足设定的长度 就按实际的长度存储
相对于char字符串 存取速度相对更慢
text长文本类型
适用于存储“较长的文本内容” 比如文章内容 最长可存储65532个字符
如果还需要存储更长的文本 可以使用mediumtext(1600万左右)或longtext(40亿左右)
设定形式:字段名称 text
text类型不能使用默认值
enum类型和set类型
enum类型和set类型表示“有给定值的”