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
)
)
--拿出一个学生,对任何一个课程,查看该学生是否选修了。如果未选修,返回该课程。
--如果选修了,则查看下一个课程。。。。
--最终,如果返回的所有课程为空的话说明该学生选修了所有的课程。此时输出该学生的信息
终于对这个问题有了深刻一点的认识。
相关文档:
col_1 col_2 col_3 col_4
---------- ---------- ---------- ----------
a 111 222&nb ......
#1. 首先以管理员的身份登录到oracle系统中
cmd;
sqlplus sys/sys as sysdba;
#2.创建用户test,密码为test
create user test identified by test;
#3.创建表空间,在D盘下建立50m的表空间data_dbf
create tablespace ts_tablespace datefile 'D:\data_dbf' size 50m;
#4.为用户分配表空间
alter user test default t ......
一个最简单的代码段:
string sql = string.Format("select Consult_Info.CName,Consult_Record.RTime,Consult_Record.RContent,Emp_Info.EName,CMode.Mode from Consult_Info inner join Consult_Record on(Consult_Info.CID = Consult_Record.CID) inner join Emp_Info on(Emp_Info.EID=Consult_Record.EID) inner join ......
自:http://blog.csdn.net/AJAXBloger/archive/2007/08/29/1764506.aspx
子查询:
使用子查询的原则
1.一个子查询必须放在圆括号中。
2.将子查询放在比较条件的右边以增加可读性。
子查
询不包含 ORDER BY 子句。对一个 SELECT 语句只能用一个 ORDER BY 子句,
并且如果指定了它就必须放在主
SELECT 语句的最 ......