连接查询实验

该实验旨在掌握SQL中的连接查询方法,包括内连接、左连接以及使用WHERE和JOIN子句。实验内容涉及查询特定学生信息、所有学生选课详情、特定姓氏和性别的学生、同专业学生、选修多门课程的学生以及选课人数超过一定数量的课程。实验结果显示了不同查询方法的应用和聚合函数的使用。
摘要由CSDN通过智能技术生成

一、实验目的 

1. 掌握连接查询方法。

2. 掌握各种查询的使用方法。

二、实验硬、软件环境

开发环境: Windows XP 操作系统及以上版本

数据库管理系统:SQL Server 2012

运行环境:Windows XP 操作系统及以上版本

三、实验内容及步骤

1. 查询于兰兰的选课信息,列出学号,姓名,课程号(使用两种连接查询方式)。

代码及运行结果如下:

第一种方法:

SELECT STUDENT.SNO,SNAME,CNO

FROM STUDENT,SC

WHERE (STUDENT.SNO = SC.SNO) AND (SNAME= '于兰兰' )

第二种方法:

SELECT STUDENT.SNO,SNAME,CNO

FROM STUDENT INNER JOIN SC

ON STUDENT.SNO = SC.SNO

WHERE  SNAME= '于兰兰' 

2.查询所有学生的学号、姓名、课程名称及成绩(用左连接)。

代码及运行结果如下:

SELECT  STUDENT.SNO,SNAME,CNAME,GRADE

FROM STUDENT

LEFT OUTER JOIN SC

ON STUDENT.SNO = SC.SNO

LEFT OUTER JOIN COURSE

ON SC.CNO = COURSE.CNO

3.查询所有姓“李”的男同学,要求显示其学号、姓名、性别。

代码及运行结果如下:

SELECT STUDENT.SNO,SNAME,SEX

FROM STUDENT

WHERE (SNAME LIKE '李%')AND (SEX='男') 

4.检索张艳同学 同一专业班级的学生学号、姓名。

代码及运行结果如下:

SELECT STUDENT.SNO,SNAME

FROM STUDENT

WHERE SPECIAL= (SELECT SPECIAL 

                FROM  STUDENT

WHERE SNAME='张艳')

 

5.查询选修三门以上(含三门)课程的学生的学号和平均分数。  

代码及运行结果如下:

SELECT SC.SNO,AVG(GRADE) AS Totalcj

FROM SC

GROUP BY SNO

HAVING (COUNT(*)>=3)

6. 查询成绩表中至少有2名学生选修课程的课程号、平均分数、选课人数。

代码及运行结果如下:

SELECT SC.CNO,AVG(GRADE) AS Totalcj,COUNT(*) AS Sc_NUM

FROM SC

GROUP BY CNO

HAVING (COUNT(*)>=2)

 四、实验结果及分析

1.通过此次实验我掌握连接查询方法,多表连接时需满足FROM子句指明进行连接的表名,WHERE子句指明连接的列名及其连接条件;利用关键字JOIN进行连接,当将JOIN 关键词放于FROM子句中时,应有关键词ON与之对应,以表明连接的条件。

2.利用JOIN连接方法有INNER JOIN(内连接)、LEFT(OUTER)JOIN(左外连接)、RIGHT(OUTER)JOIN(右外连接)、FULL(OUTER)JOIN、CROSS JOIN(交叉连接)。

3.第一个和第三个实验中涉及三个表时,WHERE子句中需要有两个连接条件,此时需要用到AND。第五个和第六个实验的GOURP BY是对查询的列的内容进行分组,在查询语句与聚合函数之间用HAVING来连接。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值