作为一个软件测试工程师,我们在测试过程中往往需要对数据库数据进行操作,但是我们的操作大多以查询居多,有时会涉及到新增,修改,删除等操作,所以我们其实并不需要对数据库的操作有特别深入的了解,以下是我在工作过程中整理的比较常用的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:
id job
1 teacher
2 student
4 worker
 
(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是筛选分组记录(先分组,后筛选)

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

软件测试工程师之必备SQL语句基础的更多相关文章

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

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

  2. SQL语句基础之 单表查找

    Sql语句之 单表查询 一.一般查询 1.查看表中的所有记录 以及 所有字段(属性) 语句 : select * from student; 2.只查看某些字段 语句:select sname,sex ...

  3. 精妙SQL语句 基础

    精妙SQL语句SQL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL语句操作,方便自己写SQL时方便一点,想贴上来,一起看看,同时希望大家能共同多多提意见,也给我留一些更好的佳句, ...

  4. sql语句基础

    数据库库(DataBase):就是一个存储数据的仓库.为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上.通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据.SQL(Structu ...

  5. Sql语句基础练习(一)

    1.求1号课成绩大于80分的学生的学号及成绩,并按成绩由高到低列出.(表名:成绩表.字段名:课号,学号,成绩.) SELECT 学号,成绩 FROM 成绩表 WHERE 课号=1 AND 成绩> ...

  6. Oracle PL/SQL语句基础学习笔记(上)

    PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE server和其它工具中了,近几年中很多其它的开发者和DBA開始使用PL/SQL,本文将讲述PL ...

  7. MySQL数据库:SQL语句基础、库操作、表操作、数据类型、约束条件、表之间的关系

    数据库相关概念: 1. 数据库服务器:运行数据库管理软件的计算机 2. 数据库管理软件:MySQL.Oracle.db2.slqserver 3. 库:文件夹,用来组织文件/表 4. 表:文件(类似于 ...

  8. 【MySQL】SQL语句基础

    一.操作数据库 1.1 创建数据库 1.2 查看数据库 1.3 修改数据库 1.4 删除数据库 1.5 选择数据库 二.操作表 2.1 创建表 2.2 查看表 2.3 修改表 2.4 删除表 三.操作 ...

  9. SQL语句基础知识

    1.关于SQL语句中exists与not exists的问题 course表如下:课程代号 课程名称 K01 奥运会主题曲 K02 喜爱的专辑 K03 VB技术大全 K04 经典歌曲 K05 个人单曲 ...

随机推荐

  1. python0.1

    python基础 python是一种高级编程语言,而编程语言分为3种 编程语言 编程语言是一种人与计算机沟通的工具. 编程就是就将人的需求通过攥写编程语言命令计算机完成指令. 编程的意义在于将人类的生 ...

  2. 微信小程序之页面跳转(tabbar跳转及页面内跳转)

    一.简介 微信小程序页面主要分为tabbar页面和应用内页面,这两种页面的跳转方式不同 二.tabBar页面跳转 tabBar 是底部导航栏页面,如下图 在app.json中的配置如下: 跳转方式如下 ...

  3. 【秒懂Java】【第1章_初识Java】02_软件开发

    通过上一篇文章<01_编程语言>,我们了解到 Java是众多编程语言中的其中一种 编程语言可以用来开发软件 因此,我们即将要学习的Java技术,是属于软件开发的范畴.那软件开发的前景如何呢 ...

  4. Flask项目实战:创建电影网站(3)后台的增删改查

    添加预告 根据需求数据库创建表格 需求数据库,关键字title logo # 上映预告 class Preview(db.Model): __tablename__ = "preview&q ...

  5. git和github入门指南(3.1)

    3.远程管理 3.1.远程仓库相关命令 1.查看远程仓库名字,这里以github为例 git remote 上面命令执行后会得到:origin,这样一个名字,这个名字是我们克隆的时候默认设置好的 如果 ...

  6. 一文说通MongoDB via Python操作

    Python并不仅仅是一个做Machine Learning的语言.   说到Python,一般都会感觉它关联着ML,如果不是做ML开发,就会觉得离自己很远.而实际上,作为一门语言,Python在应用 ...

  7. Centos 下 Jenkins2.6 + Git + Maven Shell一件部署与备份

    使用Jenkins2.6 集成Maven与Git插件做持续集成,同时编写Shell脚本备份与发布(需要稍微知道点Linux/毕竟基于Centos PS:本人Linux也是菜鸡) - 下载Jenkins ...

  8. 想做时间管理大师?你可以试试Mybatis Plus代码生成器

    1. 前言 对于写Crud的老司机来说时间非常宝贵,一些样板代码写不但费时费力,而且枯燥无味.经常有小伙伴问我,胖哥你怎么天天那么有时间去搞新东西,透露一下秘诀呗. 好吧,今天就把Mybatis-pl ...

  9. 多线程下的list

    前言 list 是 Python 常用的几个基本数据类型之一.正常情况下我们会对 list 有增删改查的操作,显然易见不会有任何问题.那么如果我们试着在多线程下操作list 会有问题吗? 多线程下的 ...

  10. 从零创建发布属于自己的composer包

    原文地址:https://www.wjcms.net/archives/从零创建发布属于自己的composer包 今天给大家讲解一下如何从零创建发布属于自己的composer包. composer包用 ...