MySQL学习笔记(三)

数据类型

1. 数值类型

  • 整型

    • INT:通常用于存储整数。
    • SMALLINT:比INT占用空间小,用于较小的整数值。
    • BIGINT:用于存储较大的整数值。
    • TINYINT:占用空间最小的整型,通常用于布尔值或小范围的枚举。
  • 浮点数和定点数

    • FLOAT:单精度浮点数。
    • DOUBLE:双精度浮点数,比FLOAT更精确。
    • DECIMAL(或NUMERIC):用于存储精确的小数,可以指定精度。

2. 字符串类型

  • 固定长度字符串

    • CHAR:固定长度的字符串,不足部分用空格填充。
  • 可变长度字符串

    • VARCHAR:可变长度的字符串,只占用必要的空间。
  • 文本数据

    • TEXT:用于存储大量文本数据。

3. 日期和时间类型

  • 日期和时间
    • DATE:格式为YYYY-MM-DD
    • TIME:格式为HH:MM:SS
    • DATETIME:格式为YYYY-MM-DD HH:MM:SS
    • TIMESTAMP:与DATETIME类似,但时间戳是自Unix纪元(1970年1月1日)以来的秒数。

4. 二进制数据类型

  • 二进制字符串

    • BINARY:固定长度的二进制字符串。
    • VARBINARY:可变长度的二进制字符串。
  • 二进制大对象

    • BLOB:二进制大对象,用于存储二进制文件。
    • MEDIUMBLOBLONGBLOB:用于存储更大的二进制文件。

5. 布尔类型

  • 布尔值
    • BOOLEAN:存储真(TRUE)或假(FALSE)。
    • BIT:有时用于存储单个布尔值。

6. 枚举类型

  • ENUM:存储一组预定义的值,例如ENUM('value1', 'value2', 'value3')

7. 集合类型

  • SET:存储多个值的集合,例如SET('value1', 'value2', 'value3')

8. 其他注意事项

  • 精度和范围:了解每种数据类型的精度和范围,以确保数据的正确存储。
  • 默认值:为列指定默认值,以便在没有提供值时使用。
  • 非空约束:使用NOT NULL约束确保列不接受空值。
  • 主键和外键:了解如何使用数值和字符串类型作为主键和外键。
  • 索引:选择合适的数据类型可以提高查询性能和索引效率。

修改表结构 

修改表结构是数据库管理中常见的操作,以下是一些关键点,可以作为修改表结构时的笔记:

1. 使用ALTER TABLE语句

  • ALTER TABLE是用于修改现有数据库表结构的DDL(数据定义语言)语句。

2. 添加列

  • 使用ADD COLUMN子句向表中添加新列
ALTER TABLE table_name ADD COLUMN column_name datatype;

3. 删除列

  • 使用DROP COLUMN子句从表中删除列
ALTER TABLE table_name DROP COLUMN column_name;
  • 注意:删除列会丢失该列的所有数据,操作前需谨慎考虑。

4. 修改列

  • 使用MODIFY COLUMN子句修改列的数据类型或其它属性。
ALTER TABLE table_name MODIFY COLUMN column_name datatype;
  • 如果只是修改列的非数据类型属性(如默认值),可以使用ALTER COLUMN

5. 重命名列

  • 使用CHANGE COLUMN子句重命名列。
ALTER TABLE table_name CHANGE COLUMN old_column_name new_column_name datatype;
  • 注意:这也会改变列的数据类型。

6. 重命名表

  • 使用RENAME TO子句重命名表
ALTER TABLE old_table_name RENAME TO new_table_name;

7. 添加索引

  • 使用ADD INDEX子句添加索引。
ALTER TABLE table_name ADD INDEX index_name (column_name);

8. 删除索引

  • 使用DROP INDEX子句删除索引
ALTER TABLE table_name DROP INDEX index_name;

9. 添加约束

  • 使用ADD CONSTRAINT子句添加约束,如主键、外键、唯一、检查等。
ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY (column_name);

10. 删除约束

  • 使用DROP CONSTRAINT子句删除约束。
ALTER TABLE table_name DROP CONSTRAINT constraint_name;

11. 考虑性能影响

  • 修改表结构可能会影响数据库性能,特别是在生产环境中。在执行这些操作之前,考虑在低峰时段进行,或者在测试环境中进行测试。

12. 备份数据

  • 在修改表结构之前,备份相关数据以防万一操作出错导致数据丢失。

13. 检查依赖

  • 在删除或修改列之前,检查是否有视图、存储过程、触发器等依赖于这些列,以免破坏数据库的完整性。

14. 事务管理

  • 考虑将修改表结构的操作放在事务中,以便在出现错误时可以回滚到原始状态。

15. 文档更新

  • 修改表结构后,更新相关的文档和代码,确保所有使用该表的应用程序都能正确地处理新的表结构。

通过遵循这些笔记,你可以更安全、更有效地管理数据库表结构的变更。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值