MySQL数据类型

1.整型
MySQL数据类型含义(有符号)
tinyint(m)1个字节 (-128~127)
smallint(m)2个字节 (-32768~32767)
mediumint(m)3个字节 (-8388608~8388607)
int(m)4个字节 (-2147483648~2147483647)
bigint(m)8个字节 (+-9.22*10的18次方)
2.浮点型(float和double)
MySQL数据类型含义
float(m,d)单精度浮点型 8位精度(4字节) m总个数, d小数位个数
double(m,d)双精度浮点型 16位精度(8字节) m总个数,d小数位个数
举个栗子 float(5,3)如果插入123.45678则存的是123.457
3.定点数

浮点型在数据库中存放的是近似值,而定点类型则是精确种子.
decimal(m,d) 参数m<65是总个数,d<30是小数位

4.字符串

主要有char,varchar,tinytext,text,mediumtext,longtext几种类型

MySQL数据类型含义
char(n)固定长度,最多255个字符
varchar(n)固定长度,最多65535个字符
tinytext可变长度,最多255个字符
text可变长度,最多65535个字符
mediumtext可变长度,最多2^24-1个字符
longtext可变长度,最多2^32-1个字符
enum(‘value1’, ‘value2’,…)枚举:1或2字节,取决于个数(65,535)之间
set(‘value1’, ‘value2’,…)1,2,4或8个字节,取决于set成员的数量,最多64个成员
5.日期类型
类型大小范围格式用途
YEAE[(24)]1字节1901-2155YYYY
DATE3字节1000-01-01到9999-12-31YYYY-MM-DD日期值
TIME3字节-838:59:59到838:59:59HH:MM:SS时间值或持续时间
DATATIME8字节1000-01-01 00:00:00到9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP8字节1970-01-01 00:00:00到2037年某时间YYYYMMDDHHMMSS混合日期和时间值,时间戳
YEAR

给YEAR类型赋值的三种方法:
* 直接插入4位字符串或4位数字
* 插入两个字符串.如果插入’00’-‘69’,则相当于插入2000-2069,’70’-‘99’则相当于1970-1999,插入’0’,则相当于’00’,相当于2000
* 插入两位数字.和两个字符串唯一的区别在于如果插入数字0则表示0000

DATE

YYYY-MM-DD(-可以用@,.等众多符号来替代)
YY-MM-DD
也可以插入CURRENT_DATE或NOW()显示当前系统时间

TIME

TIME类型表示为“时:分:秒”,尽管小时范围一般是0~23,但是为了表示某些特殊时间间隔,MySQL将TIME的小时范围扩发了,而且支持负值。对TIME类型赋值,标准格式是”HH:MM:SS”,但不一定非要是这种格式。如果插入的是”D HH:MM:SS”格式,则类似插入了”(D*24+HH):MM:SS”。比如插入”2 23:50:50”,相当于插入了”71:50:50”。如果插入的是”HH:MM”或”SS”格式,则效果是其他未被表示位的值赋为零值。比如插入”30”,相当于插入了”00:00:30”;如果插入”11:25”,相当于插入了”11:25:00”。
另外也可以插入‘D HH’和‘D HH:MM’,效果按上面的例子可以推理出来了吧。 在MySQl中,对于’HHMMSS’格式,系统能够自动转化为标准格式。如果我们想插入当前系统的时间,则可以插入CURRENT_TIME或者NOW()。
TIME类型允许使用字符串或数字把值赋给TIME列,只占3个字节,如果只是存储时间数据,它最合适了
需要注意的是,没有冒号分隔符的 TIME 类型值,将会被 MySQL 理解为持续的时间,而不是时间戳

DATATIME

通常用于自动存储包含当前日期和时间的时间戳,并可在需要执行大量数据库事务和需要建立一个调试和审查用途的审计跟踪的应用程序中发挥良好作用

TIMESTAMP

通常用于自动存储包含当前日期和时间的时间戳,并可在需要执行大量数据库事务和需要建立一个调试和审查用途的审计跟踪的应用程序中发挥良好作用
TIMESTAMP的取值范围比较小,没有DATETIME的取值范围大,因此输入值时一定要保证在TIMESTAMP的范围之内。它的插入也与插入其他日期和时间数据类型类似。
那么TIMESTAMP类型如何插入当前时间?第一,可以使用CURRENT_TIMESTAMP;第二,输入NULL,系统自动输入当前的TIMESTAMP;第三,无任何输入,系统自动输入当前的TIMESTAMP。
另外有很特殊的一点:TIMESTAMP的数值是与时区相关.
MySQL以YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或YYMMDD格式来显示TIMESTAMP值,取决于是否M是14(或省略)、12、8或6,但是允许你使用字符串或数字把值赋给TIMESTAMP列。一个TIMESTAMP列对于记录一个INSERT或UPDATE操作的日期和时间是有用的,因为如果你不自己给它赋值,它自动地被设置为最近操作的日期和时间。你以可以通过赋给它一个NULL值设置它为当前的日期和时间

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值