【正确答案】SELECT SNAME FROM S
WHERE NOT EXISTS(
SELECT * FROM SC, C
WHERE SC. CNO=C. CNO
AND CNAME='李明'
AND SC. SNO=S. SNO)
【答案解析】
问答题
列出有两门以上(含两门)不及格课程的学生姓名及其平均成绩;
【正确答案】select s. sno, avg(scGrade) from S, SC
where s. sno in(
select sc. sno from sc
inner Join c
on c. cno=sc. cno
where sc. scGrade<60
group by sno
having count(*)>=2)
and s. sno=sc. sno
group by s. sno
【答案解析】
问答题
列出既学过“1”号课程,又学过“2”号课程的所有学生姓名。
【正确答案】select S. SNO, S. SNAME from sc, s
where cno=1 and sc. sno in(select sno from sc where cno=2)and s. sno=sc. sno
【答案解析】
问答题
在SQL Server 2000中,设某数据库中有商品表(商品号,商品名,进货价格),商品号为主码;销售表(商品号,销售时间,销售数量,销售价格,本次利润),商品号和销售时间为主码,销售价格为本次销售商品的单价。现要求每当在销售表中插入前4列数据时(假设一次只插入一行数据),系统自动计算本次销售产生的利润,并将该利润赋给销售表的第5列“本次利润”。请编写实现上述功能的后触发型触发器代码。
【正确答案】CREATE TRIGGER update_sale
ON 销售表 FORUPDATE
FOREACHROW
ASBEGIN
UPDATE Table_sale SET 本次利润=销售价格-(SELECT 进货价格 FROM 产品表)
END
CREATE TRIGGER Insert_sale
ON 销售表 FOR INSERT
FOREACHROW
ASBEGIN
INSERT INTO 销售表 VALUES(new. 商品号,new. 销售时间,new. 销售数量,new. 销售价格)
END