数据库设计字段

mysql中int、bigint、smallint 和 tinyint的区别详细介绍

类型 范围(无符号) 大小 范围(有符号) 用途
TINYINT (0,255) 1字节 (-128,127) 小整数值
SMALLINT (0,65 535) 2字节 (-32 768,32 767) 大整数值
MEDIUMINT (0,16 777 215) 3字节 (-8 388 608,8 388 607) 大整数值
INT或INTEGER (0,4 294 967 295) 4字节 (-2 147 483 648,2 147 483 647) 大整数值
BIGINT (0,18 446 744 073 709 551 615) 8字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) 极大整数值

MySQL中Date,DateTime,TimeStamp和Time的解释和区别

Date:

名称 解释
显示格式 YYYY-MM-DD
显示范围 1601-01-01 到 9999-01-01
应用场景 当业务需求中只需要精确到天时,可以用这个时间格式
后台取值 @JSONField(format=”yyyy-MM-dd”)

DateTime:

名称 解释
显示格式 YYYY-MM-DD HH:mm:ss
显示范围 1601-01-01 00:00:00 到 9999-12-31 23:59:59
应用场景 当业务需求中需要精确到秒时,可以用这个时间格式
后台取值 @JSONField(format=”yyyy-MM-dd HH:mm:ss”)

TimeStamp:

名称 解释
显示格式 YYYY-MM-DD HH:mm:ss
显示范围 1601-01-01 00:00:00 到 9999-12-31 23:59:59
应用场景 当业务需求中需要精确到秒或者毫秒时,或者该系统用于不同时区,可以用这个时间格式
后台取值 @JSONField(format=”yyyy-MM-dd HH:mm:ss:SSS”)(这里只会精确到秒)

Time:

名称 解释
显示格式 HH:mm:ss
显示范围 00:00:00 到 23:59:59
应用场景 当业务需求中只需要每天的时间,可以用这个时间格式
后台取值 @JSONField(format=”HH:mm”)(这里是只精确到分,数据库存的也就是只精确到分,比如 09:36:00,如果需要精确到秒。需要使用@JSONField(format=”HH:mm:ss”))

DateTime和TimeStamp比较

1、精度:DateTime和TimeStamp都可以精确到毫秒(我目前使用的5.5的mysql,所以只能精确到秒,据说高版本的可以用TIMESTAMP(3)与 DATETIME(3)精确到毫秒。),但是用的很少,一般精确到毫秒都是用Timestamp,2、DateTime和TimeStamp最大的区别只是用的场景不同,如果你的应用 是用于不同时区(就是国内和国外同时使用),这时候如果用dateTime就会出现各种各样的问题,但是如果使用TimeStamp就不会出现这种时差的问题。

MySQL中tinytext、text、mediumtext和longtext等各个类型详解

类型 范围 说明  
Char(N) [ binary] N=1~255 个字节 binary :分辨大小写 固定长度 std_name cahr(32) not null
VarChar(N) [binary] N=1~255 个字节 binary :分辨大小写 可变长度 std_address varchar(256)
TinyBlob 最大长度255个字节(2^8-1) Blob (Binary large objects)储存二进位资料,且有分大小写 memo text not null
TinyText 最大长度255个字节(2^8-1)    
Blob 最大长度65535个字节(2^16-1)    
Text 最大长度65535个字节(2^16-1)    
MediumBlob 最大长度 16777215 个字节(2^24-1)    
MediumText 最大长度 16777215 个字节(2^24-1    
LongBlob 最大长度4294967295个字节 (2^32-1)    
LongText 最大长度4294967295个字节 (2^32-1)    
Enum 集合最大数目为65535 列举(Enumeration),Enum单选、Set复选 sex enum(1,0) habby set(‘玩电玩’,'睡觉’,'看电影’,'听音乐’)
Set 集合最大数目为64 同上  

辨別Null与Not Null :Null为允许储存空值(Null)

在My SQL 中varchar定义的长度的单位是字符,哪怕是1个多字节字符也是1个字符,如中文和英文字母都被当作1个字符来对待。

mysql创建表时的空值和非空值设置有什么讲究

空值是一种特殊的状态, 表示某一个字段"没有被处理过"几乎在所有的数据库中甚至是编程语言中, 空与非空都有其存在的意义, 举个例子, 一个人员表中, 有一个年龄字段, 这个年龄字段如果为非 空, 则在不知道人员年龄的情况下, 数据无法入库, 否则会显示个奇怪的年龄(比如0岁, 或者-1岁等)而有些情况泽不可以为空, 最常见的就是"主键", 比如身份证号之类的

你可能感兴趣的:(数据库)