专业编程基础技术教程

网站首页 > 基础教程 正文

软件测试人员:你们需要用到SQL函数么?(sum,count,avg...)

ccvgpt 2024-08-07 18:37:19 基础教程 11 ℃

软件测试人员在工作中,用到函数的时候还是偏少的,有时会统计生成了多少条数据,又或者根据业务的情况需要计算用户的余额总和,这时就需要用到函数。

软件测试人员:你们需要用到SQL函数么?(sum,count,avg...)

函数格式:

FUNCTION(列名称|字符串,[参数1,参数2])

FUNCTION---函数名称

列名称:表示表的字段列名称

字符串:表示其它字符串

参数:根据函数不同,有不同的参数

单行函数

也就是标量函数

(1)UCASE()---将小写字母转换成大写字母

格式:UCASE(列名称|str)

1.转换STR

SELECT ucase('test');

==SELECT upper('test');

2.转换列名称

SELECT ucase(name) FROM class;

注意:函数里面的字符串都要用引号括起来,列名称不需要

(2)将大写字母转换成小写字母

格式:LCASE(列名称|STR)

1.转换字符串

SELECT lcase('TESTEWERQWE');

查询结果为:testewerqwe

2.转换列名称

SELECT lcase(ename) FROM emp;

==SELECT lower(ename) FROM emp;

(3)MID()---截取字符串

格式:MID(列名称|str,x,y)

str---字符串

x---表示从x位开始截取

y---表示截取y个字符

1.截取字符串

SELECT mid('abcdef',3,2);

查询结果为:cd

2.可以省略参数y

SELECT mid('abcdef',3);

查询结果为:cdef

从字符串第3位截取,一直到最后一个字符

3.截取列名称

SELECT mid(ename,2,3) FROM emp;

4.从class表中将name字段从第二位开始截取所有字符串,然后将截取的字符串转换成小写(lower)

SELECT lower(mid(ename,2)) FROM class;

注意:这就是嵌套函数

(4)LENGTH() ----返回某个文本域(字符串或列名称)的长度

格式:LENGTH(列名称|字符串)

1.查询字符串的长度

SELECT length('asdfasdfasd');

查询结果为:11

2.查询class表中name的长度

SELECT length(ename) FROM class;

3.查询出class表name字段最后三位字符串

SELECT mid(name,length(name)-2) FROM class;

==SELECT mid(name,-3) FROM class;

(5)ROUND() ----对某个数值进行四舍五入

格式:ROUNT(列|数值,位数)

如果有位数,则表示数值保留多少位小数

如果没有,取整

1.对数值

SELECT round(3234234.23423,1);

查询结果为:3234234.2

SELECT round(3234234.25423,1);

查询结果为:3234234.3

2.要数值 123.568789保留3位小数

SELECT ROUND(123.568789,3);

3.省略参数(位数)

SELECT ROUND(13.56);

注意:省略参数就是取整

4.列名称

SELECT round(score,1) FROM score;

(6)REPLACE() --替换字符串的字符

格式:REPLACE(str,x,y)

将str中x替换成y

1.替换字符串

SELECT REPLACE('adasfcdasdsdafasd','d','12');

查询结果为:a12asfc12as12s12afas12

合集函数

也称为组函数

COUNT():求表的列数

MAX():求最大值

MIN():求最小值

AVG():求平均

SUM():求和

(1)求出class表中总的行数

SELECT count(*) FROM class;

(2)求出class表中学生的个数

SELECT count(name) FROM class;

(3)求班级的个数

SELECT count(distinct class) FROM class;

注意:COUNT(*):求表中的行数

COUNT(列名称):求表中该列的行数,不包含null值

COUNT(DISTINCT 列名称):求表中该列去重后的个数

(4)求出score表中学生的最高分数

SELECT max(score) FROM score;

(5)求出score表中分数最高的学号和课程号

SELECT xuehao,scno

FROM score

WHERE score = (SELECT max(score) FROM score);

(6)求出score表中最低分数是多少

SELECT min(score) FROM score;

(7)求出分数表中最高分数和最低分数分别是多少

SELECT max(score),min(score) FROM score;

(8)在7的基础上,分别命别名为最高分数和最低分数,且取整

SELECT round(max(score)) 最高分数,round(min(score)) 最低分数 FROM score;

(9)求出score表中学生的平均分数,并保留二位小数

SELECT round(avg(score),2) 平均分数 FROM score;

(10)求score表中课程号为3-110的平均分数,最高分数,最低分数

SELECT avg(score) 平均分数,max(score) 最高分数,min(score) 最低分数

FROM score

WHERE scno = “3-110";

(11)求出score表中所有学生的分数总和

SELECT sum(score) FROM score;

(12)求出score表中课程号为3-110的分数且大于课程号为1-141的最高分数的学生学号

SELECT xuehao FROM score

WHERE scno = "3-110" AND

score > (SELECT max(score) FROM score WHERE scno = “1-141");


特别推荐SQL系列:

软件测试人员不可不知的SQL语言之简单查询(SELECT)

SQL:INNER JOIN,LEFT JOIN,RIGHT JOIN,哪一个连接查询更合你意

高级软件测试人员一定要掌握的SQL语言之嵌套查询(MYSQL)

Tags:

最近发表
标签列表