- SELECT – FROM – WHERE 句型
| 算术比较运算符 | 逻辑运算符 | 集合成员资格运算符 | 谓词 | 聚合函数 | 嵌套 | SELECT查询结果运算符 |
|---|---|---|---|---|---|---|
| >, <, >=,<=,=,<>或!= | AND, OR, NOT | IN, NOT IN | EXISTS, ALL, SOME, UNIQUE | AVG, MIN, MAX, SUM, COUNT | F≡(SELECT 语句) | UNION(并),INTERSECT(交), EXCEPT(差) |
课堂练习

- 检索学习课程号为C2的学生学号与成绩
关系代数表达式

SELECT S#, SCORE
FROM SC
WHERE C#='C2'
- 检索学习课程号为C2的学生学号与姓名
关系代数表达式

SELECT S.S#, SNAME
FROM S, SC
WHERE SC.C# = 'C2' AND S.S# = SC.S# //注意这里是自然连接
- 检索选修课程名为MATHS的学生学号与姓名
关系代数表达式

SELECT S.S#, SNAME
FROM S, SC, C
WHERE S.S# = SC.S# AND SC.C# = C.C# AND CNAME = 'MATH'
- 检索选修课程号为C2或C4的学生学号
关系代数表达式

SELECT DISTINCT S# //避免重复,所以加一个DISTINCT
FROM SC
WHERE C# = 'C2' OR C# = 'C4'
- 检索至少选修课程号为C2和C4的学生学号
关系代数表达式

SELECT X.S#
FROM SC AS X, SC AS Y
WHERE X.S# = Y.S# AND X.C# = 'C2' AND Y.C# = 'C4'
- 检索不学习C2课程的学生姓名与年龄
关系代数表达式

SELECT SNAME, AGE
FROM S
WHERE S# NOT IN (SELECT S#
FROM SC
WHERE C# = 'C2')
- 检索学习全部课程的学生姓名
关系代数表达式

SELECT SNAME
FROM S
WHERE NOT EXISTS(SELECT *
FROM C
WHERE NOT EXISTS(SELECT *
FROM SC
WHERE S.S# = SC.S# AND SC.C# = C.C#))
- 检索所学课程包含学生S3所学课程的学生学号
关系代数表达式
SELECT S#
FROM S
WHERE NOT EXISTS(SELECT *
FROM SC AS X
WHERE X.S#='S3' AND NOT EXISTS(SELECT *
FROM SC AS Y
WHERE X.C# = Y.C# AND Y.S# = S.S#))
SQL查询与关系代数表达式解析
本文详细介绍了SQL查询的基本语法,包括SELECT–FROM–WHERE句型、算术比较运算符、逻辑运算符、集合成员资格运算符、谓词、聚合函数以及嵌套查询。同时,给出了多个具体的查询示例,如检索特定课程的学生信息、使用逻辑运算符组合条件、查找特定课程的学生学号等。这些例子展示了如何通过SQL进行复杂的数据检索操作。
704

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



