一条有意思的SQL语句分析
2007-08-28 07:51
260 查看
一条有意思的SQL语句分析
这条语句,说实在的困扰了我很久了,以前由于工作忙及工作中很少用到此种写法,即使有碰到这种要求也用别的语句代替或用另外一种方案实现,所以一直没空理它。这次星期天闲着没事,认真地思考分析了一下这条语句,还真有点意思。
学生表 S(SNO int pk,SN varchar(8)) --SNO为学号 ,SN为学生姓名。
课程表 C(CNO int pk,CN varchar(50)) --CNO为课程号,CN为课程名
选修表 SC(SNO int pk,CNO int pk,SCORE number(7,2),fk(SNO,CNO) ) --SCORE为成绩。
--以下语句为求出选修了所有课程的学生姓名.
SELECT SN
FROM s
WHERE (NOT EXISTS
(SELECT *
FROM c
WHERE NOT EXISTS
(SELECT *
FROM sc
WHERE SNO = S.SNO AND CNO = C.CNO)))
分析如下:
[1]:
SELECT *
FROM c
WHERE (NOT EXISTS
(SELECT *
FROM sc
WHERE SNO = 10005 AND CNO = C.CNO))
--求出学号为10005的学生没有选修的课程.
[2]:
select SN from s
where (not exists ([1]:))
--如果[1]:部份语句执行为空记录时,即not exists ([1]:)条件为真时表示
--学号为10005的学生选修了所有的课程,以此类推如果[1]:部份语句中的
--SNO=10005改成SNO=S.SNO表示求出选修了所有课程的学生姓名。
这条语句,说实在的困扰了我很久了,以前由于工作忙及工作中很少用到此种写法,即使有碰到这种要求也用别的语句代替或用另外一种方案实现,所以一直没空理它。这次星期天闲着没事,认真地思考分析了一下这条语句,还真有点意思。
学生表 S(SNO int pk,SN varchar(8)) --SNO为学号 ,SN为学生姓名。
课程表 C(CNO int pk,CN varchar(50)) --CNO为课程号,CN为课程名
选修表 SC(SNO int pk,CNO int pk,SCORE number(7,2),fk(SNO,CNO) ) --SCORE为成绩。
--以下语句为求出选修了所有课程的学生姓名.
SELECT SN
FROM s
WHERE (NOT EXISTS
(SELECT *
FROM c
WHERE NOT EXISTS
(SELECT *
FROM sc
WHERE SNO = S.SNO AND CNO = C.CNO)))
分析如下:
[1]:
SELECT *
FROM c
WHERE (NOT EXISTS
(SELECT *
FROM sc
WHERE SNO = 10005 AND CNO = C.CNO))
--求出学号为10005的学生没有选修的课程.
[2]:
select SN from s
where (not exists ([1]:))
--如果[1]:部份语句执行为空记录时,即not exists ([1]:)条件为真时表示
--学号为10005的学生选修了所有的课程,以此类推如果[1]:部份语句中的
--SNO=10005改成SNO=S.SNO表示求出选修了所有课程的学生姓名。
相关文章推荐
- 一条有意思的SQL语句分析
- 通过分析SQL语句的执行计划优化SQL
- 一条sql语句完成MySQL去重留一
- nhibernate源码分析之四: 持久化操作与SQL语句
- 收费系统中的sql语句分析
- Oracle下一条SQL语句的优化
- 一条SQL 语句执行后返回2笔受影响--如果没有触发器,那就是点到"包括实际的执行计划"!
- oracle11g 一条几百行行的sql语句 优化 需要适可而止才行
- SQL语句执行效率及分析(note)
- MYSQL用一条SQL语句删除重复记录
- mysql优化–explain分析sql语句执行效率
- SQL语句优化技术分析
- 用SQL语句,删除掉重复项只保留一条
- Oracle 删除重复数据只留一条 查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 wher
- Oracle SQL语句优化技术分析
- SQL 一条SQL语句 统计 各班总人数、男女各总人数 、该班级男女 比例
- sql语句实现多条数据合为一条数据
- 一条Sql语句:取出表A中第31到第40记录(面试题)
- 【转】mysql 分析查找执行效率慢的SQL语句
- SQL语句优化技术分析