Home

SQL复习(上)

2020/01/23

为期8个月的产品岗的实习告一段落,接下来准备学习一下感兴趣的测试的相关技术,准备先把SQL数据库相关的知识重新过一遍,太久没接触都有点忘咯(:3J∠)

1、查询:

<列名> FROM <表名> WHERE <条件表达式> ```
1
2
3
4
5
6
7
8
9
10
条件表达式可以用AND、OR、NOT
<条件1>AND<条件2> 、<条件1>OR<条件2>、NOT<条件>
例如:查找分数在80分以上的男生
SELECT * FROM students WHERE score>80 AND gender = 'M';
![image](/pic/SQL复习(上)/1.png)
!其中优先级:NOT>AND>OR
### 2、ORDER BY 排序:
```ORDER BY <列名> (ASC/DESC)

用ACE或者默认表示升序,DESC表示倒序
如果需要进一步排序,可以继续添加列名
例如:按照成绩从高到低进行排序,如果有相同分数的,再按照性别倒序排序
SELECT name, gender, score FROM students ORDER BY score DESC,gender DESC;
image

3、LIMIT 截取:

OFFSET```
1
2
3
4
5
6
7
8
9
从结果集的n号(第n+1条)开始,截取m条(或少于m条)结果
索引从0开始,OFFSET 0 代表从第一条开始截取
OFFSET是可选的,当只写LIMIT m 时,相当于 LIMIT m OFFSET 0
例如:把结果集分页,每页3条记录,获取第一页的记录
SELECT id, name, score FROM students ORDER BY score DESC LIMIT 3 OFFSET 0;
![image](/pic/SQL复习(上)/3.png)
### 4、聚合函数:
```COUNT( <列名> )

查询列的行数,COUNT(*)代表查询所有列的行数
例如:查询85分以上(包括85分)的男生的个数,并将列名设置别名为num
SELECT COUNT(*) num FROM students WHERE gender=’M’ AND score>85;
image
常见聚合函数:

函数 说明
SUM 计算某一列的合计值,该列必须为数值类型
AVG 计算某一列的平均值,该列必须为数值类型制
MAX 计算某一列的最大值
MIN 计算某一列的最小值
COUNT 计算某一列的行数

5、GROUP BY分组:

GROUP BY <列名>
GROUP BY子句指定了按照某一列分组聚合
例如:查询每个班级男生和女生的平均
SELECT class_id,AVG(score),gender FROM students GROUP BY class_id,gender;
image