1、课程设计一 学校教务数据库设计以下: 学生表1 T_STUDENT 字段名称 字段类型 字段含义 STUNO Varchar2(16) 学号(主键) STUNAME Varchar2(16) 姓名 STUSEX Varchar2(6) 性别 STUBIR DATE 出生日期 课程信息表2 T_COURSE 字段名称 字段类型 字段含义 COURSENO Varchar2(16) 课程号(主键) COURSENAME Varchar2(16) 课程名称 TEANO Varchar2(16) 老师编号(外键) 老师信息表
2、 3 T_TEACHER 字段名称 字段类型 字段含义 TEANO Varchar2(16) 老师编号(主键) TEANAME Varchar2(16) 课程姓名 TEATITLE Varchar2(16) 老师职称 考试成绩表 4 T_SCORE 字段名称 字段类型 字段含义 STUNO Varchar2(16) 学号(主键) COURSENO Varchar2(16) 课程编号(外键) TYPE Varchar2(6) 考试类型(期中/期末) SCORE FLOAT 分数 T_STUDENT STUNO STUNAME
3、 STUSEX STUBIR S001 郭莉芳 女 1987.2 S002 郑义 男 1988.2 S003 何月 女 1989.3 S004 王群 男 1990.7 …. T_COURSE COURSENO TEANAME TEATITLE C001 DB T001 C002 VC++ T002 C003 VB T009 C004 操作系统 T003 C005 JAVA T006 …… T_ TEACHER TEANO COURSENAME TEANO T0
4、01 梁天 教授 T002 王一 副教授 T009 卢洪 讲师 T003 张楠 副教授 T006 赵军 教授 …… T_SCORE STUNO COURSENO TYPE SCORE S001 C001 期中 98 S001 C001 期末 78 S001 C002 期中 68 S001 C002 期末 79 …. 1) 创建以上几张表,并给表中输入数据。 2) 查询T_STUDENT中全部数据 select * from T_Student 3) 查询T_STUDENT中全部学
5、生姓名和性别 select STUNAME,STUSEX FROM T_Student 4) 将学号和姓名显示,其中,姓名格式为:“姓名:xxx” SELECT '姓名:' bb,STUNAME ,stuno from T_Student 5) 为了愈加好地表现各个学生考试情况,将T_SCORE中信息显示,分数显示为和60分差。 select Score-60 AS "分数" FROM T_SCORE 6) 将学号和姓名显示,其中,列名分别显示为“学生”和姓名。 SELECT STUNAME AS "姓名:",stuno as "学号" from T_S
6、tudent 7) 将学号和姓名显示在一个列中,列名显示为:信息。 SELECT STUNO AS "信息" FROM T_STUDENT UNION ALL SELECT Stuname FROM T_STUDENT 8) 查询老师职称种类 SELECT TEATITLE FROM T_Teacher 9) 查询女生姓名 SELECT STUNAME FROM T_STUDENT WHERE Stusex='女' 10) 查询女生姓名 SELECT STUNAME FROM T_STUDENT WHERE Stusex='女'
7、 11) 查询课程VB信息 SELECT * FROM T_COURSE WHERE COURSENAME='VB' 12) 显示全部期中考试及格统计 SELECT * FROM T_SCORE WHERE TYPE='期中' 13) 为了找出考试尖子,需要显示全部期末考试在90-100考试统计(使用<,>) SELECT * FROM T_SCORE,T_STUDENT WHERE T_Score.Stuno=T_Student.Stuno AND T_Score.Score>90 14) 学校要举行一帮一活动,让高分学生帮助低分学生
8、查询90分以上期末考试统计,和不及格期末考试统计 --没有成绩低于60同学 15) 利用BETWEEN谓词显示全部期末考试在65-80考试统计 SELECT * FROM T_SCORE,T_STUDENT WHERE T_Score.Stuno=T_Student.Stuno AND (T_Score.Score BETWEEN 65 AND 80) AND T_Score.Type='期末' 16) 使用IN谓词,显示分数是60,70,80考试统计 SELECT * FROM T_SCORE,T_STUDENT WHERE T_Score.St
9、uno=T_Student.Stuno AND T_Score.Score IN ( 60,70,80 ) 17) 查询姓李学生资料 SELECT * FROM T_SCORE,T_STUDENT WHERE T_Student.Stuname LIKE '李%' 18) 查询性别为空学生资料 SELECT * FROM T_SCORE,T_STUDENT WHERE T_Student.Stusex IS NULL 19) 用升序显示学生S001全部期末考试成绩 SELECT * FROM T_SCORE,T_STUDENT WHERE T
10、Student.Stuno='S001' AND T_Score.Type='期末' ORDER BY T_Score.Type ASC 20) 用降序显示课程C001全部期末考试成绩,对于相等成绩,则根据课程编号升序显示。 SELECT * FROM T_SCORE,T_STUDENT,T_Course WHERE T_Course.Courseno=T_Score.Courseno AND T_Score.Stuno=T_Student.Stuno AND T_Course.Courseno='C001' AND T_Score.Type='期末' ORDER
11、BY T_Course.Coursename ASC 21) 查询姓名为“郭莉芳”考试成绩 select STUNAME,SCORE FROM T_Student,T_Score WHERE T_Student.Stuno = T_Score.Stuno AND T_Student.Stuname='郭莉芳' 22) 显示各个老师及其讲讲课程具体情况 select T_Teacher.Teaname,T_Course.Coursename FROM T_TEACHER,T_Course WHERE T_Teacher.Teano=T_Course.Te
12、ano 23) 查询名为“梁天”老师没有上过课程。 select T_Course.Coursename FROM T_TEACHER,T_Course WHERE T_Teacher.Teano=T_Course.Teano AND T_Teacher.Teaname!='梁天' 24) 课程“大学物理”,有哪些学生选过?请列出这些学生姓名 select STUNAME FROM T_STUDENT,T_Course,T_Score WHERE T_Student.Stuno=T_Score.Stuno AND T_Score.Courseno=T_C
13、ourse.Courseno AND T_Course.Coursename='大学物理' 25) 查询学号为”S002”学生,参与课程“C001”考试成绩,显示格式为:期中成绩 期末成绩 总评成绩.其中,总评成绩=期中成绩*0.4+期末成绩*0.6 select FIRST.Score AS "期中成绩",SECOND.SCORE AS "期末成绩",(FIRST.SCORE*0.4)+(SECOND.SCORE*0.6) --BB=(FIRST.SCORE*0.4)+(SECOND.SCORE*0.6) FROM T_SCORE FIRST ,T_SCORE
14、SECOND WHERE FIRST.Stuno=Second.Stuno AND First.Courseno='C001' AND Second.Courseno='C001' AND FIRST.STUNO='S002' AND SECOND.STUNO='S002' AND First.Type='期中' AND SECOND.Type='期末' 26) 查询课程“大学物理”是哪一位老师教,列出其姓名 SELECT TEANAME FROM T_Teacher,T_Course WHERE T_Teacher.Teano = T_Course.
15、Teano AND T_Course.Coursename='大学物理' 27) 查询T_STUDENT内全部些人姓名和性别 SELECT STUNAME,STUSEX FROM T_STUDENT 28) 将学号和姓名用下划线连接,显示在一列。 SELECT STUNAME||'_'||STUNO FROM T_STUDENT 29) 显示教授全部资料 SELECT * FROM T_TEACHER WHERE Teatitle='教授' 30) 显示姓张男生姓名 SELECT STUNAME FROM T_STUDENT WHE
16、RE STUNAME LIKE '张%' 31) 将全部分数显示为和60分差值,同时也显示原分数。 SELECT SCORE -60,SCORE FROM T_SCORE 32) 查询高级职称以下老师姓名,高级职称以下为副教授和讲师 SELECT TEANAME FROM T_TEACHER WHERE Teatitle IN ( '副教授','讲师' ) 33) 学校需要请学生对教授教学作评价,所以需要通知相关学生。请查询出:教授所教过课程,有哪些学生选过?列出她们姓名 SELECT DISTINCT TEANAME,STUNAME FRO
17、M T_Course,T_Score,T_Student,T_Teacher WHERE T_Student.Stuno=T_Score.Stuno AND T_Score.Courseno=T_Course.Courseno AND T_Course.Teano=T_Teacher.Teano AND T_Teacher.Teatitle='教授'; 34) 查询郭莉芳哪些科目期末考试没有及格?列出这些科目标名称和分数 SELECT DISTINCT COURSENAME FROM T_Course,T_Score,T_Student,T_Teacher WHERE
18、T_Student.Stuno=T_Score.Stuno AND T_Score.Courseno=T_Course.Courseno AND T_Course.Teano=T_Teacher.Teano AND T_Score.Score<60 AND T_Score.Type='期末' 35) 统计学生姓名数量 SELECT COUNT(STUNAME) FROM T_STUDENT 36) 查询学校有多少名老师 SELECT COUNT(TEANAME) FROM T_TEACHER 37) 查询为“梁天”老师讲了多少门课 SELECT T_Course
19、Coursename FROM T_TEACHER,T_Course WHERE T_Course.Teano=T_Teacher.Teano AND T_Teacher.Teaname='梁天' 38) 查询参与过考试学生数量 SELECT COUNT(DISTINCT STUNO) FROM T_SCORE 39) 查询郭莉芳选了多少门课 SELECT COUNT(DISTINCT COURSENO) FROM T_STUDENT,T_SCORE WHERE T_Student.STUNO=T_SCORE.STUNO AND T_Student.Stuname='郭莉芳' 40) 查询课程C002期末考试平均分 SELECT AVG(SCORE) FROM T_SCORE WHERE COURSENO='C002'






