数据库练习题6--数据库复杂查询+索引

一、实验目的
1.掌握SELECT语句的基本语法和查询条件表示方法;
2.掌握查询条件种类和表示方法;
3.掌握连接查询的表示及使用;
4.掌握嵌套查询的表示及使用;
5.了解集合查询的表示及使用。
6.掌握创建管理索引的使用方法;

(1)查询以‘DB_’开头,且倒数第3个字符为‘s’的课程的详细情况;

select * from course
where cname like 'DB\_%s_'

(2)查询名字中第2个字为‘阳’的学生姓名和学号及选修的课程号、课程名;

select sname,student.sno,sc.cno,cname
from student,sc,course
where sname like '_阳%' 
and student.sno=sc.sno
and sc.cno=course.cno

(3)列出选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修课程号及成绩;

select student.sno,sname,sdept,sc.cno,grade
from student,sc,course
where student.sno=sc.sno 
and sc.cno=course.cno
and cname in ('数学','大学英语')

(4)查询缺少成绩的所有学生的详细情况;

select * from student,sc,course 
where student.sno=sc.sno 
and sc.cno=course.cno 
and grade is null

(5)查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息;

select * from student
where sage<>(
select sage from student 
where sname='张力'
)

(6)查询所选课程的平均成绩大于张力的平均成绩的学生学号、姓名及平均成绩;

select student.sno,sname,平均成绩=AVG(grade)
from student,sc
where student.sno=sc.sno
group by student.sno,sname 
having AVG(grade)>(
	select AVG(grade)
	from student,sc
	where student.sname='张力' and student.sno=sc.sno
	group by student.sno,sname
)

(7)按照“学号,姓名,所在院系,已修学分”的顺序列出学生学分的获得情况。其中已修学分为考试已经及格的课程学分之和;

select student.sno,sname,sdept,已修学分=SUM(ccredit)
from student,course,sc
where student.sno=sc.sno and sc.cno=course.cno
group by student.sno,sname,sdept 

(8)列出只选修一门课程的学生的学号、姓名、院系及成绩;

select student.sno,sname,sdept,grade
from sc,student
where student.sno=sc.sno and student.sno in (
select student.sno
from sc,student
where student.sno=sc.sno
group by student.sno
having COUNT (sc.cno)=1) 

(9)查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号;

select student.sno,sname,cno
from student,sc
where student.sno=sc.sno and cno in (
select cno
from sc,student
where student.sno=sc.sno and student.sname='张力'
)

(10)只选修“数据库”和“数据结构”两门课程的学生的基本信息;

select student.sno,sname,Ssex,Sage,Sdept
from student,sc,course
where student.sno=sc.sno and
sc.cno=course.cno and
sc.sno in(select sc.sno from sc,course
where (cname='数据库'or cname='数据结构')and 
sc.cno=course.cno
group by sc.sno
having COUNT(*)=2)
group by student.sno,sname,Ssex,Sage,Sdept
having COUNT(*)=2

(11)至少选修“数据库”或“数据结构”课程的学生的基本信息;

select student.sno,sname,sdept,sc.Cno,cname,grade
from student,sc,course
where student.sno=sc.sno 
and sc.Cno=course.cno and
sc.sno in(
select sc.sno from sc,course 
where (cname='数据库'or cname='数据结构')
and sc.Cno=course.cno )

(12)列出所有课程被选修的详细情况,包括课程号、课程名、学号、姓名及成绩;

select course.cno,cname,student.sno,sname,grade
from student,sc,course
where student.sno=sc.sno
and sc.cno=course.cno
order by course.cno

(13)*查询只被一名学生选修的课程的课程号、课程名;

select sc.cno,cname
from sc,course
where sc.cno=course.cno
group by sc.cno,cname 
having COUNT(sc.sno)=1

(14)*检索所学课程包含学生‘张向东’所学课程的学生学号、姓名;

select Student.Sno,Student.Sname
from Student,SC
where Student.Sno=SC.Sno 
and SC.Cno in (
select SC.Cno
from Student,SC
where Student.Sno=SC.Sno 
and Student.Sname='张向东')

2.请使用T-SQL 语句实现进行以下操作:
(1)在student表的sno列上创建唯一性聚集索引index_sno

create unique clustered index index_sno on student (sno)

(2)在student表的sname列上创建唯一性非聚集索引index_sname

create unique NONCLUSTERED index index_sname on student (sname)

(3)在student表的sage列上创建非聚集索引index_sage

CREATE NONCLUSTERED INDEX index_sage ON student(sage)

(4)在sc表的sno列和cno列上创建复合非聚集索引index_sno_cno

CREATE NONCLUSTERED INDEX index_sno_cno ON sc(sno,cno)

(5)删除上面的索引index_snocno

DROP index index_sno_cno ON sc
  • 9
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一部分 客观选择题 2 第1章 绪论 2 第2章 关系数据库 3 第3章 关系数据库标准语言SQL 5 第5章 关系数据理论 7 第6章 数据库设计 9 第7章 数据库恢复技术 11 第8章 并发控制 12 第9章 数据库安全性 13 第10章 数据库完整性 14 第二部分 主观题 15 第1章 绪论 15 第2章 关系数据库 22 第3章 关系数据库标准语言SQL 26 第4章 关系系统及其查询优化 34 第5章 关系数据理论 36 第6章 数据库设计 42 第7章 数据库恢复技术 53 第8章 并发控制 60 第9章 数据库安全性 66 第10章 数据库完整性 72 第11章 数据库管理系统 76 第12章 数据库技术新发展 80 第13章 面向对象数据库系统 85 第14章 分布式数据库系统 88 第15章 并行数据库系统 92 第一部分 客观选择题 第1章 绪论 1.数据库系统是采用了数据库技术的计算机系统,数据库系统由数据库数据库管理系 统、应用系统和(C) 。 A.系统分析员 B.程序员 C.数据库管理员 D.操作员 2.数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是(A )。 A.DBS包括DB和DBMS B.DBMS包括DB和DBS C.DB包括DBS和DBMS D.DBS就是DB,也就是DBMS 3.下面列出的数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是 (D)。 I.人工管理阶段 II.文件系统阶段 III.数据库阶段 A.I 和 II B.只有 II C.II 和 III D.只有 I 4.下列四项中,不属于数据库系统特点的是(C) 。 A.数据共享 B.数据完整性 C.数据冗余度高 D.数据独立性高 5.数据库系统的数据独立性体现在(B) 。 A.不会因为数据的变化而影响到应用程序 B.不会因为数据存储结构与数据逻辑结构的变化而影响应用程序 C.不会因为存储策略的变化而影响存储结构 D.不会因为某些存储结构的变化而影响其他的存储结构 6.描述数据库全体数据的全局逻辑结构和特性的是(A) 。 A.模式 B.内模式 C.外模式 D.全模式 7.要保证数据库的数据独立性,需要修改的是(C )。 A.模式与外模式 B.模式与内模式 C.三级模式之间的两层映射 D.三层模式 8.要保证数据库的逻辑数据独立性,需要修改的是(A) 。 A.模式与外模式之间的映射 B.模式与内模式之间的映射 C.模式 D.三级模式 9.用户或应用程序看到的那部分局部逻辑结构和特征的描述是(C)。 A.模式 B.物理模式 C.子模式 D.内模式 10.下述(D不是DBA数据库管理员的职责 。 A.完整性约束说明 B.定义数据库模式 C.数据库安全 D.数据库管理系统设计 11.概念模型是现实世界的第一层抽象,这一类模型中最著名的模型是( D)。 A.层次模型 B.关系模型 C.网状模型 D.实体-关系模型 12.区分不同实体的依据是(B) 。 A.名称 B.属性 C.对象 D.概念 13.关系数据模型是目前最重要的一种数据模型,它的三个要素分别是(A)。 A.实体完整性、参照完整性、用户自定义完整性 B.数据结构、关系操作、完整性约束 C.数据增加、数据修改、数据查询 D.外模式、模式、内模式 14.在( A)一个结点可以有多个双亲,结点之间可以有多种联系。 A.网状模型 B.关系模型 C.层次模型 D.以上都有 15.(B)的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也 简化了程序员的工作和数据库开发建立的工作。 A.网状模型 B.关系模型 C.层次模型 D.以上都有 第2章 关系数据库 1.下面的选项不是关系数据库基本特征的是( A) A. 不同的列应有不同的数据类型 B. 不同的列应有不同的列名 C. 与行的次序无关 D. 与列的次序无关 2.一个关系只有一个(D) 。 A. 候选码 B.外码 C.超码 D.主码 3.关系模型中,一个码是(C) A. 可以由多个任意属性组成 B. 至多由一个属性组成 C. 由一个或多个属性组成,其值能够惟一标识关系中一个元组 D. 以上都不是 4.现有如下关系:患者(患者编号,患者姓名,性别,出生日期,所在单位)医疗(患 者编号,医生编号,医生姓名,诊断日期,诊断结果)其中,医疗关系中的外码是(A) A.患者编号 B.患者姓名 C.患者编号和患者姓名 D.医生编号和患者编号 5.关系代数运算是以(C)的运算 。 A.关系运算 B.谓词演算 C.集合运算 D.代数运算 6.关系数据库管理系统应能实现的专门关系运算包括(B)。 A.排序、索引、统计 B.选择、投影、连接 C.关联、更新、排序 D.显示、打印、制表 7.五种基本
战德臣数据库MOOC模拟练习题解析主要是对数据库相关知识的应用和理解进行考察和分析。这些题目旨在帮助学生巩固和加强对数据库概念、操作和优化的认识和应用能力。 解析这些练习题,首先需要对题目进行仔细阅读和理解。了解题意后,根据问题的要求,运用数据库知识进行建模、查询或优化等方面的操作。 对于涉及数据库建模的题目,需要根据题目描述,设计合适的数据库结构,包括表的数量、字段及其数据类型,以及表与表之间的关系。同时,要注意保证数据库的范式,避免冗余数据和数据一致性问题的出现。 对于查询题目,需根据题目描述,编写合适的SQL语句进行查询。要注意查询条件和字段选择的准确性,以及查询结果的正确性。相关知识点包括:SELECT语句的使用、连接操作、条件筛选、排序、分组、聚合函数等。 对于性能优化题目,需根据题目描述,分析数据库操作的瓶颈,提出相应的优化方案。可以从索引优化、查询语句优化、表结构优化等方面进行思考和答题。 在解析这些练习题时,需要熟悉数据库的相关概念和操作技巧,如关系型数据库管理系统(例如MySQL、Oracle等)的使用,SQL语言的基本语法和常用操作等。同时,还需了解数据库的设计原则、范式理论、查询优化技巧、索引设计等内容。 通过解析这些练习题,可以提高对数据库知识的理解和应用能力,进一步夯实数据库相关的基础知识,为后续的数据库开发和管理工作打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值