MySQL基础——针对实习面试

108 阅读6分钟

MySQL基础

image.png

什么是关系型数据库?

关系型数据库(Relational Database)是一种==基于关系模型==的数据库,它通过表格的形式来组织数据。关系模型是由 IBM 的研究员 E.F. Codd 在 1970 年提出的,它使用二维表格来表示数据,每个表由行(记录)和列(字段)组成,每行代表一个实体,每列代表一个属性。

什么是SQL?

SQL(Structured Query Language,结构化查询语言)是一种==专门用来与关系型数据库通信的编程语言==。它被广泛用于==创建、查询、更新和管理==关系型数据库中的数据。SQL 语言的功能非常强大,它允许用户执行各种数据库操作,包括但不限于:

  1. 数据查询(Querying):使用 SELECT 语句来检索数据库中的数据。
  2. 数据操作(Data Manipulation):使用 INSERTUPDATEDELETE 语句来添加、修改和删除数据。
  3. 数据定义(Data Definition):使用 CREATEALTERDROP 语句来创建、修改和删除数据库、表、视图、索引等数据库对象。
  4. 数据控制(Data Control):使用 GRANTREVOKE 语句来控制用户对数据库的访问权限。
  5. 事务控制(Transaction Control):使用 BEGIN TRANSACTIONCOMMITROLLBACK 语句来管理事务,确保数据的一致性和完整性。

SQL 语言的一些基本组成部分包括:

  • 数据类型:定义数据的类型,如整型(INT)、浮点型(FLOAT)、字符型(VARCHAR)等。
  • 表达式:由列名、常量、运算符和函数组成的表达式,用于计算和操作数据。
  • 子句:如 WHEREGROUP BYORDER BY 等,用于指定查询的条件、分组和排序。
  • 连接:使用 JOIN 语句来连接多个表,以便进行复杂的查询。

SQL 语言的语法通常遵循 ANSI(美国国家标准协会)的标准,但不同的数据库系统(如 MySQL、PostgreSQL、Oracle、SQL Server 等)可能会有自己的扩展和特定的实现方式。

什么是ACID属性?

ACID属性是数据库事务处理中用来确保事务的可靠性和一致性的四个关键特性,它们是:

  1. 原子性(Atomicity)

    • 原子性意味着事务中的所有操作要么全部完成,要么全部不完成。如果事务中的某个操作失败,整个事务将回滚到事务开始前的状态,就像这个事务从未执行过一样。原子性确保了事务的不可分割性。
  2. 一致性(Consistency)

    • 一致性确保数据库在事务执行前后都保持数据的一致性状态。这意味着一个事务必须从一个一致性的状态转换到另一个一致性的状态。如果事务违反了数据的完整性约束,比如违反了外键约束或违反了业务逻辑规则,那么这个事务将被回滚,以保持数据的一致性。
  3. 隔离性(Isolation)

    • 隔离性保证了并发执行的事务之间的操作不会相互干扰。每个事务都像是在一个独立的环境中执行,对其他事务不可见,直到事务完成。不同的数据库系统提供了不同的隔离级别,如读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)。
  4. 持久性(Durability)

    • 持久性意味着一旦事务被提交,它对数据库的修改就是永久性的,即使系统发生故障也不会丢失。事务日志和备份机制通常用于确保事务的持久性,以便在系统故障时能够恢复数据。

ACID属性是数据库事务的核心特性,它们共同确保了数据库的可靠性和数据的完整性。不同的数据库管理系统可能在实现这些属性时有所不同,特别是在隔离性方面,不同的隔离级别提供了不同程度的数据一致性和并发性能之间的权衡。

什么是MySQL?

MySQL是一种关系型数据库,主要用于持久化存储我们系统中的一些数据。

MySQL为什么流行(它的优点)?

MySQL是一个广泛使用的开源关系型数据库管理系统(RDBMS),它基于SQL(Structured Query Language)进行数据库的管理操作。MySQL最初由瑞典的MySQL AB公司开发,后来被Sun Microsystems公司收购,最终成为Oracle公司的产品。由于其高性能、高可靠性、易用性和灵活性等特点,MySQL被广泛应用于各种应用程序中,尤其是在网络应用领域。

MySQL的主要特点包括:

  1. 多用户多线程:支持多用户并发访问,允许多个用户同时连接数据库并执行操作。

  2. 强大的SQL支持:遵循ANSI SQL标准,支持大部分的SQL功能和语法。

  3. 事务处理:提供事务处理能力,支持ACID属性(原子性、一致性、隔离性、持久性),确保数据的完整性。

  4. 存储引擎:支持多种存储引擎,如InnoDB、MyISAM、Memory等,每种存储引擎都有其特定的特性和用途。

  5. 索引:支持多种索引类型,如B-tree、Hash、R-tree等,以优化查询性能。

  6. 安全性:提供强大的数据加密和访问控制机制,保障数据安全。

  7. 备份与恢复:提供数据备份和恢复功能,支持热备份,即在数据库运行时进行备份操作。

  8. 跨平台支持:可以在多种操作系统上运行,如Linux、Windows、macOS等。

  9. 灵活的授权机制:提供灵活的授权和权限控制,可以对用户进行精细的权限管理。

  10. 易于维护:提供了许多管理工具和实用程序,如mysqladmin、mysqldump等,方便数据库的维护和管理。

MySQL通常用于中小型应用,但也适用于大型应用。它有一个活跃的开源社区,不断有新的功能和改进被加入。此外,还有许多第三方工具和集成选项,使得MySQL成为一个非常灵活和强大的数据库解决方案。

30秒读全文

  1. 关系型数据库是建立在关系模型上的数据库
  2. SQL 是一种结构化查询语言,可以进行数据查询、数据操作、数据定义、数据控制等数据库操作
  3. MySQL是一种关系型数据库,端口为:3306
  4. MySQL的优点:兼容性好、事务处理、支持分库分表、读写分离、高可用
  5. 数据库事务处理中用来确保事务的可靠性和一致性的四个关键特性(ACID):原子性、一致性、隔离性、持久性