SQL 用exists代替全称量词
学习sql的必经问题。
学生表student (id学号 Sname姓名 Sdept所在系)
课程表Course (crscode课程号 name课程名)
学生选课表transcript (studid学号 crscode课程号
Grade成绩)
对以上表进行查寻选修了全部课程的学生姓名
--查询选修了所有课程的学生
--不存在这样的课程该学生没有选修
select *
from student s
where not exists
(
select *
from course c
where not exists
(
select *
from transcript t
where s.id = t.studid and c.crscode = t.crscode
)
)
--拿出一个学生,对任何一个课程,查看该学生是否选修了。如果未选修,返回该课程。
--如果选修了,则查看下一个课程。。。。
--最终,如果返回的所有课程为空的话说明该学生选修了所有的课程。此时输出该学生的信息
终于对这个问题有了深刻一点的认识。
相关文档:
SQL语法手册
Select
用途:
从指定表中取出指定的列的数据
语法:
SELECT column_name(s) from table_name
解释:
从数据库中选取资料列,并允许从一或多个资料表中,选取一或多个资料列或资料行。SELECT 陈述式的完整语法相当复杂,但主要子句可摘要为:
SELECT select_ ......
Another Look at MySQL 5.1's SQL Diagnostic Tools
http://dev.mysql.com/tech-resources/articles/mysql_51_diagnostic_tools.html 数据库的性能决定因素:
(1)数据库的设计
(2)SQL代码 可以用以下几种方法来解决一些性能问题:
(1)索引
(2)水平分区
(3)列适应的表
colum ......
自:http://blog.csdn.net/AJAXBloger/archive/2007/08/29/1764506.aspx
子查询:
使用子查询的原则
1.一个子查询必须放在圆括号中。
2.将子查询放在比较条件的右边以增加可读性。
子查
询不包含 ORDER BY 子句。对一个 SELECT 语句只能用一个 ORDER BY 子句,
并且如果指定了它就必须放在主
SELECT 语句的最 ......
SQL SERVER维护着一组表,存储所有对象,数据类型,约束,配置选项及SQL能访问的资源,这些表称为系统目录(系统基本表).
我们在SQL SERVER2005里有很多种方法来访问元数据.一般是使用目录视图和系统函数,信息架构视图只能包含它们全部的一部分.
最佳接口:目录视图
目录视图都位于SYS架构下,包括了动态管理对象(DMV和DM ......