MySQL关卡任务书

news/2024/12/22 23:58:40/

基础任务

1. MySQL中char和varchar的区别,varchar(100)中的一百的含义,能存放多少汉字?

CHAR类型用于固定长度的字符串。当存储数据时,会自动填充到指定长度,即使实际内容没有达到该长度。
VARCHAR类型用于可变长度的字符串。它只使用实际需要的空间,外加1或2字节来记录长度(取决于最大长度)。
VARCHAR(100)中的100表示可以存储的最大字符数。如果是以UTF-8编码存储汉字,一个汉字通常占用3个字节,因此最多可以存储约33个汉字(具体数量还取决于汉字的实际编码)。

2. MySQL:左查询的特点,左右查询的区别

左连接(LEFT JOIN)返回所有左表中的记录,即使在右表中没有匹配。结果集中的右表字段将包含NULL。
右连接(RIGHT JOIN)与左连接相反,返回所有右表中的记录,即使在左表中没有匹配。

3. MySQL的约束有哪些?分别有什么作用?

主键(Primary Key): 确保每行数据的唯一性。
外键(Foreign Key): 建立表之间的链接,确保引用完整性。
唯一(Unique): 确保列中的所有值都是唯一的。
检查(Check): 限制列中允许的值范围。
非空(Not Null): 确保列不能有NULL值。
默认(Default): 当没有为列指定值时,给定默认值。

4. WHERE和HAVING的区别

WHERE子句用于从表中选取行,条件在数据聚合前应用于单个行。
HAVING子句用于过滤聚合后的结果集,通常与GROUP BY一起使用。

5. MySQL中分页如何实现?

使用LIMIT关键字,格式为:SELECT * FROM table LIMIT start, count; 其中start是从第几条开始(从0开始计数),count是要获取的记录数。

6. 数据库中, drop、delete与truncate的区别?

DROP删除整个表,包括其结构。
DELETE用于删除表中的行,可以根据条件删除。
TRUNCATE快速清空表的所有数据,但保留表结构。

7. 数据库索引是什么,有什么作用?

索引是一种特殊的数据结构,帮助数据库系统快速查找数据。它可以大大加快查询速度,但也可能增加写入操作的时间。

8. 如何判断一个SQL有没有做索引?

可以通过执行`EXPLAIN`命令查看SQL执行计划,分析是否有使用索引。

9. 数据库事务是什么,事务的四大特征有哪些?

事务是一组操作,这些操作作为一个整体被提交或回滚。四大特征为原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。

10. 事务并发操作会产生什么问题,事务的隔离级别是什么,MySQL默认的隔离级别是?

并发问题包括脏读、不可重复读、幻读等。
隔离级别有读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)、序列化(Serializable)。
MySQL的默认隔离级别是可重复读(Repeatable Read)。

11. 请阐述数据库设计的范式是什么,有哪些范式,我们日常开发中要,这些范式是否都要遵循?

范式是为了减少数据冗余和提高数据一致性而设计的规则。
第一范式(1NF): 消除重复的组。
第二范式(2NF): 在满足第一范式的基础上,消除非主属性对键的部分函数依赖。
第三范式(3NF): 在满足第二范式的基础上,消除非主属性对键的传递函数依赖。
BC范式(BCNF): 更进一步地消除某些类型的函数依赖。
实际开发中不一定严格遵循所有范式,有时为了性能考虑会进行适当的反范式设计。

12. 表和表存在哪些关联关系,针对这些关系,我们如何设计表?

一对一、一对多、多对多。
一对一通常通过外键建立;一对多在“多”的一方设置外键;多对多需要创建一个关联表。

13. MySQL的存储过程是什么,有什么作用?

存储过程是一组预编译的SQL语句,作为单一的处理单元存储在数据库中。
它们可以提高应用性能,简化复杂的业务逻辑,并增强安全性。

14. 写SQL语句,查询班里170以上男生的人数大于5的班级及其人数
    SELECT class, COUNT(*) AS num_of_studentsFROM studentsWHERE gender = '男' AND height > 170GROUP BY classHAVING COUNT(*) > 5;
15. 场景题:游戏背包的里面的物品,设计数据库表格

可以设计两个表:players和 items,以及一个关联表player_items来记录玩家拥有的物品。
players表可以包含玩家ID、名称等信息。
items表可以包含物品ID、名称、描述等。
player_items表可以包含玩家ID、物品ID、数量等字段。

进阶任务

1. InnoDB的索引结构

InnoDB主要使用B树索引来组织数据。主键索引是聚簇索引,其他索引是非聚簇索引。

2. 索引的数据结构是什么?

最常见的索引数据结构是B树(B-Tree)和哈希表。B树适合范围查询,哈希表适合等值查询。

3. 什么时候索引失效,为什么失效?

当查询条件不是索引列时,或者使用了函数或表达式时,索引可能会失效。
此外,如果表的数据分布非常不均匀,也可能导致索引选择性差,从而不使用索引。

4. 什么是索引回表,如何避免?

索引回表是指先通过辅助索引找到主键值,再通过主键值回到聚簇索引中查找完整记录的过程。
避免方法包括使用覆盖索引,即索引包含了查询所需的所有列,从而无需回表。

5. 数据库优化方式?

优化SQL语句,如避免使用SELECT * ,合理使用索引。
对表进行分区,减少I/O操作。
适当调整数据库配置参数。
定期分析和优化表,如使用ANALYZE TABLE命令。
使用缓存技术减少数据库负载。


http://www.ppmy.cn/news/1529734.html

相关文章

Android中如何调用DLL文件

在 Android 设备上直接调用 DLL(动态链接库)文件是不可行的,因为 DLL 文件是 Windows 操作系统下的一种可执行文件格式,而 Android 操作系统基于 Linux 内核,两者在底层架构和 API 支持上存在根本差异。不过&#xff0…

软技能与AI技术的融合

一、引言 ----  随着人工智能(AI)和生成式人工智能(AIGC)如ChatGPT、Midjourney、Claude等大语言模型的迅速崛起,AI辅助编程工具已经变得越来越普遍。这不仅意味着程序员的工作方式正在发生深刻的变革,同…

[Golang] Context

[Golang] Context 文章目录 [Golang] Context什么是context创建context创建根context创建context context的作用并发控制context.WithCancelcontext.WithDeadlinecontext.WithTimeoutcontext.WithValue 什么是context Golang在1.7版本中引入了一个标准库的接口context&#xf…

Java之类,对象,构造方法

类和对象: 类(Class) 类是一个模板或蓝图,它定义了一组具有相同属性(数据)和方法(行为)的对象的特征。可以把类比作建筑的设计图纸,它描述了建筑将会有哪些部分&#x…

全方位洗衣洗鞋小程序系统,重塑干洗店服务新体验;

全方位洗衣洗鞋小程序系统,重塑干洗店服务新体验; 一、核心功能革新: 1.多元化下单模式:融合上门取送、到店服务、寄存网点及智能衣柜四种便捷方式,用户轻松一键下单,享受个性化服务。 2.从下单到送回,全程…

AWS EKS 中的负载均衡和 TLS 配置:全面指南

在现代云原生应用程序架构中,负载均衡器扮演着至关重要的角色。对于运行在 Amazon Elastic Kubernetes Service (EKS) 上的应用程序来说,理解和正确配置负载均衡是确保应用程序高可用性、可扩展性和安全性的关键。本文将全面介绍 AWS EKS 中的负载均衡配置,包括 Application…

中秋节特别游戏:给玉兔投喂月饼

🖼️ 效果展示 📜 游戏背景 在中秋这个充满诗意的节日里,玉兔因为贪玩被赶下人间。在这个温柔的夜晚,我们希望通过一个小游戏,让玉兔感受到人间的温暖和关怀。🐰🌙 🎮 游戏设计 人…

prompt攻击与防范

Prompt攻击是指通过精心设计的输入提示来操纵AI模型,使其产生不准确或有害的输出。这些攻击可能包括提示词注入、提示词泄露和提示词越狱等。攻击者可能会尝试通过提供包含恶意内容的输入,来操纵语言模型的输出,或者从模型的响应中提取敏感或…