有一个“学生-课程”数据库,数据库中包括三个表:

(1) “学生”表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,可记为: Student(Sno,Sname,Ssex,Sage,Sdept) Sno 为关键字。
(2) “课程”表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,可记为: Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。
(3) “学生选课”表SC由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,可记为: SC(Sno,Cno,Grade) (SNO, CNO) 为关键字。完成下列操作:

(1)请把其中建立 “学生”表Student的语句写下来,表Student是由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成,其中学号属性不能为空,并且其值是唯一的。
(2)在student表中查询Sdept是‘计算机’的学生的所有信息,并按Sno降序排列。
(3)在以上三个表中查询Ccredit为5并且Grade大于60的学生的学号、姓名和性别。
(4)为Course表创建一个名称为my_trig的触发器,当用户成功删除该表中的一条或多条记录时,触发器自动删除SC表中与之有关的记录。 (注:在创建触发器之前要判断是否有同名的触发器存在,若存在则删除之。)

以oracle 为例:

1、create table student( Sno  number(10) primary key,    
                            Sname varchar2(20),    
                            Ssex varchar2(2),
                            Sage  number(10),
                            Sdept varchar2(20)
);
2、SELECT * FROM  student FROM Sdept='计算机' ORDER BY Sno DESC

3、SELECT DISTINCT student.Sno,student.Sname,student.Ssex 
   FROM student,Course,SC
   where student.Sno=SC.Sno AND Course.Cno=SC.Cno
   AND Course.Ccredit=5 AND SC.Grade > 60
   
4、create or  replace trigger my_trig
   after delete on student
   for each row
   begin
   delete from SC where Sno=:student.Sno;
   end;

温馨提示:答案为网友推荐,仅供参考
相似回答