学生选课数据库SQL语句练习题(附详细分解答案)
sql语句练习题及答案

一在数据库 school 中建立student , sc, course 表。
学生表、课程表、选课表属于数据库 School ,其各自的数据结构如下:学生 Student (Sno,Sname,Ssex,Sage,Sdept)课程表 course(Cno,Cname,Cpno,Ccredit)学生选课 SC(Sno,Cno,Grade)二设定主码1 Student表的主码:sno2 Course表的主码:cno3 Sc表的主码:sno,cno1写出使用 Create Table 语句创建表 student , sc, course 的SQL语句create table student(sno char(6),sname varchar(8),ssex char(2),sage smallint,sdept varchar(15),primary key(sno));Create table course(Cno char(4) primary key,Cname varchar(20),Cpno char(4),Ccredit tinyint)create table sc(sno char(6),cno char(4),grade decimal(12,2),primary key(sno,cno));c2在student表中插入信息insert into studentvalues( ’4001’,’赵茵’,’男’,20,’SX’)insert into studentvalues( ’4002’,’杨华’,’女’,21,’JXJ’)Delete1 删除所有 JSJ 系的男生delete from Student where Sdept=’JSJ’ and Ssex=’男’;2 删除“数据库原理”的课的选课纪录delete from SC where Cno in (select Cno fromCourse where Cname=’数据库原理’);Update1 修改 0001 学生的系科为: JSJUpdate student set sdept=’JSJ’ where sno=’0001’2 把陈小明的年龄加1岁,性别改为女。
SQL语句练习及参考答案

SQL语句练习及参考答案SQL 语句练习1.设学⽣选课数据库有关系S (sno,sname,age,sex )、SC (sno,cno,grade )和C(cno,cname,teacher ),分别表⽰学⽣、选课和课程,sno 代表学号,sname 代表学⽣姓名,age 代表年龄,sex 代表性别,grade 代表成绩,cno 代表课程号,teacher 代表任课教师。
试完成表⽰下列查询。
(1)检索年龄⼤于21的男学⽣学号(sno)和姓名(sname)。
(2)建⽴性别只能为“男”、“⼥”的约束。
(3)创建⼀个视图v1,该视图⽤来查询学⽣的选课情况,要求包含:学⽣姓名(sname),课程名(cname),任课教师teacher 和成绩grade 。
(4)检索选修课程号为k1和k5的学⽣学号(sno)。
(5)检索全部学⽣都选修的课程的课程号(cno)和课程名(cname)。
(6)删除所有男同学的选课记录。
1.(1)select sno,snae from s where sex=’男’ and age>21 (2)alter table s add constraint c1 check sex in (‘男’,’⼥’)(3)create view v1 as select sname,cname,teacher,grade from s,sc,c where s.sno=sc.sno and/doc/62176c89fe4733687e21aaca.html o=/doc/62176c89fe4733687e21aaca.html o (4)select sno fromsc sc1 where cno=’k1’ and exists (se lect * fromsc sc2 where sc1.sno =sc2.sno and/doc/62176c89fe4733687e21aaca.html o=’k5’)(5)select cno,cnam from c where not exists (select * from s where not exists (select * from sc where/doc/62176c89fe4733687e21aaca.html o=/doc/62176c89fe4733687e21aaca.html o and s.sno=sc.sno)(6)delete from sc where sno in (select sno from s where sex=’男’)或delete sc from sc,s where s.sno=sc.sno and sex=’男’2.设图书借阅数据库有关系图书(图书编号,书名,作者,出版社,出版时间,图书类别)、读者(读者编号,姓名,读者类别)和借阅(读者编号, 图书编号, 借阅⽇期,还期)。
SQL语句(有答案)

一. SQL语句【1】(C226)下列关于SQL语言特点的描述中,错误的是( )。
A)语言非常简洁B)是一种一体化语言C)是一种高度过程化的语D)可以直接以命令方式交互使用,也可以程序方式使用【2】1103(7)负责数据库中查询操作的数据库语言是A)数据定义语言B)数据管理语言C)数据操作语言D)数据控制语言【3】Y3(18)SQL语言的核心是( )。
A)数据操纵B)数据定义C)数据查询D)数据定义【4】Y1(24)VisualFoxPro在SQL方面,不支持的功能是( )。
A)数据控制B)数据操纵C)数据查询D)数据定义【5】Y4(30)下列选项中,不属于SQL特殊运算符的是( )。
A)GROUP B)ON C)ALL D)EMPTY二. SQL查询语句【1】0904(12)SQL语句的查询语句是A) INSERT B)UPDATE C) DELETE D) SELECT【2】(C126)标准的SQL基本查询语句的格式是( )。
A)SELECT…FROM…WHERE B)SELECT…WHERE…FROM C)SELECT…WHERE…GROUP BY D)SELECT…FROM…ORDER BY 【3】Y3 (25)SQL语句中,SELECT语句中的JOIN是用来建立表间的联系短语应放在下列哪个短语之后( )。
A)FROM B)WHERE C)ON D)GROUP BY【4】Y2(20)SQL语句中,SELECT命令中的JOIN是用来建立表间的联系短语,连接条件应出现在下列哪个短语中A)WHERE B)ON C)HAVING D)INNER【5】Y4(17)SQL SELECT语句中的WHERE用于说明( )。
A)查询数据B)查询条件C)查询分组D)查询排序【6】Y4(18)SQL语句可以进行多个查询的嵌套,但Visual FoxPro中只支持( )层嵌套。
A)1 B)2 C)3 D)无穷【7】(C128)在Visual FoxPro中,嵌套查询是基于( )的查询A)2个关系B)3个关系C)多个关系D)2个或3个关系【8】0704 (17)以下有关SELECT语句的叙述中错误的是A)SELECT语句中可以使用别名B)SELECT语句中只能包含表中的列及其构成的表达式C)SELECT语句规定了结果集中的顺序D)如果FROM短语引用的两个表有同名的列,则SELECT短语引用它们时必须使用表名前缀加以限定【9】0504 (31) 在Visual FoxPro中,以下有关SQL的SELECT语句的叙述中,错误的是 ( )。
SQL语句练习题(精品文档)

S Q L语言一、选择题1.S Q L语言是()的语言,容易学习。
A.过程化B.非过程化C.格式化D.导航式2. S Q L语言的数据操纵语句包括S E L E C T、I N S E R T、U P D A T E、D E L E T E等。
其中最重要的,也是使用最频繁的语句是()。
A.S E L E C TB.I N S E R TC.U P D A T ED.D E L E T E3.在视图上不能完成的操作是()。
A.更新视图B.查询C.在视图上定义新的表D.在视图上定义新的视图4.S Q L语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,C R E A T E、D R O P、A L T E R语句是实现哪种功能()。
A.数据查询B.数据操纵C.数据定义D.数据控制5.S Q L语言中,删除一个视图的命令是()。
A.D E L E T EB.D R O PC.C L E A RD.R E M O V E6.在S Q L语言中的视图V I E W是数据库的()。
A.外模式B.模式C.内模式D.存储模式7.下列的S Q L语句中,()不是数据定义语句。
A.C R E A T E T A B L EB.D R O P V I E WC.C R E A T E V I E WD.G R A N T8.若要撤销数据库中已经存在的表S,可用()。
A.D E L E T E T A B L E SB.D E L E T E SC.D R O P T A B L E SD.D R O P S9.若要在基本表S中增加一列C N(课程名),可用()。
A.A D D T A B L E S(C N C H A R(8))B.A D D T A B L E S A L T E R(C N C H A R(8))C.A L T E R T A B L E S A D D(C N C H A R(8))D.A L T E R T A B L E S(A D D C N C H A R(8))10.学生关系模式S(S#,S n a m e,S e x,A g e),S的属性分别表示学生的学号、姓名、性别、年龄。
数据库sql课后练习题及答案解析

先创建下面三个表:(book表)(borrow表)(reader表)1) 找出姓李的读者姓名(NAME)和所在单位(COMPANY)。
2) 列出图书库中所有藏书的书名(BOOK_NAME)及出版单位(OUTPUT)。
3) 查找“高等教育出版社”的所有图书名称(BOOK_NAME)及单价(PRICE),结果按单价降序排序。
4) 查找价格介于10元和20元之间的图书种类(SORT),结果按出版单位(OU TPUT)和单价(PRICE)升序排序。
5) 查找书名以”计算机”开头的所有图书和作者(WRITER)。
6) 检索同时借阅了总编号(BOOK_ID)为和两本书的借书证号(READER_ID)。
##7)* 查找所有借了书的读者的姓名(NAME)及所在单位(COMPANY)。
8)* 找出李某所借所有图书的书名及借书日期(BORROW_DATE)。
9)* 无重复地查询2006年10月以后借书的读者借书证号(READER_ID)、姓名和单位。
##10)* 找出借阅了<FoxPro大全>一书的借书证号。
11) 找出与”赵正义”在同一天借书的读者姓名、所在单位及借书日期。
12) 查询2006年7月以后没有借书的读者借书证号、姓名及单位。
#13) 求”科学出版社”图书的最高单价、最低单价、平均单价。
##14)* 求”信息系”当前借阅图书的读者人次数。
#15) 求出各个出版社图书的最高价格、最低价格和总册数。
#16) 分别找出各单位当前借阅图书的读者人数及所在单位。
17)* 找出当前至少借阅了2本图书(大于等于2本)的读者姓名及其所在单位。
18) 分别找出借书人次数多于1人次的单位及人次数。
19) 找出藏书中各个出版单位的名称、每个出版社的书籍的总册数(每种可能有多册)、书的价值总额。
20) 查询经济系是否还清所有图书。
如果已经还清,显示该系所有读者的姓名、所在单位和职称。
附录:建表语句创建图书管理库的图书、读者和借阅三个基本表的表结构:创建BOOK:(图书表)CREATE TABLE BOOK (BOOK_ID int,SORT VARCHAR(10),BOOK_NAME VARCHAR(50),WRITER VARCHAR(10),OUTPUT VARCHAR(50),PRICE int);创建READER:(读者表)CREATE TABLE READER (READER_ID int,COMPANY VARCHAR(10),NAME VARCHAR(10),SEX VARCHAR(2),GRADE VARCHAR(10),ADDR VARCHAR(50));创建BORROW:(借阅表)CREATE TABLE BORROW (READER_ID int,BOOK_ID int,BORROW_DATE datetime)插入数据:BOOK表:insert into BOOK values(,'TP3/12','数据库导论','王强','科学出版社',17.90); insert into BOOK values(,'TP3/12','数据库导论','王强','科学出版社',17.90); insert into BOOK values(,'TP3/12','数据库导论','王强','科学出版社',17.90); insert into BOOK values(,'TP5/10','计算机基础','李伟','高等教育出版社',18.00);insert into BOOK values(,'TP3/12','FoxBASE','张三','电子工业出版社',23.60);insert into BOOK values(,'TS7/21','高等数学','刘明','高等教育出版社',20.00);insert into BOOK values(,'TR9/12','线性代数','孙业','北京大学出版社',20.80);insert into BOOK values(,'TR7/90','大学英语','胡玲','清华大学出版社',12.50);insert into BOOK values(,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50);insert into BOOK values(,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50);insert into BOOK values(,'TP4/13','数据库基础','马凌云','人民邮电出版社',22.50);insert into BOOK values(,'TP4/14','FoxPro大全','周虹','科学出版社',32.70);insert into BOOK values(,'TP4/14','FoxPro大全','周虹','科学出版社',32.70);insert into BOOK values(,'TP4/15','计算机网络','黄力钧','高等教育出版社',21.80);insert into BOOK values(,'TP4/15','计算机网络','黄力钧','高等教育出版社',2 1.80);READER表:insert into reader values(111,'信息系','王维利','女','教授','1号楼424'); insert into reader values(112,'财会系','李立','男','副教授','2号楼316 ');insert into reader values(113,'经济系','张三','男','讲师','3号楼105'); insert into reader values(114,'信息系','周华发','男','讲师','1号楼316'); insert into reader values(115,'信息系','赵正义','男','工程师','1号楼224 ');insert into reader values(116,'信息系','李明','男','副教授','1号楼318 ');insert into reader values(117,'计算机系','李小峰','男','助教','1号楼214 ');insert into reader values(118,'计算机系','许鹏飞','男','助工','1号楼216 ');insert into reader values(119,'计算机系','刘大龙','男','教授','1号楼318 ');insert into reader values(120,'国际贸易','李雪','男','副教授','4号楼506');insert into reader values(121,'国际贸易','李爽','女','讲师','4号楼510 ');insert into reader values(122,'国际贸易','王纯','女','讲师','4号楼512 ');insert into reader values(123,'财会系','沈小霞','女','助教','2号楼202'); insert into reader values(124,'财会系','朱海','男','讲师','2号楼210'); insert into reader values(125,'财会系','马英明','男','副教授','2号楼212 ');BORROW表:insert into borrow values(112,,'3-19-2006');insert into borrow values(125,,'2-12-2006');insert into borrow values(111,,'8-21-2006');insert into borrow values(112,,'3-14-2006');insert into borrow values(114,,'10-21-2006');insert into borrow values(120,,'11-2-2006');insert into borrow values(120,,'10-18-2006');insert into borrow values(119,,'11-12-2006');insert into borrow values(112,,'10-23-2006');insert into borrow values(115,,'8-21-2006');insert into borrow values(118,,'9-10-2006');现有关系数据库如下:数据库名:图书借阅管理系统读者表(读者编号 char(6),姓名,性别,年龄,单位,身份证号,职称)图书表(图书编号char(6),图书名称,出版社,作者)借阅表(读者编号,图书编号,借阅时间)用SQL语言实现下列功能的sql语句代码。
SQL语句练习及标准答案

SQL语句练习及答案————————————————————————————————作者:————————————————————————————————日期:sql语句练习题1数据库有如下四个表格:student(sno,sname,sage,ssex,sdpt) 学生表系表(dptno,dname)course(cno,cname, gradet, tno) 课程表sc(sno,cno,score) 成绩表teacher(tno,tname) 教师表要求:完成以下操作1.查询姓"欧阳"且全名为三个汉字的学生的姓名。
select sname from student where sname like “欧阳__‟;2.查询名字中第2个字为"阳"字的学生的姓名和学号。
select sname,sno from student where sname like '_阳%';3.查询所有不姓刘的学生姓名。
select sname,sno,ssexfrom studentwhere sname not like “刘%”;4.查询db_design课程的课程号和学分。
select cno,ccredit from coursewhere cname like 'db_design'5.查询以"db_"开头,且倒数第3个字符为i的课程的详细情况。
select * from course where cname like 'db%i_ _';6.某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。
查询缺少成绩的学生的学号和相应的课程号。
select sno,cno from sc where grade is null;7.查所有有成绩的学生学号和课程号。
select sno,cno from sc where grade is not null;8.查询计算机系年龄在20岁以下的学生姓名。
SQL实验的题目和答案全解

数据库实验总汇二、使用SQL Server 工具在管理数据库系统和运行SQL查询的两个主要工具是企业管理器和查询分析器三、实验目的1.熟悉数据库的交互式SQL工具。
2.熟悉通过SQL对数据库进行操作。
3.完成上机练习。
四、实验内容(打※为选做题)Part A1.使用CREATE语句创建数据库2. 使用CREATE语句创建基本表3.更改基本表的定义,增加列,修改列的数据类型。
4.创建表的索引,取消表的索引1、数据库的建立使用SQL 语句建立关系数据库schooldemo2、基本表的建立在数据库schooldemo下,使用SQL 语句建立关系数据库表:人员表PERSON(Pno,Pname, Page),房间表ROOM(Rno,Rname,Rarea),表PR(Pno,Rno,Date).其中,表PERSON :Pno(CHAR(8),主码,非空,唯一),Pname(CHAR(20),非空),Page(INT);表ROOM:Rno(CHAR(8),主码,非空,唯一),Rname(CHAR(20)),Rarea(FLOAT (10));表PR:Pno(CHAR(8),非空,唯一),Rno(CHAR(8),非空,唯一),Date (DATETIME);(三个表之间有联系)3、更改基本表的定义,增加列,删除列,修改列的数据类型。
更改表PERSON,增加属性Ptype(类型是CHAR ,长度为10),把表ROOM中的属性Rname的数据类型改为长度为40。
4、创建表的索引,取消表的索引为ROOM表创建按Rno降序排列的索引创建PERSON表按Pname升序排列的唯一性索引取消PERSON表Pname升序索引5、删除表ROOM实验过程(1.a)1、数据库的建立使用SQL 语句建立关系数据库schooldemocreate database schooldemoon(name=schooldemo,filename='e:\123\school_data.mdf',size=5mb,maxsize=15mb,filegrowth=10%)log on(name=schooldemo_log,filename='e:\123\schooldemo.ldf',size=5mb,maxsize=15mb,filegrowth=4mb)2、基本表的建立在数据库schooldemo下,使用SQL 语句建立关系数据库表:人员表PERSON(Pno,Pname, Page),房间表ROOM(Rno,Rname,Rarea), 表PR(Pno,Rno,Date).其中,表PERSON :Pno(CHAR(8),主码,非空,唯一),Pname(CHAR(20),非空),Page(INT);表ROOM:Rno(CHAR(8),主码,非空,唯一),Rname(CHAR(20)),Rarea(FLOAT(10));表PR:Pno(CHAR(8),非空,唯一),Rno(CHAR(8),非空,唯一),Date(DATETIME);(三个表之间有联系)create table person(pno char (8)primary key,pname char (20),page int);create table room(rno char (8) primary key,rname char(20),rarea float(10));create table pr(pno char (8),rno char (8),date datetime,primary key(pno,rno),foreign key(pno) references person(pno),foreign key(rno) references room(rno));3、更改基本表的定义,增加列,删除列,修改列的数据类型。
SQL语句练习参考答案(教学数据库)

以下为SQL查询练习参考答案(查询用到的表参照教材P82)。
1.查询全体学生的姓名和所在系。
Select Sno,SdeptFrom Student;2.查询所有课程的详细信息。
Select *From Course;或者Select Cno,Cname,Cpno,CcreditFrom Course;3.查询选修了课程的学生学号。
Select Distinct SnoFrom SC;注意:select子句中需要指定Distinct 关键词4.查询有学生选修的课程号。
Select Distinct CnoFrom SC;5.检索年龄在 18到 20之间(含18和20)的女生的学号、姓名及年龄。
Select Sno,Sname,SageFrom StudentWhere Ssex=’女’ and (Sage between 18 and 20);注意: where子句性别的常量值——女,需用英文状态下的单引号或双引号。
或者Select Sno,Sname,SageFrom StudentWhere Ssex=’女’ and (Sage >=18 and Sage<= 20);6.检索“200215121”学生选修课程号及成绩。
Select Cno,GradeFrom SCWhere Sno=’200215121’;7.检索选修了“1”号或“3”号课程的学生学号、课程号及成绩。
Select *From SCWhere Cno=’1’ or Cno=’3’;注意: where子句若用Cno=’1’ or ’3’是错误的,or连接的是两个布尔表达式。
8.检索所有姓王的同学的姓名、性别和所在系。
Select Sname,Ssex,SdeptFrom StudentWhere Sname like ’王*’;注意: Access中的通配符为’*’ 和’?’标。
准SQL中的通配符为’%’ 和’_’9.检索课程名中包括“数据库”的课程详细信息,结果按学分降序排列。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。
四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。
用SQL语句创建四个表并完成相关题目。
表1-1数据库的表结构表(一)Student属性名数据类型可否为空含义Sno Char(3) 否学号(主键)Sname Char(8) 否学生姓名Ssex Char(2) 否学生性别Sbirthday datetime 可学生出生年月Class Char(5) 可学生所在班级表(二)Course属性名数据类型可否为空含义Cno Char(5) 否课程号(主键)Cname Varchar(10) 否课程名称Tno Char(3) 否教师编号(外键)表(三)Score属性名数据类型可否为空含义Sno Char(3) 否学号(外键)Cno Char(5) 否课程号(外键)Degree Decimal(4,1) 可成绩主码:Sno+ Cno表(四)Teacher属性名数据类型可否为含义空Tno Char(3) 否教师编号(主键)Tname Char(4) 否教师姓名Tsex Char(2) 否教师性别Tbirthday datetime 可教师出生年月Prof Char(6) 可职称Depart Varchar(10) 否教师所在部门表1-2数据库中的数据表(一)StudentSno Sname Ssex Sbirthday class108 曾华男1977-09-9503301105 匡明男1975-10-9503102107 王丽女1976-01-950332395033101 李军男1976-02-2095031109 王芳女1975-02-1095031103 陆君男1974-06-03表(二)CourseCno Cname Tno3-105 计算机导论8253-245 操作系统8046-166 数字电路8569-888 高等数学831表(三)ScoreSno Cno Degree103 3-245 86105 3-245 75109 3-245 68103 3-105 92105 3-105 88109 3-105 76101 3-105 64107 3-105 91108 3-105 78101 6-166 85107 6-166 79108 6-166 81表(四)TeacherTno Tname Tsex Tbirthday Prof Depart804 李诚男1958-12-02 副教授计算机系856 张旭男1969-03-12 讲师电子工程系825 王萍女1972-05-05助教计算机系831 刘冰女1977-08-14 助教电子工程系-- 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 class,count(*) as 学生人数 from studentgroup by class having class='95031';-- 10、查询Score表中的最高分的学生学号和课程号。
(子查询或者排序)select sno,cno,degree,(select max(degree) from score) as maxscore--计算最高分from score where degree= (select max(degree) from score);-- 11、查询…3-105‟号课程的平均分。
select avg(degree) as avgdegreefrom score group by cno having cno='3-105';-- 12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。
select avg(degree) as avgdegree from score group by cno --按照课程分组取平均值having cno= (select cno from score group by cno having count(*)>=5)--至少有5名学生选修的课程and cno like '3%';--以3开头的课程-- 13、查询最低分大于70,最高分小于90的Sno列。
select sno,max(degree)as maxdegree,min(degree) as mindegree from Score group by snohaving max(degree)<90 and min(degree)>70-- 14、查询所有学生的Sname、Cno和Degree列。
select sname,cno,degree from studentjoin score on student.sno=score.sno;-- 15、查询所有学生的Sno、Cname和Degree列。
select sno,cname,degree from Scorejoin course on o=o;-- 16、查询所有学生的Sname、Cname和Degree列。
select sname,cname,degree from studentjoin score on student.sno=score.snojoin course on o=o;-- 17、查询“95033”班所选课程的平均分。
select avg(degree) as avgdegree from score where sno in(select sno from student where class='95033')18、假设使用如下命令建立了一个grade表:create table grade(low int(3),upp int(3),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,(case when degree between 90 and 100 then 'A'when degree between 80 and 89 then 'B'when degree between 70 and 79 then 'C'when degree between 60 and 69 then 'D'when degree between 0 and 59 then 'E'END) as rank from score;-- 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中选学多门课程的同学中分数为非最高分成绩的记录。
select * from score where sno in--选学多门课程的同学中分数为非最高分成绩的同学的全记录(select sno from score group by sno having count(cno)>1--选学多门课程的同学intersect--取交集为选学多门课程的同学中分数为非最高分成绩的同学。
select distinct sno from score where sno not in( --分数为非最高分成绩的同学select sno from score where degree=(select max(degree) from score)))--分数最高成绩的同学-- 21、查询score中选学多门课程的同学中分数为非同课程最高分成绩的记录。
方法1:select * from score where sno in--选学多门课程的同学中分数为非同课程最高分成绩的同学的全记录(select sno from score group by sno having count(cno)>1--选学多门课程的同学intersect--取交集为选学多门课程的同学中分数为非同课程最高分成绩的同学。
select distinct sno from score where sno not in(--非同课程分数最高成绩的同学select distinct sno from score where degree in (--同课程分数最高成绩的同学select max(degree)from score group by cno)))--同课程分数最高成绩方法2:select * from score where sno in--选学多门课程的同学中分数为非同课程最高分成绩的同学的全记录(select sno from score group by sno having count(cno)>1-- 选学多门课程的同学intersect -- 取交集为选学多门课程的同学中分数为同课程非最高分成绩的同学select distinct sno from score where sno not in -- 选出非同课程最高分成绩的同学(select distinct sno from score as s1where degree=(select max(degree) from score as s2 where o=o group by cno)));-- 使用关联子查询选出同课程最高分成绩的同学-- 22、查询1975年之后出生的学生的所学课程以及成绩。