广东医学院数据库课程设计一资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计(一)学校的教务数据库设计如下:
教师信息表3 T_TEACHER
考试成绩表4 T_SCORE
创建教务数据库,创建用户,完成以下作业:
1)创建以上几张表,并给表中输入数据;
CREATE TABLE T_STUDENT(--学生表一
STUNO V ARCHAR2(16) PRIMARY KEY,
STUNAME V ARCHAR2(16),
STUSEX V ARCHAR2(6) CHECK(STUSEX IN('男','女')), STUBIR DATE)
CREATE TABLE T_COURSE(--课程信息表2
COURSENO V ARCHAR2(16) PRIMARY KEY, COURSENAME V ARCHAR2(16),
TEANO V ARCHAR2(16) NOT NULL,
FOREIGN KEY(TEANO)REFERENCES T_TEACHER(TEANO))
CREATE TABLE T_TEACHER(--教师信息表3
TEANO V ARCHAR2(16) PRIMARY KEY,
TEANAME V ARCHAR2(16),
TEATITLE VARCHAR2(16))
CREATE TABLE T_SCORE(--考试成绩表4
STUNO V ARCHAR2(16),
COURSENO V ARCHAR2(16) NOT NULL,
TYPE V ARCHAR2(6) NOT NULL CHECK(TYPE IN('期中','期末')),
SCORE FLOAT,
PRIMARY KEY(STUNO,COURSENO,TYPE),
FOREIGN KEY(COURSENO) REFERENCES T_COURSE(COURSENO),
FOREIGN KEY(STUNO) REFERENCES T_STUDENT(STUNO))
2)查询T_STUDENT中所有的数据;
SELECT * FROM T_STUDENT
3)查询T_STUDENT中所有学生的姓名和性别;
SELECT STUNAME,STUNO
FROM T_STUDENT
4)将学号和姓名显示,其中,姓名的格式为:“姓名:xxx”;//
SELECT '姓名'XXX,STUNAME,STUNO
FROM T_STUDENT
5)为了更好地体现各个学生的考试情况,将T_SCORE中的信息显示,分数显示为与60分的差;
SELECT STUNO,COURSENO,TYPE,SCORE-60
FROM T_SCORE
6)将T_SCORE中的信息显示,分数显示为与60分的差值,列名为“差值”,如果第一条记录分数为空,会得出来什么结果。
SELECT STUNO,COURSENO,TYPE,SCORE-60 AS"差值"
FROM T_SCORE
(注意:空值具有特殊性,包括空值的任何算术表达式都等于空)
7)将学号和姓名显示,其中,列名分别显示为“学生”和姓名;
SELECT STUNO AS"学生",STUNAME AS"姓名"
FROM T_STUDENT
8)将学号和姓名显示在一个列中,列名显示为:信息;
SELECT CONCAT(STUNO,STUNAME) AS "信息"
FROM T_STUDENT
9)查询教师的职称种类;
SELECT TITLE
FROM T_TEACHER
10)查询女生的姓名;
SELECT STUNAME
FROM T_STUDENT
WHERE STUSEX='女'
11)查询课程VB的信息;
SELECT *
FROM T_COURSE
WHERE COURSENAME='VB'
12)显示所有期中考试及格的记录;
SELECT *
FROM T_SCORE
WHERE TYPE='期中' AND SCORE-60>0
13)为了找出考试尖子,需要显示所有期末考试在90-100的考试记录(使用<,> between and);
SELECT *
FROM T_SCORE
WHERE TYPE='期末' AND SCORE BETWEEN '90' AND '100'
14)学校要举行一帮一活动,让高分学生帮助低分学生。查询90分以上的期末考试记录,以及不及格的期末考试记录;
SELECT *
FROM T_SCORE
WHERE TYPE='期末' AND SCORE NOT BETWEEN '60'AND'90'
15)利用BETWEEN谓词显示所有期末考试在65-80的考试记录;
SELECT *
FROM T_SCORE
WHERE TYPE='期末' AND SCORE BETWEEN '65'AND'80
16)使用IN谓词,显示分数是60,70,80的考试记录;
SELECT *
FROM T_SCORE
WHERE SCORE IN('60','70','80')
17)查询姓李的学生资料;
SELECT *
FROM T_STUDENT
WHERE STUNAME LIKE'李%'
18)查询姓“王”,名字为一个字的学生,并将这类学生的详细信息显示出来; SELECT *
FROM T_STUDENT
WHERE STUNAME LIKE'王%_'
19)查询性别为空的学生资料;
SELECT *
FROM T_STUDENT
WHERE STUSEX=NULL
20)用升序显示学生S001的所有期末考试成绩;
SELECT SCORE
FROM T_SCORE
WHERE STUNO='S001' AND TYPE='期末'
ORDER BY SCORE ASC
21)用降序显示课程C001的所有期末考试成绩,对于相等的成绩,则按学生编号升序