15-07-19数据库练习题答案

创建数据库,创建表

create database xiti

use xiti create table Student ( Sno char(3) not null primary key, Sname char(8) not null, Ssex char(2) not null, Sbirthday datetime, Class char(5), ) create table Teacher ( Tno char(3) not null primary key, Tname char(4) not null, Tsex char(2) not null, Tbirthday datetime, Prof char(6), Depart varchar(10) not null, )

create table Course ( Cno char(5)not null primary key, Cname varchar(10)not null, Tno char(3)not null references Teacher(Tno), ) create table Score ( Sno char(3) not null references Student(Sno), Cno char(5) not null references Course(Cno), Degree decimal(4,1), primary key(Sno,Cno), )

select * from Student insert into Student values(108,‘曾华‘,‘男‘,‘1977-09-01‘,95033) insert into Student values(105,‘匡明‘,‘男‘,‘1975-10-02‘,95031) insert into Student values(107,‘王丽‘,‘女‘,‘1976-01-23‘,95033) insert into Student values(101,‘李军‘,‘男‘,‘1976-02-20‘,95033) insert into Student values(109,‘王芳‘,‘女‘,‘1975-02-10‘,95031) insert into Student values(103,‘陆君‘,‘男‘,‘1974-06-03‘,95031)

select * from Teacher insert into Teacher values(804,‘李诚‘,‘男‘,‘1958-12-02‘,‘副教授‘,‘计算机系‘) insert into Teacher values(856,‘张旭‘,‘男‘,‘1969-03-12‘,‘讲师‘,‘电子工程系‘) insert into Teacher values(825,‘王萍‘,‘女‘,‘1972-05-05‘,‘助教‘,‘计算机系‘) insert into Teacher values(831,‘刘冰‘,‘女‘,‘1977-08-14‘,‘助教‘,‘电子工程系‘)

select * from Course insert into Course values(‘3-105‘,‘计算机导论‘,825) insert into Course values(‘3-245‘,‘操作系统‘,804) insert into Course values(‘6-166‘,‘数字电路‘,856) insert into Course values(‘9-888‘,‘高等数学‘,831)

select * from Score insert into Score values(103,‘3-245‘,86) insert into Score values(105,‘3-245‘,75) insert into Score values(109,‘3-245‘,68) insert into Score values(103,‘3-105‘,92) insert into Score values(105,‘3-105‘,88) insert into Score values(109,‘3-105‘,76) insert into Score values(101,‘3-105‘,64) insert into Score values(107,‘3-105‘,91) insert into Score values(108,‘3-105‘,78) insert into Score values(101,‘6-166‘,85) insert into Score values(107,‘6-166‘,79) insert into Score values(108,‘6-166‘,81)

习题答案

--1、 查询Student表中的所有记录的Sname、Ssex和Class列。 select Sname,Ssex,Class from Student

--2、 查询教师所有的单位即不重复的Depart列。 select distinct Depart from Teacher

--3、 查询Student表的所有记录。 select * from Student

--4、 查询Score表中成绩在60到80之间的所有记录。 select * from Score where Degree between 60 and 80

--5、 查询Score表中成绩为85,86或88的记录。 select * from Score where Degree in(85,86,88)

--6、 查询Student表中“95031”班或性别为“女”的同学记录。 select * from Student where class="95031" or Ssex=‘女‘

--7、 以Class降序查询Student表的所有记录。 select * from Student order by Class desc

--8、 以Cno升序、Degree降序查询Score表的所有记录。 select * from Score order by Cno , Degree desc

--9、 查询“95031”班的学生人数。 select COUNT(*) from Student where class="95031"

--10、 查询Score表中的最高分的学生学号和课程号。(子查询或者排序) 方法一子查询、select Sno,Cno from Score where Degree = (select MAX(Degree) from Score) 方法二排序、select top 1 * from Score order by Degree desc

--11、 查询每门课的平均成绩。 select Cno, AVG(Degree)from Score group by Cno

--12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。 select cno,AVG(Degree) from Score group by Cno having COUNT(*)>=5 and Cno like ‘3%‘

--13、查询分数大于70,小于90的Sno列。 select Sno from Score where Degree > 70 and Degree< 90

--14、查询所有学生的Sname、Cno和Degree列。 select Student.Sname,Score.Cno,Score.Degree from Student join Score on Student.Sno = Score.Sno

--15、查询所有学生的Sno、Cname和Degree列。 select Score.Sno,Course.Cname,Score.Degree from Course join Score on Course.Cno = Score.Cno

--16、查询所有学生的Sname、Cname和Degree列。 select Student.Sname,Course.Cname,Score.Degree from Student join Score on Student.Sno = Score.Sno join Course on Score.Cno = Course.Cno

--17、 查询“95033”班学生的平均分。 方法一、select AVG(Degree)from Score join Student on Student.Sno=Score.Sno and Class=‘95033‘ 方法二、select AVG(Degree)from Score where Sno in (select Sno from Student where class="95033")

--18、 假设使用如下命令建立了一个grade表: create table grade(low  int, upp  int, rank  char(1)) insert into grade values(90,100,‘A‘) insert into grade values(80,89,‘B‘) insert into grade values(70,79,‘C‘) insert into grade values(60,69,‘D‘) insert into grade values(0,59,‘E‘) --现查询所有同学的Sno、Cno和rank列。 select sno,cno,rank from Score,grade where Degree between low and upp

--19、 查询选修“3-105”课程的并且成绩高于“109”号同学成绩的所有同学的记录。 select * from Score where Cno=‘3-105‘and Degree>(select Degree from Score where Sno=109 and Cno=‘3-105‘)

--20、查询score中选学多门课程的同学中分数为非最高分成绩的记录。 --(1)找同学 select Sno from Score  group by Sno having COUNT(*)>1 --(2)找最高分 select MAX(Degree) from Score where Sno in (select Sno from Score  group by Sno having COUNT(*)>1) --(3)去掉最高分 select Sno from Score where Degree !=(select MAX(Degree) from Score where Sno in (select Sno from Score  group by Sno having COUNT(*)>1))group by Sno having COUNT(*)>1 --(4)找非最高分学生的信息 select * from Score where Sno in(select Sno from Score where Degree !=(select MAX(Degree) from Score where Sno in (select Sno from Score  group by Sno having COUNT(*)>1))group by Sno having COUNT(*)>1)

--21、 查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。 select * from Score where Degree>(select degree from Score where Sno=109 and Cno=‘3-105‘ )

--22、查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。 select Sno,Sname,Sbirthday from Student where YEAR(Sbirthday) = (select YEAR(Sbirthday) from Student where Sno=108)

--23、查询“张旭“教师任课的学生成绩。 --(1)求张旭的Tno select Tno from Teacher where Tname=‘张旭‘ --(2)根据Tno求Cno select Cno from Course where Tno=(select Tno from Teacher where Tname=‘张旭‘) --(3)根据Cno求学生成绩 select * from Score where Cno=(select Cno from Course where Tno=(select Tno from Teacher where Tname=‘张旭‘)) --24、查询选修某课程的同学人数多于5人的教师姓名。 select Tname from Teacher where Tno=(select Tno from Course where Cno=(select Cno from Score group by Cno having COUNT(*)>5))

--25、查询95033班和95031班全体学生的记录。 select * from Student where class="95033" or class="95031"

--26、  查询存在有85分以上成绩的课程Cno. select distinct Cno from Score where Degree>85

--27、查询出“计算机系“教师所教课程的成绩表。 select * from Score where cno in(select Cno from Course where Tno in(select Tno from Teacher where Depart=‘计算机系‘))

--28、查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof。 select * from teacher t2 where Depart=‘计算机系‘ and not exists(select * from  Teacher t1 where Depart=‘电子工程系‘ and t1.Prof=t2.Prof) union select * from teacher t2 where Depart=‘电子工程系‘ and not exists(select * from  Teacher t1 where Depart=‘计算机系‘ and t1.Prof=t2.Prof)

--29、查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学的Cno、Sno和Degree,并按Degree从高到低次序排序。 select Cno,Sno,Degree from Score where Cno=‘3-105‘ and Degree>any(select Degree from Score where Cno=‘3-245‘)order by Degree desc

--30、查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学的Cno、Sno和Degree. select Cno,Sno,Degree from Score where Cno=‘3-105‘ and Degree>all(select Degree from Score where Cno=‘3-245‘)

--31、 查询所有教师和同学的name、sex和birthday. select Tname,Tsex,Tbirthday from Teacher union select Sname,Ssex,Sbirthday from Student

--32、查询所有“女”教师和“女”同学的name、sex和birthday. select Tname,Tsex,Tbirthday from Teacher where Tsex=‘女‘ union select Sname,Ssex,Sbirthday from Student where Ssex=‘女‘

--33、 查询成绩比该课程平均成绩低的同学的成绩表。 select * from Score s1 where Degree<(select AVG(Degree) from Score s2 group by Cno having s1.Cno=s2.Cno)

--34、 查询所有任课教师的Tname和Depart. select Tname,Depart from Teacher where Tno  in (select Tno from Course where Cno in(select distinct Cno from Score))

--35 、 查询所有未讲课的教师的Tname和Depart. select Tname,Depart from Teacher where Tno not in (select Tno from Course where Cno in(select distinct Cno from Score))

--36、查询至少有2名男生的班号。 select Class from Student where Ssex=‘男‘ group by Class having COUNT(*)>1

--37、查询Student表中不姓“王”的同学记录。 select * from Student where Sname not like ‘王%‘

--38、查询Student表中每个学生的姓名和年龄。 select Sname,YEAR(GETDATE())- year(Sbirthday) from Student

--39、查询Student表中最大和最小的Sbirthday日期值。 select MAX(Sbirthday), MIN(Sbirthday)from Student

--40、以班号和年龄从大到小的顺序查询Student表中的全部记录。 select * from Student order by Class desc,YEAR(GETDATE())- year(Sbirthday) desc

--41、查询“男”教师及其所上的课程。 方法一、select Cname,Tname from Course join Teacher on Course.Tno=Teacher.Tno where Tsex=‘男‘

方法二、select * from Course where Tno in(select Tno from Teacher where Tsex=‘男‘)

--42、查询最高分同学的Sno、Cno和Degree列。 select sno,cno,Degree from Score where degree =(select MAX(Degree) from Score)

--43、查询和“李军”同性别的所有同学的Sname. select sname from Student where Ssex=(select Ssex from Student where Sname=‘李军‘) and Sname !=‘李军‘

--44、查询和“李军”同性别并同班的同学Sname. 方法一、select sname from Student where Ssex in(select Ssex from Student where Sname=‘李军‘ )  and Class = (select Class from Student where Sname = ‘李军‘) and Sname !=‘李军‘

方法二、select Sname from Student s1 where Ssex=(select Ssex from Student s2 where Sname =‘李军‘ and s1.Class=s2.Class) and Sname!=‘李军‘

--45、查询所有选修“计算机导论”课程的“男”同学的成绩表。 方法一、select * from Score where Cno= (select Cno from Course where Cname=‘计算机导论‘) and Sno in(select Sno from Student where Ssex=‘男‘)

方法二、select Score.Sno,Score.Cno,Degree from Score join Course on Score.Cno=Course.Cno join Student on Student.Sno =Score.Sno and Ssex=‘男‘ and Course.Cname=‘计算机导论‘

时间: 2024-11-19 06:32:44

15-07-19数据库练习题答案的相关文章

[转] AOJ 0525 Osenbei《挑战程序设计竞赛(第2版)》练习题答案

来自 码农场 ? AOJ 0525 Osenbei<挑战程序设计竞赛(第2版)>练习题答案 只把代码复制过来,原博的其他分析请看链接. 1 #include <iostream> 2 #include <bitset> 3 #include <algorithm> 4 5 using namespace std; 6 7 bitset<10000> cookie[10]; 8 9 ///////////////////////////SubMai

数据结构第二单元练习题答案

数据结构第二单元练习题答案 一.选择 1.树最适合用来表示(  ) A.有序数据元素      B.无序数据元素 C.元素之间具有分支层次关系的数据 D.元素之间无联系的数据 2.在下述结论中,正确的是(  ) ①只有一个结点的二叉树的度为0;  ②二叉树的度为2:  ③二叉树的左右子树可任意交换; ④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树. A.①②③     B.②③④    C.②④     D.①④ 3.以下说法正确的是(  ) A.任何一棵二叉树中至少有一个结点的度

我为NET狂官方面试题-数据库篇答案

?说明:如有错误可以批评指正,有更好写法也可以提点下~ ? 1.?求结果:select "1"? 报错,SQL里面只有单引号,列如:'xx' ? ? 2.?查找包含"objs"的表?查找包含"o"的数据库? select?*?from?sys.objects?where?name?like?'%objs%' select?*?from?sys.databases?where?name?like?'%o%'?? ? ? 3.?求今天距离2002年有

13.2 Go练习题答案

13.2 Go练习题答案 练习题1: 创建一个goroutine与主线程按顺序相互发送信息若干次 且打印 package temp import "fmt" //创建一个goroutine与主线程按顺序相互发送信息若干次 且打印 var c chan string //声明一个string管道 func Pingpong() { i := 0 for { fmt.Println(<-c) //打印管道中取出的数据 c <- fmt.Sprintf("From pi

中国大学MOOC 哈工大数据库系统 第8讲模拟练习题答案

完整 中国大学MOOC 哈工大数据库系统 第8讲模拟练习题答案.pdf, 点我下载,进入下载页面点击普通下载 SQL语言的GRANT和REVOKE语句主要是用来维护数据库的_________. A.安全性 B.完整性 C.可靠性 D.一致性 正确答案:A你选对了 2安全性控制的防范对象是_________,防止他们对数据库数据的存取. A.非法非授权用户 B.不符合语义的数据 C.不正确的数据 D.不符合约束的数据 正确答案:A你选对了 原文地址:https://www.cnblogs.com/

linux(centOS6) 安装Mysql 5.6.19数据库步骤、 问题以及相应的解决办法

数据库版本:Ver 14.14 Distrib 5.6.19, for Linux (x86_64) using  EditLine wrapper linux版本: Linux version 2.6.32-279.el6.x86_64 ([email protected]) (gcc ve rsion 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP Fri Jun 22 12:19:21 UTC 20 12 采用的rpm安装方式. 1.官网下载

手把手教你在win10系统上安装、配置MySQL 5.7.19数据库

关于数据库这个东东,可能还有很多小伙伴没有接触过,这里简单说一下吧,数据库就是按照数据结构来组织.存储.管理数据的仓库,它可以高效的存储和管理数据,用途及其广泛,比如网站建设开发.软件应用开发等领域,我们常见的数据库有Access.Sqlserver.Mysql.Oracle等,今天亦是美网络小编给大家介绍的是mysql数据库,因为网络上80%以上的网站采用的是PHP+Mysql的搭配组合,想要学习网站建设开发,不了解Mysql数据库是说不过去的哦! 首先下载最新版MySQL数据库安装包,官网下

15个nosql数据库

1.MongoDB 介绍 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.主要解决的是海量数据的访问效率问题,为WEB应用提供可扩展的高性能数据存储解决方案.当数据量达到50GB以上的时候,MongoDB的数据库访问速度是MySQL的10倍以上.MongoDB的并发读写效率不是特别出色,根据官方提供的性能测试表明,大约每秒可以处理0.5万~1.5万次读写请求.MongoDB还自带了一个出色的分布式文件系统GridFS,可以支持海量的数据存储. MongoDB也有一个Ruby的项

一周随笔--15.10.19

一周新知识点记录(15.10.19) 一.ipad——UIPopoverController UIPopoverController继承自NSObject,因此不具备显示能力,它是通过其中的内容控制器显示的内容的.  UIPopoverController使用四部曲: 一.创建UIPopoverController的内容控制器 二.根据内容控制器初始化UIPopoverController对象 三.设置UIPopoverController对象的尺寸 四.显示UIPopoverControlle