关注我,每天分享软件测试技术干货、面试经验,想要领取测试资料、进入软件测试学习交流群的可以直接私信我哦~~
作为软件测试或者数据库的管理、开发人员都需要掌握该章。该章知识点为关系型的数据的起点。
SQL分类SQL 对结构化查询语言,可以对数据库进行增、删、修、查等操作。具体分类如下图所示:
而最为常用的有DQL、DDL、DML,而测试人员更是常用DQL、DML。
数据库类型不同的数据库,其的类型有些不同,但也是关键字的不同。下面以MySQL数据库的类型为例:
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难点-
使用count(列名)当某列出现null值的时候,count(*)仍然会计算,但是count(列名)不会。
-
group by 字句和where条件语句结合在一起使用时:where在前,group by 在后。即先对select xx from xx的记录集合用where进行筛选,然后再使用group by 对筛选后的结果进行分组。
-
having和where的用法区别:
a. having只能用在group by之后,对分组后的结果进行筛选(即使用having的前提条件是分组)。
b. where肯定在group by 之前,即也在having之前。
c. where后的条件表达式里不允许使用聚合函数(count(),sum(),avg(),max(),min()),而having可以。
- 当一个查询语句同时出现了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登录接口测试问题记录与解决 ( 干 货 )