数码教程网
柔彩主题三 · 更轻盈的阅读体验

关系型数据库面试题整理:高频考点一网打尽

发布时间:2026-01-07 14:30:44 阅读:7 次

常见的关系数据有哪些

说到关系型数据库,平时用得最多的就是 MySQL、Oracle、SQL Server 和 PostgreSQL。比如你在开发一个电商后台,用户订单、商品信息这些结构化数据,基本都会存在这类数据库里。面试官常会问你用过哪些,这时候别说只用过 Excel,那不是关系型数据库。

主键和外键的作用是什么

主键就像身份证号,每条记录都得有唯一标识。比如用户表里的 user_id,不能重复也不能为空。外键则是用来建立关联的,比如订单表里的 user_id 就是外键,指向用户表的主键。这样就能知道每个订单是谁下的。

说说事务的 ACID 特性

ACID 其实就是四个特性的缩写。A 是原子性,操作要么全做,要么全不做,像转账这种操作就必须保证;C 是一致性,数据从一个合法状态变到另一个合法状态;I 是隔离性,多个事务同时执行时互不干扰;D 是持久性,一旦提交,数据就不会丢。银行系统最看重这个。

什么是索引,有什么优缺点

索引就像书的目录,能快速定位数据。比如你在百万级用户表里查一个人,没索引就得一页页翻,有索引直接跳到位置。但索引也不是白吃的,它会占用空间,而且插入、更新数据时要同步维护索引,速度会受影响。

MySQL 中 InnoDB 和 MyISAM 的区别

InnoDB 支持事务、行级锁、外键,适合高并发写场景,比如订单系统。MyISAM 不支持事务,锁是表级的,读快但写容易堵,适合日志类只读多的场景。现在大多数项目都用 InnoDB。

SQL 查询优化有哪些常用方法

先看有没有走索引,可以用 EXPLAIN 分析执行计划。避免 SELECT *,只取需要的字段。大表连接注意关联字段有没有索引。分页查询别用 OFFSET 深翻,容易拖慢,可以记上一次 ID 接着查。

写一个左连接查询的例子

SELECT u.name, o.order_no 
FROM users u 
LEFT JOIN orders o ON u.id = o.user_id;

这条语句会列出所有用户,不管有没有订单。如果换成 INNER JOIN,就只显示有订单的用户了。面试时经常让你手写这类 SQL,得练熟。

什么是范式,一般用到第几范式

范式是设计表结构的规范。第一范式要求字段原子性,不能再拆;第二范式要求完全依赖主键,不能部分依赖;第三范式要求不能有传递依赖。实际开发中一般做到第三范式就够了,有时候为了查询效率也会适度反范式,比如把用户名直接冗余到订单表里。