MySQL数据库核心概念详解

需积分: 0 1 下载量 68 浏览量 更新于2024-08-04 收藏 53KB MD 举报
"数据库MySQL学习总结" 在MySQL数据库的学习过程中,理解和掌握各种数据类型以及字段属性是至关重要的。数据类型决定了数据库中存储数据的格式和范围,而字段属性则影响着数据的处理方式和规则。 ## 数据库MySQL ### 1-1、数据库的列类型 1. **数值类型**: - `tinyint`:用于存储非常小的整数,占用1字节。 - `smallint`:存储较小的整数,占用2字节。 - `mediumint`:存储中等大小的整数,占用3字节。 - **`int`**:标准整数,占用4字节,是最常用的整数类型。 - `bigint`:存储较大的整数,占用8字节。 - `float`:浮点数,占用4字节,精度相对较低。 - `double`:浮点数,占用8字节,精度较高,但可能存在精度问题。 - `decimal`:用于金融计算,以字符串形式存储浮点数,确保精度。 2. **字符串类型**: - `char`:固定长度的字符串,最大255个字符。 - **`varchar`**:可变长度的字符串,最大可达65536个字符,是存储变长字符串的首选。 - `tinytext`:微型文本,最多能存储2^8-1个字符。 - **`text`**:文本串,最多能存储2^16-1个字符,适合存储大量文本数据。 3. **时间日期类型**: - `date`:仅存储日期,格式为YYYY-MM-DD。 - `time`:仅存储时间,格式为HH:MM:SS。 - **`datetime`**:同时存储日期和时间,最常用的时间格式。 - `timestamp`:时间戳,表示从1970年1月1日到现在的毫秒数,常用于记录数据的修改时间。 - `year`:仅存储年份,可为空。 ### 1-2、数据库的字段属性(重点) - **`Unsigned`**:指定字段为无符号整数,不允许存储负数。 - **`Zerofill`**:零填充,如果数字不足指定宽度,会在前面补零。例如,`int(3)`,5会被表示为005。 - **`自增`**(`auto_increment`):用于创建主键,每新增一条记录,值自动加1。必须是整数类型,可以设定初始值和步长。 - **`非空`**(`Null` vs. `not null`):`not null`约束要求字段不能为空,否则插入数据时会报错。`Null`则允许字段值为空。 - **`默认`**:为字段设定默认值,若插入数据时未指定该字段的值,将使用默认值。 在实际项目开发中,常见的字段设计包括: - `id`:作为主键,通常使用`int`类型配合`auto_increment`属性。 - `version`:用于实现乐观锁机制,防止并发更新冲突。 - `is_delete`:伪删除标记,用于逻辑删除,而不是物理删除数据。 - `gmt_create`:创建时间,记录数据的插入时间。 - `gmt_update`:修改时间,记录数据的最近更新时间。 理解并熟练运用这些数据类型和字段属性,能够帮助我们更好地设计数据库表结构,优化数据存储和查询效率,保证数据的完整性和一致性。在进行数据库设计时,应根据实际需求灵活选择合适的数据类型,并合理设置字段属性,以达到最佳的数据库性能和管理效果。