SQL 是 Structured Query Language 的缩写,是用于管理和处理关系数据库的标准编程语言。在 BAT (百度、阿里巴巴、腾讯)等互联网大公司中,SQL面试题是技术面试的重要组成部分,因为掌握 SQL 是任何数据库工程师或数据分析师的基础技能。以下是一些常见问题的详细解答:
-
ID自增主键:在 MySQL 中,如果删除了记录然后重启数据库并插入新记录,自增ID会继续递增,不会重用已删除的ID。因此,新插入的记录ID将是18。
-
MySQL技术特点:MySQL 具有高性能、高可用性、安全性、跨平台支持、易于使用和社区活跃等特点。它支持多种存储引擎,如 InnoDB(支持事务处理)和 MyISAM(非事务处理)。
-
Heap表:Heap 表是内存中的临时表,通常用于快速处理大量数据,但不持久化存储,当数据库关闭时,数据将丢失。
-
默认端口:MySQL 服务器默认监听的端口是 3306。
-
MySQL与Oracle比较:MySQL 的优势包括低成本、快速部署、简单易用,而 Oracle 则更侧重于企业级的复杂事务处理和高度可扩展性。
-
FLOAT与DOUBLE:FLOAT 占用 4 字节存储空间,精度较低;DOUBLE 占用 8 字节,能表示更大范围和更精确的数值。
-
CHAR_LENGTH与LENGTH:CHAR_LENGTH 返回字符串的字符数,不考虑多字节字符;LENGTH 返回字符串的字节数,考虑多字节字符编码。
-
事务隔离级别:MySQL 的四种隔离级别是 读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)、可重复读(REPEATABLE READ) 和 串行化(SERIALIZABLE)。逐级提高隔离级别可以减少并发问题,但可能导致更高的性能开销。
-
ENUM用法:ENUM 是一个预定义的字符串列表,列中的每个值都必须是列表中的一个元素。
-
REGEXP定义:在 SQL 中,REGEXP 是一个正则表达式匹配操作符,用于判断字符串是否符合某种模式。
-
CHAR与VARCHAR的区别:CHAR 是固定长度的字符串类型,而 VARCHAR 是可变长度的,VARCHAR 更节省空间,但 CHAR 对存储短字符串更高效。
-
字符串类型:常见...