MySQL 面试题 14 道

共 2393字,需浏览 5分钟

 ·

2022-06-27 19:16

在公众号后台回复:JGNB,可获取杰哥原创的 PDF 手册。

分享在面试中经常被问到的 MySQL 题目,本文总结了面试中的经典问题。

1.主键(primary key)和候选键(candidate key)有什么区别?

候选键 - 候选键可以是任何列或可以作为数据库中唯一键的列组合。一张表中可以有多个候选键。每个候选键都可以作为主键。

主键 - 主键是唯一标识记录的列或列组合。只有一个候选键可以是主键。

2. NOW() 和 CURRENT_DATE() 有什么区别?

NOW () 命令用于以小时、分钟和秒显示当前年、月、日。

CURRENT_DATE() 仅显示当前年、月和日期。

3. MySQL 表中允许多少个触发器?

以下是 MySQL 表中允许的触发器。

  • 插入前

  • 插入后

  • 更新前

  • 更新后

  • 删除前

  • 删除后

4.我们可以为索引创建多少列?

16

5. 如何将数据从一张表复制到另一张表?

INSERT INTO table2 (id,uid,changed,status,assign_status) SELECT id,uid,now(),'Pending','Assigned' FROM table1

6.如何在不复制数据的情况下复制表?

CREATE TABLE users_bck SELECT * FROM users WHERE 1=0;

7.什么是 MySQL?

MySQL 是一个免费提供的开源关系数据库管理系统 (RDBMS),它使用结构化查询语言 (SQL)。

SQL 是用于在数据库中添加、访问和管理内容的最流行的语言。它以其快速处理、久经考验的可靠性、易用性和使用灵活性而著称。MySQL 是几乎每个开源 PHP 应用程序的重要组成部分。基于 PHP 和 MySQL 的脚本的好例子是 WordPress、Joomla、Magento 和 Drupal。

8.列出MySQL的特点?

关系数据库管理系统(RDBMS):MySQL 是一个关系数据库管理系统。

  • 易于使用:MySQL 易于使用。您只需掌握 SQL 的基本知识。只需几个简单的 SQL 语句,您就可以构建 MySQL 并与之交互。

  • 它是安全的:MySQL 包含一个可靠的数据安全层,可以保护敏感数据免受入侵者的侵害。密码在 MySQL 中是加密的。

  • 它是可扩展的:MySQL 可以处理几乎任何数量的数据,多达 5000 万行或更多。默认文件大小限制约为 4 GB。但是,您可以将此数字增加到 8 TB 数据的理论限制。

  • 在许多操作系统上兼容:MySQL 兼容在许多操作系统上运行。

  • 允许回滚:MySQL 允许事务回滚、提交和崩溃恢复。

  • 高性能:由于其独特的存储引擎架构,MySQL 更快、更可靠、更便宜。

  • 高灵活性:MySQL 支持大量的嵌入式应用程序,这使得 MySQL 非常灵活。

  • 高生产力:MySQL 使用触发器、存储过程和视图,允许开发人员提供更高的生产力。

9. transaction 和 ACID 属性是什么意思?

事务是工作的逻辑单元,应该执行所有步骤或不执行任何步骤。ACID 是原子性、一致性、隔离性和持久性的缩写,它们是任何事务的属性。

10. 什么是堆表?

堆是没有聚集索引的表。可以在存储为堆的表上创建一个或多个非聚集索引。数据存储在堆中而不指定顺序。通常数据最初是按照行插入表中的顺序存储的,但是数据库引擎可以在堆中移动数据以有效地存储行;因此无法预测数据顺序。要保证从堆返回的行的顺序,您必须使用 ORDER BY 子句。要指定行的存储顺序,请在表上创建聚集索引,使表不是堆。

11. 聚集表与堆表

堆表
  • 数据不按任何特定顺序存储

  • 具体数据不能快速检索,除非也有非聚集索引

  • 数据页未链接,因此顺序访问需要回溯到索引分配映射 (IAM) 页

  • 由于没有聚集索引,因此不需要额外的时间来维护索引

  • 由于没有聚集索引,所以不需要额外的空间来存储聚集索引树

  • 这些表在 sys.indexes 目录视图中的 index_id 值为 0

集群表
  • 数据按照聚集索引键的顺序存储

  • 如果查询使用索引列,可以根据聚集索引键快速检索数据

  • 链接数据页以实现更快的顺序访问

  • 需要额外的时间来维护基于 INSERTS、UPDATES 和 DELETES 的聚集索引

  • 需要额外的空间来存储聚集索引树

  • 这些表在 sys.indexes 目录视图中的 index_id 值为 1

12. 区分 FLOAT 和 DOUBLE?

以下是 FLOAT 和 DOUBLE 的区别:

  • 浮点数以八位精度存储在 FLOAT 中,它有四个字节。

  • 浮点数以 18 位精度存储在 DOUBLE 中,它有 8 个字节。

13. 使用 CREATE 语句可以创建哪些对象?

以下对象是使用 CREATE 语句创建的:

  • DATABASE

  • EVENT

  • FUNCTION

  • INDEX

  • PROCEDURE

  • TABLE

  • TRIGGER

  • USER

  • VIEW

14.主键和唯一键有什么区别

虽然两者都用于强制定义的列的唯一性,但主键会创建聚集索引,而唯一键会在列上创建非聚集索引。主键不允许'NULL',但唯一键允许它。

来自:Linux迷

链接:https://www.linuxmi.com/git-stash.html

推荐阅读:

100+ 道 Linux 面试题(附答案及PDF)


【建议收藏】50 道硬核的 Python 面试题!


干货!常见的SQL面试题:经典50例!


MySQL 高频面试题!


78 道大厂 MongoDB 面试题集锦!


几道网络面试题!看看你都会吗?


面试数十家Linux运维工程师,总结了这些面试题(含答案)


这 40 道 Redis 面试题让你不再慌(附答案)

浏览 31
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报