1.1 数据库概念及分类
首先,我们经常说的,而非数据库。数据库是组织、存储和管理数据的仓库,存储数据的容器。而数据库管理系统是操纵和管理数据库的大型软件,建立、使用和维护数据库。数据表是真正的数据存储单元,其他对象的基础。三者之间的关系为:。

关于数据库的分类,可能有很多种分类。一般来说,我们用到最多的就是和。而其中关系型数据库又是应用最为广泛的。
1.2 SQL语句概念及分类
SQL:一种,用于访问和操作数据库的标准计算机语言。通常用途为(表、存储过程、函数、索引),。SQL是一门,。通常,将SQL语句分为下面五大类。

1.3 MySQL数据类型
MySQL支持多种数据类型,大致可以分为四大类,如下图所示。关于MySQL数据类型的详细内容,请参考链接 MySQL常见的数据类型

2.1 数据库相关SQL
- 查询所有数据库
- 创建数据库
- 删除数据库
- 查询数据库详情、查看数据库的字符集
- 创建指定字符集数据库
- 选中数据库
2.2 表相关SQL
如果不借助工具的情况下,在命令中输入下面相关的命令,需要先使用选择要操作表所属的数据库。
- 创建表
- 查询所有表
- 查询表详情
- 查看表结构
- 删除表
2.3 修改表相关SQL
关于修改表相关的SQL,除了修改表前没加,其他都是在该基础添加的语句。这部分的SQL一般来说在。
- 修改表名
- 修改表引擎和字符集
- 添加表字段(在最后)
- 添加表字段(最前面)
- 添加字段(某个字段后添加)
- 删除表字段
- 修改表字段名称和类型
2.4 操作表记录相关SQL
对于测试工程师而言,SQL语言中最常用的就是DML——数据操作语言,即为增删改查。而其中。
- 插入数据(全表插入)
- 插入数据(指定字段)
- 删除数据
- 修改数据
- 查询数据
DQL即为数据查询语句,也是使用最多的一种SQL语句。将该部分的内容分为以下几部分:其中最为常用的是、、、、这几种。对于其中常用的where 、group by、having、order by、limit,其顺序为:·
3.1 条件查询
- 判断是否为空( 、)
- 比较运行符()
- 和
- 在某些可选值范围内
- 和
- 模糊查询 ,
3.2 别名、去重
- 别名——使用关键字或空格 给表名或字段别名
- 去重——使用对查询出来的去重
3.3 排序、分页查询
- 排序—— (ASC 升序 默认、DESC 降序 )
- 分页查询——
3.4 聚合函数、时间相关函数
- 聚合函数——sum(字段名) 求和
- 聚合函数——avg(字段名) 平均值
- 聚合函数——max(字段名) 最大值
- 聚合函数——min(字段名) 最小值
- 聚合函数——count(字段名) 统计数量
- 时间函数——now() 当前年月日时分秒
- 时间函数——current_date() 当前时间年月日
3.5 分组与having
- 分组——
group by的常规用法是配合聚合函数,利用分组信息进行统计。 - ——解决聚合函数过滤问题,一般配合group by一起使用。
3.6 子查询
- 写在where/having后作为查询条件的值
- ——用在from后面,当做一个新表,新表必须有名称
3.7 关联查询
参考链接:Mysql中的关联查询(内连接,外连接,自连接)
- 内连接—— ,特点:只查询连接的表中能够有对应的记录的数据
- 左外连接——,特点:,如果匹配到就显示,匹配不到就显示为null
- 右外连接——,特点:。所以左外连接能做到的事情,右外连接也能做到。
- 自连接——当前表与自身连接查询
4.1 约束
MySQL中约束是一种,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。

4.2 索引
MySQL中的索引是一种高效获取数据的存储结构——;MySQL中索引的好处在于,坏处就是,增大了表的文件大小(索引文件可能比数据文件还要大)。MySQL索引实现原理可以参考:mysql索引实现原理

4.3 存储过程
MySQL中存储过程,就是,当要执行这一段代码的时候,可以通过调用该存储过程来实现。
4.4 事务
参考链接:MySQL数据库事务的四大特性以及事务的隔离级别
事务:是数据库中执行SQL语句的工作单元,可以保证事务内的SQL语句要么全部成功,要么全部失败。

对于软件测试而言,在MySQL数据库相关的面试题中,除了上面,最重要的就是的编写。关于DQL相关语句的考题,可以直接参考牛客网中SQL实战编程:牛客网SQL实战。
分组(group by) + 聚合函数筛选(having) + join on(关联查询)——第12题
自连接——第19题
使用同一个表两次、解题思路——第24题
对于测试工程师而言,在面试中,应该不会遇到特别难的SQL题目。且工作中,对于SQL要求不会特别高,重点在于根据需求梳理好思路,然后编写相关的SQL,对于其SQL的效率不回特别追求。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/5057.html