SQL语句题目练习

SQL语句实验题目

  1. 建立课程表
  2. 建立学生表
  3. 建立选课表
  4. 查询所有学生的详细信息(包含学生、选课及课程信息)
  5. 查询1班的学生学号及姓名
  6. 查询‘刘晨’的出生年
  7. 查询姓‘刘’的学生的详细情况(包括学生表、选课表及课程表的全部信息)
  8. 查询选修了1号课的学生姓名、性别、成绩
  9. 查询没有先行课的课程的课程号和课程名
  10. 查询2班的所有女生的情况
  11. 查询学分为2到3之间的课程号及课程名
  12. 查询选修1或2号课的学生的班号、学号、姓名、课程名及成绩
  13. 查询2班至少选修一门其先行课为1号课的学生的班号、学号、姓名、性别、系、课程号及成绩
  14. 查询2号科成绩最高的学生班号、学号
  15. 查询1班2号课成绩最低的学生班号、学号
  16. 查询选修2号课且成绩不是最低的同学班号、学号
  17. 查询包含2班1号同学所选全部课程的同学的班号、学号
  18. 查询选修每门课程的课程号及人数
  19. 实现上述数据库的备份和恢复功能

学习掌握SQL SERVER 2000环境数据库备份方法

练习SQL SERVER 数据库备份与恢复技术方法。

源程序代码和实验结果

E-R图:
在这里插入图片描述
建立 S_CS_C 数据库

create database S_SC_C;

1.建立课程表

create table Course
 (cno char(1) PRIMARY KEY,
 cname char(10) NOT NULL,
 cpno char(1),
 ccredit int 
 );

课程表:
在这里插入图片描述
2.建立学生表

create table Student 
(sclass char(1) NOT NULL ,
 sno char(1) ,
 sname char(4) NOT NULL,
 ssex char(2) NOT NULL, 
 sage smallint NOT NULL,
 sdept char(2) NOT NULL
 primary key (sno,sclass)
 )

学生表:
在这里插入图片描述
3.建立选课表

 create table SC
 (sclass char(1) NOT NULL,
 sno char(1),
 cno char(1),
 grade char(2),
 primary key (sno,cno, sclass),
 foreign key (sno,sclass) references Student (sno,sclass),
 foreign key (cno) references Course (cno)
 );

选课表:
在这里插入图片描述
4.查询所有学生的详细信息(包含学生、选课及课程信息)

select Student.sno,sname,ssex,Student.sclass,Sdept,SC.cno,grade,Course.cname,cpno,
ccredit 
from Student left outer join(SC join Course on SC.cno=Course.cno)on(Student.sclass=SC.sclass and Student.sno=SC.sno);

所有学生信息:
在这里插入图片描述
5.查询1班的学生学号及姓名

select sno,sname
from Student
where sclass='1';

1班的学生学号及姓名:
在这里插入图片描述
6.查询‘刘晨’的出生年

select 2019-sage BIRTH
from Student
where sname='刘晨' ;

‘刘晨’的出生年:在这里插入图片描述
7.查询姓‘刘’的学生的详细情况(包括学生表、选课表及课程表的全部信息)

select distinct *
from Student LEFT OUTER  JOIN SC ON (Student.sno=SC.sno AND Student.sclass=SC.sclass) left outer join Course on(Course.cno=SC.cno)
where sname like '刘%';

姓‘刘’的学生的详细情况:
在这里插入图片描述
8.查询选修了1号课的学生姓名、性别、成绩

select sname,ssex,grade
from Student LEFT OUTER  JOIN SC ON (Student.sno=SC.sno AND Student.sclass=SC.sclass) left outer join Course on(Course.cno=SC.cno)
where SC.cno=1;

在这里插入图片描述
9.查询没有先行课的课程的课程号和课程名

select Course.cno,Course.cname
from Course
where cpno is NULL;

在这里插入图片描述
10.查询2班的所有女生的情况

select *
from Student LEFT OUTER  JOIN SC ON (Student.sno=SC.sno AND Student.sclass=SC.sclass) left outer join Course on(Course.cno=SC.cno)
where ssex='女' AND Student.sclass=2;

在这里插入图片描述

11.查询学分为2到3之间的课程号及课程名

select cno,cname
from Course
where ccredit between 2 AND 3;

在这里插入图片描述
12.查询选修1或2号课的学生的班号、学号、姓名、课程名及成绩

select SC.sclass,SC.sno,Student.sname,Course.cname,SC.grade
from Student LEFT OUTER  JOIN SC ON (Student.sno=SC.sno AND Student.sclass=SC.sclass) left outer join Course on(Course.cno=SC.cno)
where SC.cno=1 OR SC.cno=2

在这里插入图片描述
13.查询2班至少选修一门其先行课为1号课的学生的班号、学号、姓名、性别、系、课程号及成绩

select Student.sclass,Student.sno,sname,ssex,sdept,SC.cno,grade
from Student ,SC
where Student.sno=SC.sno and Student.sclass=SC.sclass and SC.sclass=2 and  SC.cno in 
								(			select SC.cno
											from Course left outer join SC on (Course.cno=SC.cno)
											where Course.cpno=1

								);

在这里插入图片描述
14.查询2号科成绩最高的学生班号、学号
select sclass,sno
from SC
where cno=2 and grade >=all(select grade from SC where cno=2)
在这里插入图片描述
15.查询1班2号课成绩最低的学生班号、学号
方法一:

select sclass,sno
from Student
where sclass=1 AND sno in (
			select sno 
			from SC 
			where SC.cno=2 AND SC.sclass=1 AND SC.grade in (
						select MIN(grade)
						from SC
						where SC.cno=2 
			)
			);

方法二:

select sclass,sno
from SC 
where cno=2 and  sclass=1 and grade <=all(select grade from SC where cno=2 and sclass=1)

在这里插入图片描述
16.查询选修2号课且成绩不是最低的同学班号、学号

select  sclass,sno
from SC 
where cno=2 and grade >any (select grade 
								from SC 
								where cno=2);

在这里插入图片描述
17.查询包含2班1号同学所选全部课程的同学的班号、学号

select distinct SCX.sclass,SCX.sno
from SC SCX 
where not exists (
			select * 
			from SC SCY
			where SCY.sclass=2 and SCY.sno=1 and not exists
						(  select *
							from SC SCZ
							where SCZ.cno=SCY.cno and SCZ.sno=SCX.sno and SCZ.sclass=SCX.sclass
			)
);

在这里插入图片描述
18. 查询选修每门课程的课程号及人数

select cno,count(sno)
from SC
group by cno;

在这里插入图片描述
19. 实现上述数据库的备份和恢复功能
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


版权声明:本文为qq_41581354原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。