MySQL 基础面试题解析

数据类型

1. MySQL 中有哪些常见的数据类型?

  • 数值类型:INT, TINYINT, SMALLINT, MEDIUMINT, BIGINT, FLOAT, DOUBLE, DECIMAL
  • 字符串类型:CHAR, VARCHAR, TEXT, BLOB
  • 日期和时间类型:DATE, TIME, DATETIME, TIMESTAMP
  • 枚举类型:ENUM
  • 集合类型:SET

2. CHAR 和 VARCHAR 的区别是什么?

CHAR 用于存储固定长度的字符串,例如 CHAR(10) 始终占用 10 个字节,不足 10 个字节则用空格填充。VARCHAR 用于存储可变长度的字符串,例如 VARCHAR(10) 最多可以存储 10 个字节,实际占用空间取决于字符串的长度。

3. 什么是索引?

索引是一种数据结构,可以提高数据库查询效率。它类似于书籍的目录,可以快速定位到所需数据的位置。

4. 索引有哪些类型?

常见的索引类型包括:

  • 主键索引 (PRIMARY KEY)
  • 唯一索引 (UNIQUE)
  • 普通索引 (INDEX)
  • 全文索引 (FULLTEXT)

查询语句

5. 如何查询数据库中所有的表?

SHOW TABLES;

6. 如何查询某个表的所有列名?

DESCRIBE table_name;

7. 如何查询指定条件的数据?

SELECT column1, column2 FROM table_name WHERE condition;

8. 如何对查询结果进行排序?

SELECT column1, column2 FROM table_name ORDER BY column1 ASC/DESC;

9. 如何对查询结果进行分组统计?

SELECT column1, COUNT(*) FROM table_name GROUP BY column1;

事务

10. 什么是事务?

事务是指一组数据库操作,这些操作要么全部成功,要么全部失败。

11. 事务的 ACID 属性是什么?

  • 原子性 (Atomicity): 事务是一个不可分割的整体,要么全部成功,要么全部失败。
  • 一致性 (Consistency): 事务必须使数据库从一个一致性状态转换到另一个一致性状态。
  • 隔离性 (Isolation): 多个事务并发执行时,每个事务都感觉不到其他事务的存在。
  • 持久性 (Durability): 事务一旦提交,其结果将永久保存在数据库中。

其他

12. 什么是存储过程?

存储过程是一组预编译的 SQL 语句,存储在数据库中,可以被应用程序调用执行。

13. 什么是触发器?

触发器是一种特殊的存储过程,它在指定的数据库事件发生时自动执行。

14. 什么是视图?

视图是从一个或多个表中导出的虚拟表,它不存储实际数据,而是根据定义的查询语句动态生成数据。