Mysql重点部分汇总
什么是Mysql
MySQL是一个关系型数据库管理系统,在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展。
关系型数据库(Relational Database,RDBMS)是一种基于关系模型的数据库,使用表结构来存储和组织数据。关系型数据库的特点包括:
- 结构化:数据以表格形式存储,每个表格可以包含多个行和列,表格之间的数据可以通过键和约束进行关联。
- 易于维护:关系型数据库有严格的完整性和约束规则,可以确保数据的一致性和可靠性。
- 查询方便:关系型数据库支持 SQL 语言,可以进行复杂的查询和操作数据。
- 数据冗余:为了保持数据的关联性,通常需要存储重复的数据。
非关系型数据库(Not-Only-SQL,NoSQL)是一种分布式、非关系型的数据库,通常采用键值对、文档、图形等结构存储数据。非关系型数据库的特点包括:
- 分布式:非关系型数据库可以分布在多个节点上,能够更好地应对大规模数据处理和高并发访问。
- 灵活性:非关系型数据库没有固定的结构,可以轻松应对数据结构的变化和扩展。
- 性能:非关系型数据库通常具有更好的读写性能,尤其是在处理大量数据和高并发请求时。
- 可扩展性:非关系型数据库可以通过增加节点或调整配置来扩展存储容量和性能。
两者的异同点如下:
- 数据结构:关系型数据库以表格形式存储数据,非关系型数据库采用键值对、文档或图形等结构。
- 数据一致性:关系型数据库通常具有较高的数据一致性和可靠性,而非关系型数据库通常采用最终一致性模型。
- 查询语言:关系型数据库使用 SQL 语言进行查询和操作数据,非关系型数据库通常使用特定领域的查询语言或 API。
- 数据操作:关系型数据库支持丰富的数据操作,如事务处理、联合、排序、聚合等,非关系型数据库通常支持基本的读写操作和聚合查询。
- 扩展性:非关系型数据库通常更容易扩展,可以通过增加节点或调整配置来提高性能和容量,而关系型数据库通常需要更复杂的设计和架构来满足扩展需求。
- 数据冗余:关系型数据库通常需要存储重复的数据以维护数据的关联性,而非关系型数据库通常没有这种需求。
- 可靠性:关系型数据库通常具有较高的可靠性,因为它们具有严格的完整性和约束规则,而非关系型数据库可能没有这些规则的限制。
在选择使用哪种类型的数据库时,需要考虑应用场景、数据规模、数据一致性、可靠性等因素。
Mysql数据类型
分类 | 类型名称 | 说明 |
---|---|---|
整数类型 | tinyInt | 很小的整数(8位二进制) |
整数类型 | smallint | 小的整数(16位二进制) |
整数类型 | mediumint | 中等大小的整数(24位二进制) |
整数类型 | int(integer) | 普通大小的整数(32位二进制) |
小数类型 | float | 单精度浮点数 |
小数类型 | double | 双精度浮点数 |
小数类型 | decimal(m,d) | 压缩严格的定点数 |
日期类型 | year | YYYY 1901~2155 |
日期类型 | time | HH:MM:SS -838:59:59~838:59:59 |
日期类型 | date | YYYY-MM-DD 1000-01-01~9999-12-3 |
日期类型 | datetime | YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~ 9999-12-31 23:59:59 |
日期类型 | timestamp | YYYY-MM-DD HH:MM:SS 19700101 00:00:01 UTC~2038-01-19 03:14:07UTC |
文本、二进制类型 | CHAR(M) | M为0~255之间的整数 |
文本、二进制类型 | VARCHAR(M) | M为0~65535之间的整数 |
文本、二进制类型 | TINYBLOB | 允许长度0~255字节 |
文本、二进制类型 | BLOB | 允许长度0~65535字节 |
文本、二进制类型 | MEDIUMBLOB | 允许长度0~167772150字节 |
文本、二进制类型 | LONGBLOB |