数据库--学习笔记2

网友投稿 279 2022-12-02

数据库--学习笔记2

数据查询

一、目的与要求

1.掌握SELECT语句的基本语法。

2.掌握子查询的表示。

3.掌握连接查询的表示。

4.掌握SELECT语句的统计函数的作用和使用方法。

5.掌握SELECT语句的GROUPBY和ORDERBY子句的作用和使用方法。

二、实验准备

1.了解SELECT语句的基本语法格式。

2.了解SELECT语句的执行方法。

3.了解子查询的表示方法。

4.了解SELECT语句的统计函数的作用。

5.了解SELECT语句的GROUP BY和ORDER BY子句的作用。

三、实验步骤

1.在SQL查询分析器中执行,生成STUDENT、 COURSE、 SC 三张表。将所有运行通过的SQL语句保存在文档中。

请认真观察每张表的表名、属性及表之间的联系

2.SELECT语句的基本使用

(1)分别查询STUDENT、 COURSE、 SC的基本信息.

今天学习了数据库的多表查询:

select student.*,sc.* from student ,sc where student.sno=sc.sno; -- 1 查询每个学生及其选课情况select student.sno,sname,ssex,sage,sdept,cno,grade from student ,sc where student.sno=sc.sno;--2查询每个学生及选修课的课程情况,去掉重复性select first.Cname,second.Cpno from Course first,Course second where first.Cpno=second.Cno--3查询每门课的间接先修课select *from student right join sc on student.sno=sc.sno--4将STUDENT,SC进行右连接

//5查询既选修了2号课程又选修了3号课程的学生姓名、学号;

--6查询和刘晨同一年龄的学生select sc.sno,student.sname from sc,student where cno='3' intersect select sc.sno,student.sname from sc,student where cno='2';select * from student where sage=(select sage from student where sname='刘晨' );

--7选修了课程名为“数据库”的学生姓名和年龄

select student.sno,sname from student,sc,course where student.sno=sc.snoand course.cname='数据结构';

//8查询其他系比IS系任一学生年龄小的学生名单

select sname,sage from student where sdept<>'IS'and sage

//9查询其他系中比IS系所有学生年龄都小的学生名单

select sname,sage from student where sdept<>'IS'and sage

//10查询选修了全部课程的学生姓名查询选修课程1的学生集合和选修2号课程学生集合的差集

-11查询计算机系学生及其性别是男的学生

select sname from student where sno in (select Sno from SC group by Sno having count(*) = (select count(*) from course )) select * from student where sdept='cs' intersect select * from student where ssex='男';-

-12查询选修课程1的学生集合和选修2号课程学生集合的差集

select sno from sc where cno='1'except select sno from sc where cno='2'-

//13查询李丽同学不学的课程的课程号

select cno from course where cno not in (select cno from sc where sno in(select sno from student where sname='李丽')); select AVG(sage) from student ,sc where sc.cno='3' and student .sno=sc.sno

//14查询选修了3号课程的学生平均年龄 select sno,AVG(grade),MAX(grade),MIN(grade) from sc group by sno;

//15求每门课程学生的平均成绩,(最大值,最小值) //16 统计每门课程的学生选修人数(超过3人的才统计)。要求输出课程号和选修人数,结果按人数降序排列,若人数相同,按课程号升序排列select cno,COUNT(sno) as num from sc where cno in(select cno from course) group by cno having COUNT (sno)>3 order by COUNT (sno) desc,cno asc

//17查询学号比刘晨大,而年龄比他小的学生姓名

select sname from student where sno>(select sno from student where sname='刘晨') and sage<(select sage from student where sname='刘晨');

//18求年龄大于所有女同学年龄的男同学姓名和年龄select sname,sage from student where sage>(select AVG(sage) as av_age from student where ssex ='女') and ssex='男';

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java 控制流程、大数值、数组
下一篇:NYOJ--1126--csdn第五届在线编程大赛-完全平方
相关文章

 发表评论

暂时没有评论,来抢沙发吧~