SQL
题目1:
问题描述:
S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名
C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师
SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩
1.(1)找出选修过“李明”老师讲授课程的所有学生姓名
--实现代码:法一
Select *
from SC,C,S
Where SC.CNO=C.CNO AND SC.SNO=S.SNO AND CTEACHER='李明'
---法二:-------------
Select *
from S
Where Sno IN( Select Sno
from C,SC
Where C.[Cno]=SC.[Cno] AND CTEACHER='李明')
(2)找出没有选修过“李明”老师讲授课程的所有学生姓名
--实现代码:法一
Select SName
from S
Where [Sno] NOT IN( Select SC.[Sno]
from SC,C
Where SC.CNO=C.CNO AND CTEACHER='李明')
(3)找出没有选修过课程号为"1"的所有学生姓名
--实现代码
Select SName
from S
Where [Sno] NOT IN( Select [Sno] from SC Where CNO='1')
------------------------------------------------------------------------------------------------------------------------------------------
2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩
--实现代码:
Select S.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE)
from S,SC,( Select SNO
from SC
Where SCGRADE<60
GROUP BY SNO
&nb
相关文档:
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列
......
ORACLEPL/SQL基础--游标的学习来源:
游标字面理解就是游动的光标。
用数据库语言来描述:游标是映射在结果集中一行数据上的位置实体,有了游标用户就可以访问结果集中的任意一行数据了,将游标放置到某行后,即可对该行数据进行操作,例如提取当前行的数据等等。
......
select datediff(month,'2009-11-02','2009-12-01')
不知道你要怎么个月差异
上面的命令结果也是1
但是其实按照常识差异不是一个月,是差一天一个月
这有段现成的代码可以帮助你算出常识上的差异
SQL code
declare @t table(a datetime,b datetime);
insert @t
select '2009-11-02','2009-12-01' UNION ......
原文传送门:http://topic.csdn.net/u/20091010/14/FC7737C1-D60B-43F1-A8B5-A9EEF2DE4426.html
假如现在有两张表:
1.表stuinfo
sid sname subs
1 jack |1|2|
2 marry |1|4|
3 tom |3|
2.表subinfo
subid subname
1 physics
2 &n ......