[每日更新-MySQL基础知识]6.常用数据类型-日期时间

1.    日期和时间

日期和时间类型在数据库中也非常重要,比如我们在数据库中新增了一个用户,我们就应该要存储用户加入的时间,方便以后的查询。


还有比如我们在记录日志的时候,谁操作了哪个地方,我们也需要有时间的参与,才能知道,谁在什么时候操作了什么。



1.1    日期时间

表示:datetime / date /year/time/timestamp


1.2    datetime / date / year /time

date 保存的是年月日。

datetime保存的是 年月日时分秒

year:    保存的是年份

time:    保存时分秒


可以看出 datetime更加占用空间,它占用8个字节。


1.3    timestamp时间错

占用4个字节。

范围在:1970-2038年。



1.4.    常用的保存时间的方式:

在真实的项目中,时间的保存我们通常使用一个整数类型来保存一个数字,用来表示时间戳,时间戳是从1970年1月1日0:0:0开始的以秒为单位的数字,



2.    创建数据表的示例:

创建一张用户表,需要有:用户名、昵称、手机号码、邮箱、年龄、注册时间等字段。

分析:

用户名、昵称、手机号码、邮箱都应该是字符串类型。不同的是,手机号码在中国都是11位,所以手机号码可以使用char类型。


年龄应该是一个数字类型,而且年龄应该都小于200.所以使用tinyint类型就可以满足。

注册时间用来表示一个时间,可以使用时间戳的方式。



create table if not exists `user` (
    `id` int(11) unsigned auto_increment,
    `username` varchar(15),
    `nickname` varchar(10),
    `phone` char(11),
    `age` tinyint(3),
    `create_time` int(11) unsigned,
    primary key(`id`)
)engine=innodb default charset=utf8;


3.    练习

创建公司员工的考勤表,需要创建多张表。

1.    员工表

2.    员工打卡记录表


4.    附录(类型总结)



类型     范围     说明     DEMO
tinyint     -128 - 127
unsigned:
0-255
1个字节整数     column_name tinyint(3)
smallint     -32768 - 32767
unsigned:
0-65535    
2个字节整数     column_name smallint(5)
mediumint     -8388608 - 8388607
unsigned:
0-16777215    
3个字节整数     colum_name mediumint(7)
int     -2^31 ~ 2^31 -1
unsigned:
0~2^32        
4个字节整数     column_name int(10)
bigint     -2^63 ~ 2^63 - 1
unsigned:
0 ~ 2^64
8个字节整数     col_name bigint(16)
float(M,D) -3.4E+38 ~ 3.4E+38(约) 4个字节小数    
double(M,D) -1.79E+308 ~ 1.79E+308(约) 8个字节小数
decimal(M,D)
精准的小数存储
char(N) N = 1 ~ 255 定长
varchar(N) N = 1 ~ 65535     变长(需要单独拿出1-2个字节存储真实长度)
tinytext     最大255个字符    

text     最大65535个字符

mediumtext     最大16777215个字符

longtext     最大4284967295和字符

date     日期(yyyy-mm-dd)

time     时间(hh:mm:ss)

datetime     日期时间(yyyy-mm-dd hh:mm:ss)

timestamp    
yymmddhhmmss

year     年(yyyy)


猜你喜欢

转载自blog.51cto.com/toulen/2155811