资源描述
课程设计一
学校教务数据库设计以下:
学生表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)
老师编号(外键)
老师信息表 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
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
T001
梁天
教授
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中全部学生姓名和性别
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_Student
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='女'
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) 学校要举行一帮一活动,让高分学生帮助低分学生。查询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.Stuno=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_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 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.Teano
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_Course.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 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.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
WHERE 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
FROM 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 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.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'
展开阅读全文