详细记录 -- 软件测试流程之SQL基础


关注我,每天分享软件测试技术干货、面试经验,想要领取测试资料、进入软件测试学习交流群的可以直接私信我哦~~

作为软件测试或者数据库的管理、开发人员都需要掌握该章。该章知识点为关系型的数据的起点。

SQL分类

SQL 对结构化查询语言,可以对数据库进行增、删、修、查等操作。具体分类如下图所示:

而最为常用的有DQL、DDL、DML,而测试人员更是常用DQL、DML。

数据库类型

不同的数据库,其的类型有些不同,但也是关键字的不同。下面以MySQL数据库的类型为例:

SQL语句

1.CREATE DATABASE - 创建新数据库

例子:CREATE DATABASE IF NOT EXISTS testlq DEFAULT CHARSET utf8;

2.ALTER DATABASE - 修改数据库

例子:ALTER DATABASE testlq RENAME TO test_2021lq

3.CREATE TABLE - 创建新表

例子:CREATE TABLE testlq_filter (

id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,

content TEXT(10000) COMMENT ‘过滤词内容’,

PRIMARY KEY (id)

) ENGINE=MYISAM DEFAULT CHARSET=utf8;

4.ALTER TABLE - 变更(改变)数据库表

例子:alter table testlq_filter
add (title VARCHAR(80) NOT NULL DEFAULT ‘’ COMMENT ‘邮件’);

5.DROP TABLE - 删除表

例子:DROP TABLE testlq_filter

6.CREATE INDEX - 创建索引(搜索键)

例子:CREATE INDEX title_id ON testlq_filter (title)

7.DROP INDEX - 删除索引

8.SELECT - 从数据库表中获取数据

例子:SELECT * from testlq_filter

9.UPDATE - 更新数据库表中的数据

例子:UPDATE testlq_filter SET title=‘lq’WHERE id=1

10.DELETE - 从数据库表中删除数据

例子:DELETE FROM testlq_filter WHERE id = 1

11.INSERT INTO - 向数据库表中插入数据

例子:INSERT INTO testlq_filter(title,content) VALUES(“测试”,“文明用语”)

SQL常用操作符和函数

Where:是条件的关键字,如:SELECT * from testlq_filter where title=’测试’;

Like:作为where的条件使用:SELECT * from testlq_filter where title like ‘%测试%’,%为匹配任意字符。

In:作为where的条件使用,表示在一定的范围或者列表内;

Between … and:作为where的条件使用,表示在两个值之间的数据范围内;

Group by:是指对某个字段或者结果进行分组,也是在where之后;

Having:是指where条件需要用到合计函数时的关键词,在group by之后。

AVG():是返回数值列的平均值的函数;

COUNT():是返回匹配指定条件的行数的函数;

MAX():是返回一列中的最大值的函数;

MIN():是返回一列中的最小值的函数;

SUM():是返回数值列的总数(总额);

SQL难点

  1. 使用count(列名)当某列出现null值的时候,count(*)仍然会计算,但是count(列名)不会。

  2. group by 字句和where条件语句结合在一起使用时:where在前,group by 在后。即先对select xx from xx的记录集合用where进行筛选,然后再使用group by 对筛选后的结果进行分组。

  3. having和where的用法区别:

a. having只能用在group by之后,对分组后的结果进行筛选(即使用having的前提条件是分组)。

b. where肯定在group by 之前,即也在having之前。

c. where后的条件表达式里不允许使用聚合函数(count(),sum(),avg(),max(),min()),而having可以。

  1. 当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序是:

a. 执行where xx对全表数据做筛选,返回第1个结果集。

b. 针对第1个结果集使用group by分组,返回第2个结果集。

c. 针对第2个结果集中的每1组数据执行select xx,有几组就执行几次,返回第3个结果集。

d. 针对第3个结集执行having xx进行筛选,返回第4个结果集。

e. 针对第4个结果集排序。


最后:自动化测试(视频、面试)赠送一波

我推荐一个群吧!测试员~~来吧,313782132(Q群里有技术大牛一起交流分享,测试学习资源的价值取决于你的行动,莫做“收藏家”)获取更多大厂技术、面试资料


如果对python自动化测试、web自动化、接口自动化、移动端自动化、面试经验交流等等感兴趣的测试人,可以关注微信公众号:【伤心的辣条】,获取软件测试工程师大厂面试资料!

最后:

凡事要趁早,特别是技术行业,一定要提升技术功底,丰富自动化项目实战经验,这对于你未来几年职业规划,以及测试技术掌握的深度非常有帮助。

如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。

推荐好文:

包装成1年工作经验的测试工程师,我给他的面试前的建议如下

自动化测试到底要学什么?

为何跳槽不考虑腾讯?聊聊我和鹅厂的一点往事

自动化测试和手动测试哪个更高级?

新手必看:怎么写一个合格的测试用例?

python登录接口测试问题记录与解决 ( 干 货 )

猜你喜欢

转载自blog.csdn.net/weixin_50829653/article/details/115124100