MySQL的数据类型
1、数值类型
1、整型
1、int 大整型(4个字节)
取值范围 :0 ~ (2**32 - 1(42亿多))
2、tinyint 微小整型(1个字节)
1、有符号(signed默认) : -128 ~ 127
2、无符号(unsigned) : 0 ~ 255
例子:age tinyint unsigned,
3、smallint 小整型(2个字节)
4、bigint 极大整型(8个字节)
2、浮点型
1、float(4个字节,最多显示7个有效位,如果超过7的话,不会报错,但存进去的数在第7位之后会不正确)
1、用法
字段名 float(m,n) m->总位数 n->小数位位数
float(5,2)取值范围? -999.99 ~ 999.99
2、double(8个字节)
字段名 double(m,n)
3、decimal(最多显示28个有效位)
1、decimal(m,n)
2、存储空间(整数、小数分开存储)
规则:将9的倍数包装成4个字节
余数 字节
0 0
1-2 1
3-4 2
5-6 3
7-9 4
例:decimal(19,9)
一个浮点型为10为整数,9位小数:
整数部分:10/9=1余1 4字节+1字节 = 5字节
小数部分:9/9=0 4字节+0字节 = 4字节
总共占有:5字节 + 4字节 = 9字节
2、字符类型
1、char(定长)
1、取值范围:1~255
2、varchar(变长)
1、取值范围:1~65535
3、text / longtext(4G) / blob / longblob(4G)
4、char和varchar的特点
1、char :浪费存储空间,性能高
2、varchar :节省存储空间,性能低
5、字符类型的宽度和数值类型宽度的区别
1、数值类型宽度为显示宽度,只用于select查询是显示,
和占用存储无关,可用zerofill查看效果。
2、字符类型的宽度超过后无法存储
3、枚举类型
1、单选enum
sex enum(值1, 值2,.....)
2、多选set
likes set(值1, 值2,....)
4、日期时间
1、日期时间类型
1、date :"YYYY-MM-DD"
2、time :"HH:MM:SS"
3、datetime :"YYYY-MM-DD HH:MM:SS"
4、timestamp :"YYYY-MM-DD HH:MM:SS"
5、注意
1、datetime :不给值默认返回NULL值
2、timestamp :不给值默认返回系统当前时间
2、日期时间函数
1、now() 返回服务器当前时间
2、curdate() 返回当前日期
3、curtime() 返回当前时间
4、year(date) 返回指定时间的年份(年)
5、date(date) 返回指定时间的日期(年月日)
6、time(date) 返回指定时间的时间(时分秒)
3、日期时间运算
1、语法格式
select * from 表名
where 字段名 运算符 (时间-interval 时间间隔单位);
时间间隔单位:
1 day | 2 hour | 1 minute | 2 year | 3 month
mysql> select * from t2 where cztime >= (now()-interval 1 day); #1天以内 +------+----------+----------+-------+------------+---------------------+ | id | username | password | money | birthday | cztime | +------+----------+----------+-------+------------+---------------------+ | 1 | 用户1 | 123456 | 500 | 1996-10-06 | 2018-08-30 09:50:30 | | 1 | 用户2 | 123456 | 500 | 1996-10-06 | 2018-08-30 09:55:03 | +------+----------+----------+-------+------------+---------------------+ 2 rows in set (0.00 sec) mysql> select * from t2 where cztime <= (now()-interval 1 day); #1天以前 +------+----------+----------+-------+------------+---------------------+ | id | username | password | money | birthday | cztime | +------+----------+----------+-------+------------+---------------------+ | 3 | 用户3 | 123456 | 800 | 1990-03-03 | 2018-07-02 09:08:00 | | 4 | 用户4 | 123456 | 666 | 2018-07-02 | 2018-07-02 09:10:00 | +------+----------+----------+-------+------------+---------------------+ 2 rows in set (0.00 sec)