MySQL面试必备:三范式、自增ID与数据库版本查询
需积分: 0 12 浏览量
更新于2024-08-04
收藏 17KB DOCX 举报
"这篇资料是关于MySQL的面试复习材料,主要涵盖了数据库的三范式、自增表的特性和ID生成逻辑、获取数据库版本的方法、ACID特性以及char与varchar类型的差异等高频知识点,适用于准备面试的Java开发工程师、数据库开发工程师及MySQL技术相关人员。
1. 数据库的三范式是数据库设计的基础理论:
- 第一范式(1NF):确保每列都是原子性的,不可再分的数据项。
- 第二范式(2NF):要求非主属性完全依赖于整个主键,消除部分依赖。
- 第三范式(3NF):非主属性之间不存在传递依赖,即一个非主属性不依赖于其他非主属性。
2. 自增表的ID处理在不同存储引擎下有不同的表现:
- MyISAM:表中删除最后2条数据后,重启并插入新数据,ID会跳过已删除的值,因此是18。
- InnoDB:由于InnoDB只在内存中保存自增ID的最大值,重启后丢失,新插入数据的ID为15。
3. 获取MySQL版本的方法是通过SQL查询`SELECT VERSION();`。
4. ACID是数据库事务的四大特性:
- 原子性(Atomicity):事务中的所有操作要么全部成功,要么全部失败,不允许部分完成。
- 一致性(Consistency):事务执行前后,数据库的完整性约束未被破坏。
- 隔离性(Isolation):并发事务间的操作互不影响,如同依次执行。
- 持久性(Durability):事务一旦提交,其结果将永久保存,即使系统出现故障。
5. char和varchar是两种不同的字符串类型:
- char(n):固定长度,无论实际内容多少,始终占用n个字节,空余位置填充空格,适合存储固定长度的数据,如密码的MD5值。
- varchar(n):可变长度,根据实际内容长度占用空间,额外存储长度信息,节省空间,适用于长度变化较大的数据。
在选择使用char或varchar时,需要权衡存储效率和空间占用,根据具体应用场景来决定。"
2023-10-31 上传
2024-11-20 上传
2023-03-27 上传
2024-05-17 上传
点击了解资源详情
2023-07-28 上传
2023-03-14 上传
2020-02-22 上传
2023-03-31 上传
h_小波
- 粉丝: 693
- 资源: 75
最新资源
- R语言中workflows包的建模工作流程解析
- Vue统计工具项目配置与开发指南
- 基于Spearman相关性的协同过滤推荐引擎分析
- Git基础教程:掌握版本控制精髓
- RISCBoy: 探索开源便携游戏机的设计与实现
- iOS截图功能案例:TKImageView源码分析
- knowhow-shell: 基于脚本自动化作业的完整tty解释器
- 2011版Flash幻灯片管理系统:多格式图片支持
- Khuli-Hawa计划:城市空气质量与噪音水平记录
- D3-charts:轻松定制笛卡尔图表与动态更新功能
- 红酒品质数据集深度分析与应用
- BlueUtils: 经典蓝牙操作全流程封装库的介绍
- Typeout:简化文本到HTML的转换工具介绍与使用
- LeetCode动态规划面试题494解法精讲
- Android开发中RxJava与Retrofit的网络请求封装实践
- React-Webpack沙箱环境搭建与配置指南