多表查询首先涉及到笛卡尔积的计算

SELECT查询
DISTINCT去重
SELECT DISTINCT STUDENT_NO FROM STUDENT_BASIC;
LIKE使用
| 标识符 | 作用 |
|---|---|
| % | 通配符,可以匹配一个或多个字符 |
| _ | 只匹配一个字符 |
例:
SELECT STUDENT_NO FROM STUDENT_BASIC WHERE STUDENT_NO LIKE '100100%';
SELECT STUDENT_NO FROM STUDENT_BASIC WHERE STUDENT_NO LIKE '100_00';
JOIN连接

有两张表JOINA和JOINB
JOINA:
| ID | C_A1 | C_A2 |
|---|---|---|
| 1001 | a11 | a12 |
| 1002 | a21 | a22 |
JOINB:
| ID | C_B1 | C_B2 |
|---|---|---|
| 1001 | b11 | b12 |
| 1003 | b21 | b22 |
INNER JOIN(A与B的交集)
select * from JOINA a JOIN JOINB b ON a.ID = b.ID
| ID | C_A1 | C_A2 | ID_1 | C_B1 | C_B2 |
|---|---|---|---|---|---|
| 1001 | a11 | a12 | 1001 | b11 | b12 |
LEFT JOIN(以A为基准,匹配B的值,若未匹配到,则为空)
select * from JOINA a LEFT JOIN JOINB b ON a.ID = b.ID
| ID | C_A1 | C_A2 | ID_1 | C_B1 | C_B2 |
|---|---|---|---|---|---|
| 1001 | a11 | a12 | 1001 | b11 | b12 |
| 1002 | a21 | a22 |
RIGHT JOIN(以B为基准,匹配A的值,若未匹配到,则为空)
select * from JOINA a RIGHT JOIN JOINB b ON a.ID = b.ID
| ID | C_A1 | C_A2 | ID_1 | C_B1 | C_B2 |
|---|---|---|---|---|---|
| 1001 | a11 | a12 | 1001 | b11 | b12 |
| 1003 | b21 | b22 |
FULL OUTER JOIN(LEFT和RIGHT的并集)
select * from JOINA a FULL OUTER JOIN JOINB b ON a.ID = b.ID
| ID | C_A1 | C_A2 | ID_1 | C_B1 | C_B2 |
|---|---|---|---|---|---|
| 1001 | a11 | a12 | 1001 | b11 | b12 |
| 1003 | b21 | b22 | |||
| 1002 | a21 | a22 |
UNION(将两个sql查询的结果合并起来)
select * from JOINA union select * from JOINB
| ID | C_A1 | C_A2 |
|---|---|---|
| 1001 | a11 | a12 |
| 1002 | a21 | a22 |
| 1001 | b11 | b12 |
| 1003 | b21 | b22 |
聚合函数
AVG() 平均数
SELECT AVG(count) AS CountAverage FROM access_log;
MAX() 指定列的最大值
MIN() 指定列的最小值
SUM() 指定列的总数
GROUP BY根据一个或多个列对结果集进行分组
-- 统计学生男女各占多少人 SELECT SEX, COUNT (SEX) FROM STUDENT_BASIC GROUP BY SEX
HAVING (相当于聚合函数的where条件,在使用聚合函数后可以继续分组)
-- 统计学生数大于10等级
SELECT GRADE, COUNT (GRADE) COUNT
FROM STUDENT_BASIC
GROUP BY GRADE
HAVING COUNT (GRADE) > 10
UCASE() 将字段的值转为大写
LCASE() 将字段的值转为小写
LEN() 获取字段值的长度
这篇博客介绍了SQL的基础操作,包括多表查询、SELECT查询中的DISTINCT去重、LIKE模糊匹配、JOIN连接类型如INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN,以及UNION合并结果。此外,还讲解了聚合函数如AVG、MAX、MIN、SUM和GROUP BY、HAVING的用法。
2856

被折叠的 条评论
为什么被折叠?



