30 道 MySQL 面试题全放送!


作者 |?LemonCoder
来源 | 于后端技术学堂(ID:lemon10240)


关系型数据库
什么是关系型数据库?
关系型数据库有什么优势?
易于理解。关系型二维表的结构非常贴近现实世界,二维表格,容易理解。 支持复杂查询。可以用 SQL 语句方便的在一个表以及多个表之间做非常复杂的数据查询。 支持事务。可靠的处理事务并且保持事务的完整性,使得对于安全性能很高的数据访问要求得以实现。

MySQL 数据库
什么是 SQL
什么是MySQL?
MySQL 和 MariaDB 傻傻分不清楚?
一个彩蛋
如何查看 MySQL 当前版本号?
Server:???MySQL
Server?version:??5.5.45
Protocol?version:?10
+------------------------+
|?version()??????????????|
+------------------------+
|?5.5.45-xxxxx?|
+------------------------+

基础数据类型
MySQL 有哪些数据类型?
CHAR 和 VARCHAR的区别?
共同点
CHAR类型特点
CHAR 最多可以存储 255 个字符 (注意不是字节),字符有不同的编码集,比如 UTF8 编码 (3字节)、GBK 编码 (2字节) 等。 对于 CHAR(M) 如果实际存储的数据长度小于M,则 MySQL 会自动会在它的右边用空格字符补足,但是在检索操作中那些填补出来的空格字符会被去掉。
VARCHAR类型特点
VARCHAR 的最大长度为 65535 个字节。 VARCHAR 存储的是实际的字符串加1或2个字节用来记录字符串实际长度,字符串长度小于255字节用1字节记录,超过255就需要2字节记录。
VARCHAR(50) 能存放几个 UTF8 编码的汉字?
int(10) 和 bigint(10) 能存储的数据大小一样吗?
int 能存储四字节有符号整数。 bigint 能存储八字节有符号整数。
显示宽度指明 Mysql 最大可能显示的数字个数,数值的位数小于指定的宽度时数字左边会用空格填充,空格不容易看出。 如果插入了大于显示宽度的值,只要该值不超过该类型的取值范围,数值依然可以插入且能够显示出来。 建表的时候指定 zerofill 选项,则不足显示宽度的部分用 0 填充,如果是 1 会显示成 0000000001。 如果没指定显示宽度, bigint 默认宽度是 20 ,int 默认宽度 11。

存储引擎相关
MySQL 存储引擎类型有哪些?
#?查询结果表中的 Engine 字段指示存储引擎类型。
show?table?status?from?'your_db_name'?where?name='your_table_name';?
InnoDB 存储引擎应用场景是什么?
InnoDB存储引擎特性有哪些?
InnoDB ?引擎的四大特性是什么?
插入缓冲(Insert buffer)
二次写 (Double write)
自适应哈希索引 (Adaptive Hash Index)
缓存池
MyISAM存储引擎应用场景有哪些?
MyISAM存储引擎特性有哪些?
MyISAM ?与 ?InnoDB ?存储引擎 5 大区别
InnoDB 支持事物,而MyISAM不支持事物 InnoDB 支持行级锁,而MyISAM支持表级锁 InnoDB 支持MVCC, 而MyISAM不支持 InnoDB 支持外键,而MyISAM不支持 InnoDB 不支持全文索引,而MyISAM支持

SELECT COUNT(*) 在哪个引擎执行更快?

MySQL 基础知识
说一下数据库设计三范式是什么?
SQL 语句有哪些分类?
DDL:数据定义语言(create alter drop) DML:数据操作语句(insert update delete) DTL:数据事务语句(commit collback savapoint) DCL:数据控制语句(grant revoke)
数据库删除操作中的 delete、drop、 truncate 区别在哪?
当不再需要该表时可以用 drop 来删除表; 当仍要保留该表,但要删除所有记录时, 用? truncate 来删除表中记录。 当要删除部分记录时(一般来说有 WHERE 子句约束) 用 delete 来删除表中部分记录。
什么是 MySql 视图?
CREATE
????[OR?REPLACE]
????[ALGORITHM?=?{UNDEFINED?|?MERGE?|?TEMPTABLE}]
????[DEFINER?=?user]
????[SQL?SECURITY?{?DEFINER?|?INVOKER?}]
????VIEW?view_name?[(column_list)]
????AS?select_statement
????[WITH?[CASCADED?|?LOCAL]?CHECK?OPTION]?
OR REPLACE:如果视图存在,则替换已有视图。 ALGORITHM:视图选择算法,默认算法是 UNDEFINED(未定义的)由 MySQL 自动选择要使用的算法。 DEFINER:指定视图创建者或定义者,如果不指定该选项,则创建视图的用户就是定义者。 SQL SECURITY:SQL 安全性,默认为 DEFINER。 select_statement:创建视图的 SELECT 语句,可以从基表或其他视图中选择数据。 WITH CHECK OPTION:表示视图在更新时保证约束,默认是 CASCADED。
使用 MySQL 视图有何优点?
操作简单方便。视图用户完全不需要关心视图对应的表的结构、关联条件和筛选条件,对用户来说已经是过滤好的复合条件的结果集。 数据更加安全。视图用户只能访问视图中的结果集,通过视图可以把对表的访问权限限制在某些行和列上面。 数据隔离。屏蔽了源表结构变化对用户带来的影响,源表结构变化视图结构不变。
MySql 服务默认端口号是多少 ?
用 DISTINCT 过滤多列的规则?
?name????????number
???Tencent??????1
???Alibaba??????2
???Bytedance????3
???Meituan??????3
?name???????
???Tencent???
???Alibaba????
???Bytedance?
???Meituan??
?number???name
?????????1??Tencent
?????????2??Alibaba
?????????3??Bytedance
?????????3??Meituan
??number???name
?????????1??Tencent
?????????2??Alibaba
?????????3??Bytedance
什么是存储过程?
存储过程能实现较快的执行速度。 存储过程可以用流程控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。 存储过程可被作为一种安全机制来充分利用。 存储过程能够减少网络流量。
?delimiter?分隔符
create?procedure|proc?proc_name()
begin
????sql语句
end?分隔符
delimiter?;????--还原分隔符,为了不影响后面的语句的使用
--默认的分隔符是;但是为了能在整个存储过程中重用,因此一般需要自定义分隔符(除\外)
show?procedure?status?like?"";?--查询存储过程,可以不适用like进行过滤
drop?procedure?if?exists;--删除存储过程
存储过程和函数好像差不多,你说说他们有什么区别?
存储过程和函数都是为了可重复的执行操作数据库的 SQL 语句的集合。 存储过程和函数都是一次编译后缓存起来,下次使用就直接命中已经编译好的 sql 语句,减少网络交互提高了效率。
标识符不同,函数的标识符是 function,存储过程是 procedure。 函数返回单个值或者表对象,而存储过程没有返回值,但是可以通过 OUT 参数返回多个值。 函数限制比较多,比如不能用临时表,只能用表变量,一些函数都不可用等,而存储过程的限制相对就比较少。 一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。 函数的参数只能是 IN 类型,存储过程的参数可以是 IN OUT INOUT 三种类型。 存储函数使用 select 调用,存储过程需要使用 call 调用。
最近我把写的所有技术文章都整理在 GtHub 上了,按模块分门别类方便阅读,欢迎关注和?Star,项目地址:https://github.com/lemonchann/TechClass


更多精彩推荐
?遭遇 XSS 跨站脚本攻击?稳住,这些方法可保你渡劫 | 附代码、图解 ?CSDN送你互联网大厂面试机会啦! ?赞!网红程序员 AI 修复多国古老街景视频 ?赠书 | 人工智能识万物:卷积神经网络的前世今生 ?MySQL 索引分析除了 EXPLAIN 还有什么方法? ?医疗数字化:区块链或成最强辅助 点分享 点点赞 点在看
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
- 1 习近平将发表二〇二六年新年贺词 7904141
- 2 2026年国补政策来了 7808738
- 3 东部战区:开火!开火!全部命中! 7712893
- 4 2026年这些民生政策将惠及百姓 7616985
- 5 小学食堂米线过期2.5小时被罚5万 7519709
- 6 解放军喊话驱离台军 原声曝光 7428214
- 7 为博流量直播踩烈士陵墓?绝不姑息 7327605
- 8 每月最高800元!多地发放养老消费券 7238391
- 9 数字人民币升级 1月1日起将计付利息 7141831
- 10 2026年1月1日起 一批新规将施行 7040675











CSDN
