mysql的数据类型:
数值
- tinyint 1个字节
- smallint 2个字节
- mediumint 3个字节
- int 4个字节
- bigint 8个字节
- float 4个字节
- double 8个字节
- decimal 字符串形式的浮点数,一般用于金融计算
字符串:
- char 字符串固定的大小 0-255
- varchar 可变字符串 0-65535
- tinytext 微型文本 2^8-1
- text 文本串 2^16-1
时间日期:
- date yyyy-MM-dd 日期
- time HH:mm:ss 时间,大写H表示24小时
- datetime yyyy-MM-dd HH:mm:ss
- timestamp 时间戳 从1970.1.1到现在的毫秒数
- year 年份
null:
- 没有值,未知,不要使用null计算
字段属性
- unsigned:无符号整数,该列不能为负数
- zerofill:不足的位数用0填充
- auto incremental:在上一条基础上加1,通常用来设计唯一主键,可以设计
- 主键自增的起始值和步长
- not null:非空
- default:默认值
每一个表,都存在以下五个字段:
- id:主键
- version:版本,乐观锁
- is_delete:伪删除
- gmt_create:创建时间
- gmt_update:修改时间
数据表的类型
Innodb 默认使用
MYISANM 以前使用,这两种最常使用
MYISAM | INNODB | |
---|---|---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持(现在好像支持) |
表空间大小 | 较小 | 约为MYISAM的两倍 |
MYISAM 节约空间,速度较快
INNODB 安全性高,事务处理,多表多用户操作
不管是MYISAM还是INNODB,物理存储空间都在data目录下,本质是文件的存储
INNODB只有一个.ibd文件以及在上级目录的ibdata1文件
MYISAM对应文件有三个:
.sdi 表结构定义文件
.MYD 数据文件
.MYI 索引文件
建议在建表时设置字符集utf8,不设置的话使用默认编码集,不支持中文!