数据库习题1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第2章

【1】查询所有计算机系的学生信息。

【2】查询成绩在90分以上的学生学号

【3】查询选修1号课程且成绩在90分以上的学生学号

【4】查询选修数据库原理且成绩在85分以上的学生姓名【5】查询不选修1号课程的学生学号

【6】查询没有选修课程的学生学号

【7】查询选修1号和3号课程的学生学号

【8】查询选修全部课程的学生姓名。

【9】查询至少选修了S1所选的课程的学生学号。

答案:

(1)σSdept='计算机’(student)

(2)πSno (σGrade>90(SC))

(3)πSno (σGrade>90^Cno=’1’(SC))

(4)πSname(σGrade>85^Cname=’数据库原理’(Student SC Course))

(5)πSno (Student)- πSnoσCno=’1’(SC)

(6)πSno (Student)- πSno(SC)

(7)πSnoσCno=’1’(SC)∩πSnoσCno=’3’(SC)

(8)πSname ((πSno,Cno (SC)÷πCno (Couse)) Student))

(9)πSno,Cno (SC)÷πCno(σSno=’s1’(SC))

第3章

一、单表查询

【例1】输出学生表中的学生的姓名和年龄。

【例2】查询学生表中的所有数据。

【例3】查询选课的学生学号。

【例4】查询学生表中的系别。

【例5】查询学生表中的姓名和出生年份。

【例6】查询学生表中女生的信息。

【例7】在学生表中检索出年龄在18到20之间的学生信息。

【例8】查询姓王同学的记录。

【例9】查询学生表中计算机系男同学的学号、姓名。

【例10】查询全体男学生情况,要求结果按年龄降序排列。

【例11】查询学生总人数。

【例12】查询选课的学生人数。

【例13】统计系别的总数目。

【例14】统计计算机系学生的平均年龄。

【例15】统计每个系的学生人数。

【例16】查询选修3门以上课程的学生学号。

【例17】输出学生人数超过800人的系别和学生人数。

连接查询:

【例1】查询选课的学生学号和姓名。

【例2】查询每位学生的班长姓名。

【例3】查询选修数据库原理的学生学号。

【例4】查询选修数据库原理的学生学号和姓名。

【例6】查询选修3门以上课程的学生学号和姓名。

【例7】查询选修数据库原理的学生学号和成绩,并按成绩降序排列。

嵌套查询:

【例1】查询选修1号课程的学生学号和姓名。

【例2】查询刘雅所在系的学生信息。

【例3】查询没有选课的学生姓名。

【例4】查询其他系中比计算机系某一学生年龄大的学生姓名和年龄。

【例5】查询所有选修1号课程的学生学号和姓名。(用存在量词EXIST)

【例6】查询没有选修1号课程的学生姓名。

【例7】查询选修全部课程的学生姓名。

【例8】查询至少选修了S1所选的课程的学生学号。

Sql 综合练习

今天是你上班的第一天,职务是系部的教学秘书,职责之一是回答领导、老师、家长们的各种询问......

你的前任已经把数据库建好,数据库表也已输入过数据,你所知的情况如下:在“学生”数据库中有三张表文件,表名以及主要字段名如下:

学生(学号、姓名、性别、年龄)年龄是数值型,其余为字符型

成绩(学号、课程号、成绩)成绩是数值型,其余为字符型

课程(课程号、课程名)均为字符型

现在请你利用在学校学过的知识,用SQL命令快速解决以下问题:

首先设置默认目录至“上机文件夹”

1、系里决定给年龄较小的同学开一个座谈会,请你查询所有年龄在19岁以下的学生姓名及年龄(提示:用“学生”表)

2、辅导员要找考试不及格的同学谈话,请你查询考试成绩不及格的学生的学号和课程名(成绩,课程)

3、李华的父母来电询问李华的学习情况,请你查询李华所选修课程的课程号和成绩(学生,成绩)

4、有学生捡到一本书,上面只写了一个字“张”,请你查询所有姓张的学生信息

5、带003号课程的教师想要课程考试情况清单,请你查询选修了003号课程的学生的学号及成绩,结果按成绩的降序排列(成绩排序)

6、系里要开会总结学生选课率,请你查询选修了课程的学生人数(成绩计数)

7、001号课程是学校的精品课程,学校想知道这次考试中最高分是多少,请你查询选修001号课程的学生最高分数(成绩求最大值)

8、选修2门以上课程的同学可以申请不参加某些集体活动,请你查询选修了2门以上课程的学生学号(分组 having 计数)

9、辅导员想知道有哪些学生选了002号课程,请你查询所有选修了002号课程的学生姓名。(in)

10、辅导员想知道有哪些学生没有选002号课程,查询没有选修002号课程的学生姓名. (not in)

11、有学生转学过来,请你向学生表中插入一条记录("48","刘佩佩",19,"女")

12、学号为48的学生还未报到,暂时将她的信息从学生表中删除

13、学号“12”的学生受到处分,所以将成绩表中学号为“12”的成绩减去10

【例】查询选课的学生学号。

SELECT 学号,姓名;

FROM 学生

【例】查询学生表中的所有数据。

SELECT *;

FROM 学生

【例】输出学生表中的学生的姓名和年龄。

SELECT 姓名,YEAR(DATE())-YEAR(出生日期)AS 年龄;

FROM 学生

【例】查询学生表中的系别。

SELECT DISTINCT 系别;

FROM 学生

【例】查询学生表中女生的信息。

【例】在学生表中检索出年龄在18到20之间的学生信息。

【例】查询姓王同学的记录。

SELECT * ;

FROM 学生;

WHERE 姓名 LIKE “王%”

【例】查询学生表中D06系男同学的学号、姓名。

SELECT 学号,姓名;

FROM 学生;

WHERE 系别=“D01” AND 性别=“男”

【例】查询全体男学生情况,要求结果按出生日期降序排列。

SELECT * ;

FROM 学生;

WHERE 性别=“男”ORDER BY 出生日期 DESC

【例】查询学生总人数。

SELECT COUNT(*) ;

FROM 学生

【例】查询选课的学生人数。

【例】统计系别的总数目。

SELECT COUNT(DISTINCT 系别) ;

FROM 学生

【例】统计借书的学生人数。

【例】统计D06系学生的平均年龄。

SELECT AVG (YEAR(DATE())-YEAR(出生日期)AS 年龄;

FROM 学生;

WHERE 系别=’D06’

相关文档
最新文档