MySQL 面试题 14 道
在公众号后台回复: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