![](https://img.kancloud.cn/41/e0/41e066af9a6c25a24868d9667253ec98_1241x333.jpg)
*****
## 数据完整性
在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,包括数据字段的类型、约束
### 常见的数据类型
- 整数:int
- 小数:decimal
- 字符串:varchar,char
- 日期时间: date, time, datetime
- 枚举类型:enum
### 特别说明的类型
decimal表示浮点数,如decimal(5,2)表示共存5位数,小数占2位
<br>char表示固定长度的字符串,如char(3),如果填充'ab'时会补一个空格为'ab '
<br>varchar表示可变长度的字符串,如varchar(3),填充'ab'时就会存储'ab'
<br>字符串text表示存储大文本,当字符大于4000时推荐使用
<br>对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器上,然后在表中存储这个文件的保存路径
<br>
更全的数据类型可以参考:http://blog.csdn.net/anxpp/article/details/51284106
### 数值类型
![](https://img.kancloud.cn/bf/63/bf63731bbe4e58a28a8315f50a92300e_772x295.png)
### 字符串
![](https://img.kancloud.cn/dd/e1/dde1a7ebe2a1d6830c5bfe5b26aded65_770x161.png)
### 日期时间类型
![](https://img.kancloud.cn/fe/91/fe91d5370ea71fbaacd699c80865d81a_770x242.png)
## 约束
* 主键primary key:物理上存储的顺序
* 非空not null:此字段不允许填写空值
* 惟一unique:此字段的值不允许重复
* 默认default:当不填写此值时会使用默认值,如果填写时以填写为准
* 外键foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常
- 1-数据库-基本使用
- 1-1-数据存储
- 1-2-数据库
- 1-3-MySQL安装和配置
- 1-4-SQL
- 1-5-数据完整性
- 1-6-命令行操作数据库
- 2-MySQL查询
- 2-1-MySQL查询
- 2-2-条件
- 2-3-聚合函数
- 2-4-分组
- 2-5-排序
- 2-6-分页
- 2-7-连接查询
- 2-8-子查询
- 2-9-自关联
- 3-MySQL外键
- 4-MySQL与Python交互
- 4-1-数据准备
- 4-2-数据表的拆分
- 4-3-Python操作MySQL
- 5-MySQL高级
- 5-1-视图
- 5-2-事务
- 5-3-索引
- 5-4-账户管理(了解)
- 6-数据库存储引擎
- 6-1-MyISAM存储引擎
- 6-2-Innodb存储引擎
- 6-3-CSV存储引擎
- 6-4-Memory存储引
- 7-MySQL基准测试
- 8-explain分析SQL语句
- 8-1-影响服务器性能的几个方面
- 8-2-explain分析SQL
- 9-索引优化案例
- 10-索引优化
- 11-排序优化
- 12-慢查询日志
- 13-Show Profile进行SQL分析
- 14-数据库锁
- 15-主从复制
- 16-MySQL分区表
- 17-MySQL操作规范