软件测试工程师必备的SQL语句基础

news2024/11/16 12:06:29

文末有惊喜

 

为一个软件测试工程师,我们在测试过程中往往需要对数据库数据进行操作,但是我们的操作大多以查询居多,有时会涉及到新增,修改,删除等操作,所以我们其实并不需要对数据库的操作有特别深入的了解,以下是我在工作过程中整理的比较常用的SQL语句。

1.插入表数据:

insert into 表名1 (字段1,字段2) values(字段1值,字段2值);

 

2.删除表数据:

delete:delete from 表名1 where 范围(删除表内符合条件的内容)

delete from 表名1(清空数据表内容,不释放空间,即:下次插入表数据,id依然接着删除数据的id继续增加)

truncate:truncate table 表名1(清空表数据,释放空间,即:下次插入表数据,id从1重新开始)

drop:drop table 表名1(整张表被删除,要使用该表必须重新建)

3.修改表数据:

update 表名1 set 字段名 = ‘新值’ where 范围

4.查询表数据:

查询数据:select * from table1 where 范围

总数:select count (*) from table1 where 范围

select count (distinct(字段1) from table1 where 范围(distinct可去重)

求和:select sum (字段1) from table1 where 范围

平均:select avg (字段1) from table1 where 范围

最大:select max (字段1) from table1 where 范围

最小:select min (字段1) from table1 where 范围

排序:select * from table1 where 范围 order by 排序字段名 desc(desc逆序排序。默认是正序排序asc)

5.复杂查询:

嵌套查询:多个查询语句嵌套在一起查询,一般嵌套的查询语句放在where 或 having 的后面

例:

select * from table1 where status in(select status from table2)

多表连接查询:

table1:

id   username
1张三
2李四
3王二

table2:

idjob
1teacher
2student
4worker

 

(1)内联查询(inner join……on……)

select * from table1 a inner join table2 b on a.id=b.id

查询结果:

id

username

id

job

1

张三

1

teacher

2

李四

2

student

(2)左外联(left outer join……on……)

select * from table1 a left outer join table2 b on a.id=b.id

查询结果:

id

username

id

job

1

张三

1

teacher

2

李四

2

student

3

王二

null

null

(3)右外联(right outer join……on……)

select * from table1 a right outer join table2 b on a.id=b.id

id

username

id

job

1

张三

1

teacher

2

李四

2

student

null

null

4

worker

(4)全外联(full outer join……on……)

select * from table1 a full outer join table2 b on a.id=b.id

id

username

id

job

1

张三

1

teacher

2

李四

2

student

3

王二

null

null

null

null

4

worker

6.group by分组

根据某一个或多个列表字段进行分组统计。

table1:

id

name

course

score

1

张一

Chinese

80

2

张二

Chinese

60

3

张三

math

65

4

张三

Chinese

70

5

张一

math

90

查询每个用户的最高成绩:

select name,max(score) as max_score from table1 group by name

查询结果:先按用户名分组,再在每个组中查询找到最高分数

id

name

max_score

1

张一

90

2

张二

60

3

张三

70

查询全班每科课程平均分

select course,avg(score) as avg_score from table1 group by course

查询结果:先按课程分组,再在每个组中查询找到平均分数

id

course

avg_score

1

chinese

70

2

math

77.5

having的用法:同where用法,having与group by连用。where是筛选单个记录,having是筛选分组记录(先分组,后筛选)

作为一个初中级测试人员,一般情况下拥有以上的数据库知识就可以满足大部分的测试需要了。

最后:

 感谢每一个认真阅读我文章的人!!!

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/737970.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vscode使用Eslint+Prettier格式化代码

1、安装Eslint插件和Prettier插件 2、 安装eslint npm install eslint -g1)、初始化项目 npm init -y 2)、生成eslint配置文件 npx eslint --init 完之后生成一个.eslintrc.json的文件 二、vscode配置 1、vscode需要配置保存自动化格式 设置 ->…

QWebEngine应用---基于QWebChannel实现网页与qt层交互

Qt提供了QWebChannel实现和网页的通信,我们直接拿github上一个能直接运行的demo来做说明,demo是基于Widget,且页面是自己实现的页面,接着会介绍基于QML实现且页面是第三方网站如何使用的。 QWebChannel用法 我们先看看demo的运行…

RocketMQ5.0消息消费<二> _ 消息队列负载均衡机制

RocketMQ5.0消息消费<二> _ 消息队列负载均衡机制 一、消费队列负载均衡概览 RocketMQ默认一个主题下有4个消费队列,集群模式下同一消费组内要求每个消费队列在同一时刻只能被一个消费者消费。那么集群模式下多个消费者是如何负载主题的多个…

第四十四章Java访问对象的属性和行为以及销毁

Java访问对象的属性和行为 每个对象都有自己的属性和行为,这些属性和行为在类中体现为成员变量和成员方法,其中成员变量对应对象的属性,成员方法对应对象的行为。 在Java中,要引用对象的属性和行为,需要使用点…

【MySQL 】MySQL 创建数据库, MySQL 删除数据库,MySQL 选择数据库

作者简介: 辭七七,目前大一,正在学习C/C,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖&#x1f…

iPhone苹果手机桌面上快速记录笔记的步骤

现在越来越多的人喜欢上记笔记,因为记笔记是一种提升效率和组织思维的重要方式。随着移动设备的普及,手机逐渐成为我们生活中不可或缺的工具之一。在手机上记笔记就成为一种很快捷的记录方式,可以让我们随时随地记录灵感和重要信息。在众多记…

计算机体系结构基础知识介绍之动态调度Tomasulo 算法(二)

Tomasulo方法是一种计算机硬件架构的算法,用于动态调度指令的执行,允许乱序执行以及更有效率的使用多个执行单元。它由IBM公司在1967年提出,首次应用是在IBM System/360 Model 91的浮点单元上。Tomasulo方法的主要创新包括在硬件中进行寄存器…

轻松学习阿里云原生内存数据库Tair

📖轻松学习阿里云原生内存数据库Tair 🚀前言☁️什么是Redis?☁️什么是云原生内存数据库?✨特点 🚀阿里云原生内存数据库Tair👻简介✨功能特性🗺️应用场景 ✍️上手案例🎯 基于Red…

PCB笔记(PCB设计流程)

双层PCB设计流程(以AD10为例) 1. Preferences常规设置2. 画好原理图后3.编译工程,看是否有错4.然后执行更新到PCB5. 布线前常规规则设置6. 布局之后开始布线7.布线结束之后,开始铺铜8. 创建铜皮之前调丝印,将所有丝印调…

力扣 -- 剑指 Offer II 091. 粉刷房子

题目链接:剑指 Offer II 091. 粉刷房子 - 力扣(LeetCode) 下面是用动态规划的思想解决这道题的过程,相信各位小伙伴都能看懂并且掌握这道经典的动规题目滴。 参考代码: class Solution { public:int minCost(vector…

MIT 6.S081 教材第八章内容 -- ext3 -- 05

MIT 6.S081 教材第八章内容 -- ext3 -- 05 引言为什么需要日志系统XV6 File system logging回顾ext3 file system log formatext3如何提升性能ext3文件系统调用格式ext3 transaction commit步骤ext3 file system恢复过程为什么新transaction需要等前一个transaction中系统调用执…

FFMPEG 编译流程(极客版)

前言 依葫芦画瓢 全程30分钟从零完成ffmpeg编译,主打的就是一个极客 编译环境 OS 要求:Ubuntu 20.04 LTS VMware新建虚拟机 NDK 要求:android-ndk-r20b FFmpeg 功能模块: libavformat:多媒体文件或协议的封装和解封装库&a…

DynaSLAM代码详解(5) — Tracking.cc跟踪线程

目录 5.1 DynaSLAM中Tracking线程简介 5 .2 RGBD模式下跟踪流程 5.3 DynaSLAM的低成本跟踪 (1) Tracking::LightTrack() 低成本跟踪函数 (2) Tracking::LightTrackWithMotionModel() 低成本的恒速模型跟踪流程 5.4 DynaSLAM的正常跟踪 文章着重将与ORB-SLAM2不同的地方&a…

智能工厂:智能制造数字化转型解决方案

数字化已经成为制造业发展的必由之路。要提高生产效率和管理水平,就需要提高对生产运维各环节的数据采集、处理和利用效率。当前工厂的数据采集仍存在诸多不足,可以利用具有多种设备接入能力、通信协议转换能力、数据通信能力、控制维护能力的工业智能网…

UE5《Electric Dreams》项目PCG技术解析 之 PCGCustomNodes详解(一)

《Electric Dreams》项目中提供了一些自定义节点和子图(文件位置:“/Content/PCG/Assets/PCGCustomNodes”),这些节点和子图在《Electric Dreams》被广泛使用,对于理解《Electric Dreams》非常重要,而且它们可以直接移…

Qt的对话框与窗口--多文档界面MDI(Multi-document Interface))

多文档界面MDI MDI应用程序就是在主窗口里创建多个同类型的MDI子窗口,这些MDI子窗口在主窗口里显示,并共享主窗口上的工具栏和菜单等操作功能,主窗口上的操作都针对当前活动的MDI子窗口进行。 设计MDI应用程序需要在主窗口工作区放置一个QMdi…

MySQL:我的从库竟是我自己!?

本文将通过复制场景下的异常分析,介绍手工搭建MySQL主从复制时需要注意的关键细节。 作者:秦福朗 爱可生 DBA 团队成员,负责项目日常问题处理及公司平台问题排查。热爱互联网,会摄影、懂厨艺,不会厨艺的 DBA 不是好司机…

多行文本转成一行的实现方法

哈喽大家好,我是咸鱼 不知道你们有没有遇到过下面的情况,以我为例 有时候我会收到批量操作服务器的需求,且我会拿到一个服务器 ip 列表,它是一个多行的形式,如下所示 # ip 列表 192.168.0.1 192.168.0.2 192.168.0.…

原油天然气的区别和用途

原油天然气在市场交易中都是重要的交易产品,经常有小伙伴在后台咨询Forexclub,原油天然气的区别和用途,今天这篇文章就和小伙伴一起交流研究。 其实在Forexclub看来原油和天然气的提取方法、来源和用途几乎相同,只是在适用范围和运…

推荐系统构建

从0到1打造推荐系统工程实战_推荐系统_Jay Wu_InfoQ写作社区