MySQL面试题《基础知识》

198 阅读5分钟

My SQL中间有空格是为了让ai朗读的时候能念好。不然就是:M!Y!S!Q!L!

欢迎收听《面试速通》。在本期节目中,我们将深入探讨My SQL的基础知识和常见面试问题,帮助你在面试中脱颖而出。

1. My SQL数据库的基本结构是怎样的?

My SQL数据库的基本结构包括数据库(Database)、表(Table)、行(Row)和列(Column)。数据库是数据的集合,表是数据库中的具体存储单位,每个表由行和列组成,行代表数据记录,列代表数据字段。

2. 数据库的基本操作包括哪些(CRUD)?

CRUD是数据库操作的四个基本功能:

  • Create(创建):插入新数据到数据库中。
  • Read(读取):查询数据库中的数据。
  • Update(更新):修改数据库中的数据。
  • Delete(删除):从数据库中删除数据。

3. 什么是事务?My SQL中的事务特性有哪些?

事务是一组操作的集合,这些操作要么全部执行成功,要么全部回滚。My SQL中的事务特性包括:

  • 原子性(Atomicity):事务中的所有操作要么全部执行成功,要么全部回滚。
  • 一致性(Consistency):事务执行前后,数据库的状态保持一致。
  • 隔离性(Isolation):一个事务的执行不应影响其他事务。
  • 持久性(Durability):事务一旦提交,其结果是永久性的。

4. 解释My SQL中的ACID属性。

ACID属性是事务处理的四个基本特性:

  • 原子性(Atomicity):事务中的所有操作要么全部执行成功,要么全部回滚。
  • 一致性(Consistency):事务执行前后,数据库的状态保持一致。
  • 隔离性(Isolation):一个事务的执行不应影响其他事务。
  • 持久性(Durability):事务一旦提交,其结果是永久性的。

5. 什么是索引?My SQL中常见的索引类型有哪些?

索引是一种用于加速数据查询的数据库对象。My SQL中常见的索引类型包括:

  • 普通索引(Index):加速数据查询,但不保证唯一性。
  • 唯一索引(Unique Index):加速数据查询,并保证列值唯一。
  • 主键索引(Primary Key):一种特殊的唯一索引,不允许空值。
  • 全文索引(Full-text Index):用于全文搜索,主要用于文本字段。
  • 复合索引(Composite Index):由多个列组成的索引。

6. 什么是主键、外键、唯一键和复合键?

  • 主键(Primary Key):唯一标识表中的每一行,不允许空值。
  • 外键(Foreign Key):用于建立和强化两个表之间的连接,指向另一个表的主键。
  • 唯一键(Unique Key):保证列中的所有值都是唯一的,但允许空值。
  • 复合键(Composite Key):由两个或多个列组成的键,用于唯一标识表中的每一行。

7. 什么是SQL注入?如何防止SQL注入?

SQL注入是一种攻击手段,攻击者通过插入恶意的SQL代码来执行未经授权的SQL操作。防止SQL注入的方法包括:

  • 使用准备语句(Prepared Statements)和参数化查询。
  • 对用户输入进行严格的验证和过滤。
  • 使用ORM(对象关系映射)工具。
  • 限制数据库用户权限。

8. My SQL中的数据类型有哪些?各自的特点是什么?

My SQL中的数据类型主要包括:

  • 数值类型:如INT、FLOAT、DOUBLE,用于存储数字。
  • 字符串类型:如CHAR、VARCHAR、TEXT,用于存储字符串。
  • 日期和时间类型:如DATE、TIME、DATETIME、TIMESTAMP,用于存储日期和时间。
  • 布尔类型:如BOOLEAN,用于存储真或假值。

9. My SQL中的DATETIME和TIMESTAMP的区别是什么?

  • DATETIME:存储从1000-01-01 00:00:00到9999-12-31 23:59:59的日期和时间,不依赖于时区。
  • TIMESTAMP:存储从1970-01-01 00:00:01 UTC到2038-01-19 03:14:07 UTC的日期和时间,依赖于时区,存储时会转换为UTC,读取时会转换为当前时区。

10. My SQL中的int(20)和char(20)以及varchar(20)的区别是什么?

  • INT(20):一个整数类型,括号中的数字表示显示宽度,与存储大小无关。
  • CHAR(20):一个固定长度的字符串类型,不足长度的会用空格补齐。
  • VARCHAR(20):一个可变长度的字符串类型,存储时只占用实际字符长度加上一个额外的字节来记录长度。

11. My SQL中TEXT数据类型的最大长度是多少?

My SQL中TEXT数据类型可以存储的最大长度为65,535个字符。

12. My SQL中BLOB和TEXT有什么区别?

  • BLOB:用于存储二进制大对象(Binary Large Objects),如图像、音频等,不进行字符集转换。
  • TEXT:用于存储大文本数据,会根据字符集进行字符转换。

感谢收听本期《面试速通》。希望这些关于My SQL基础知识和面试问题对你有所帮助。记得关注我们的节目,获取更多面试技巧和知识。我们,下期再见!