百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

MySQL经典面试题 14 道

itomcoil 2025-01-09 13:34 28 浏览

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


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

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

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


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

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

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


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

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

  • 插入前
  • 插入后
  • 更新前
  • 更新后
  • 删除前
  • 删除后



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

16


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

NSERT 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',但唯一键允许它。

相关推荐

selenium(WEB自动化工具)

定义解释Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,10,11),MozillaF...

开发利器丨如何使用ELK设计微服务中的日志收集方案?

【摘要】微服务各个组件的相关实践会涉及到工具,本文将会介绍微服务日常开发的一些利器,这些工具帮助我们构建更加健壮的微服务系统,并帮助排查解决微服务系统中的问题与性能瓶颈等。我们将重点介绍微服务架构中...

高并发系统设计:应对每秒数万QPS的架构策略

当面试官问及"如何应对每秒几万QPS(QueriesPerSecond)"时,大概率是想知道你对高并发系统设计的理解有多少。本文将深入探讨从基础设施到应用层面的解决方案。01、理解...

2025 年每个 JavaScript 开发者都应该了解的功能

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发。1.Iteratorhelpers开发者...

JavaScript Array 对象

Array对象Array对象用于在变量中存储多个值:varcars=["Saab","Volvo","BMW"];第一个数组元素的索引值为0,第二个索引值为1,以此类推。更多有...

Gemini 2.5编程全球霸榜,谷歌重回AI王座,神秘模型曝光,奥特曼迎战

刚刚,Gemini2.5Pro编程登顶,6美元性价比碾压Claude3.7Sonnet。不仅如此,谷歌还暗藏着更强的编程模型Dragontail,这次是要彻底翻盘了。谷歌,彻底打了一场漂亮的翻...

动力节点最新JavaScript教程(高级篇),深入学习JavaScript

JavaScript是一种运行在浏览器中的解释型编程语言,它的解释器被称为JavaScript引擎,是浏览器的一部分,JavaScript广泛用于浏览器客户端编程,通常JavaScript脚本是通过嵌...

一文看懂Kiro,其 Spec工作流秒杀Cursor,可移植至Claude Code

当Cursor的“即兴编程”开始拖累项目质量,AWS新晋IDEKiro以Spec工作流打出“先规范后编码”的系统工程思维:需求-设计-任务三件套一次生成,文档与代码同步落地,复杂项目不...

「晚安·好梦」努力只能及格,拼命才能优秀

欢迎光临,浏览之前点击上面的音乐放松一下心情吧!喜欢的话给小编一个关注呀!Effortscanonlypass,anddesperatelycanbeexcellent.努力只能及格...

JavaScript 中 some 与 every 方法的区别是什么?

大家好,很高兴又见面了,我是姜茶的编程笔记,我们一起学习前端相关领域技术,共同进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力在JavaScript中,Array.protot...

10个高效的Python爬虫框架,你用过几个?

小型爬虫需求,requests库+bs4库就能解决;大型爬虫数据,尤其涉及异步抓取、内容管理及后续扩展等功能时,就需要用到爬虫框架了。下面介绍了10个爬虫框架,大家可以学习使用!1.Scrapysc...

12个高效的Python爬虫框架,你用过几个?

实现爬虫技术的编程环境有很多种,Java、Python、C++等都可以用来爬虫。但很多人选择Python来写爬虫,为什么呢?因为Python确实很适合做爬虫,丰富的第三方库十分强大,简单几行代码便可实...

pip3 install pyspider报错问题解决

运行如下命令报错:>>>pip3installpyspider观察上面的报错问题,需要安装pycurl。是到这个网址:http://www.lfd.uci.edu/~gohlke...

PySpider框架的使用

PysiderPysider是一个国人用Python编写的、带有强大的WebUI的网络爬虫系统,它支持多种数据库、任务监控、项目管理、结果查看、URL去重等强大的功能。安装pip3inst...

「机器学习」神经网络的激活函数、并通过python实现激活函数

神经网络的激活函数、并通过python实现whatis激活函数感知机的网络结构如下:左图中,偏置b没有被画出来,如果要表示出b,可以像右图那样做。用数学式来表示感知机:上面这个数学式子可以被改写:...