A-A+

数据库查询是数据库的核心操作 SQL提供了 SELECT语句进行数据库的查询 其一般格式如下

2022-08-05 20:06:33 问答库 阅读 171 次

问题详情

数据库查询是数据库的核心操作,SQL提供了 SELECT语句进行数据库的查询,其一般格式如下:
SELECT [ALL|DISTINCT]<目标列表达式 >[,< 目标列表达式>]...
FROM <表名或视图名 >[,<表名或视图名>]...
[WHERE<条件表达式>]
[GROUP BY <列名 1> [HAVING <条件表达式>]]
[ORDER BY〈列名 2> [ASC|DESC]]
其含义是:根据WHERE子句的条件表达式,从FROM子句中指定的基本表或视图中找出满足条件的元组,再按SELECT子句中的目标列表达式,选出元组中的属性值形成结果表。如果有GROUP子句,则将结果按<列名1>的值进行分组,该属性列值相等的元组为一组。如果有ORDER子句,结果表要按<列名2>的值升序或降序排列。
某学校学生、教师及课程关系如下:
学生由学号唯一标识,学生相关信息包括姓名、性别、专业号和年龄等;
教师由工作证号唯一标识,教师相关信息包括姓名,年龄和所授课程号等;
课程由课程号唯一标识,课程相关信息包括课程名,学分,授课教师工作证号及授课时间等;
选课信息包括选课学生学号,课程号及考试成绩等。
根据关系模型完成数据库设计,包括数据库表、键值;(8分)
用SQL语句表达如下查询:(5分)
“张大民(教师名)”讲授的课程名和在这些课程中考试超过90分的学生的学号及姓名, 按分数的降序排列。请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:
数据库设计表设计如下:
学生表student:
StuID学号唯一标识整型、主键
StuName学生姓名字符串型
StuSex学生性别bool型
MajorId专业号整型
StuAge学生年龄整型
教师表teacher:
TeaId教师编号整型、主键
TeaName教师姓名字符串型
TeaAge教师年龄整型
TeaCourse所授课程号整型、外键couse(CourseId)
课程表course:
CourseId课程编号整型、主键
CourseName课程名称字符串型
CourseCredit课程学分数值型
CourseTeacher课程教师编号整型、外键teacher(TeaId)
CourseTime授课时间日期型
选课表Elective:
EleStuId选课学生学号整型外键student(stuId)
EleCourseId课程号整型外键course(CourseId)
EleScore考试成绩数值型
“张大民(教师名)”讲授的课程名和在这些课程中考试超过90分的学生的学号及姓名,按分数的降序排列。查询语句如下:
Selectcourse.courseName,student.Stuid,student.StuNamefromstudent,teacher,course,electivewherestudent.Stuid=elective.EleStuidandteacher.teaId=course.courseTeacherandCourse.courseId=elective.eleCourseIdandteacher.teaName=’张大民’andelective.EleScore>90orderbyelective.EleScoreDESC

考点:数据库,语句