数据库的集合查询和统计查询实验

举报
rivers 发表于 2021/12/22 23:37:01 2021/12/22
【摘要】 文章目录 实验5 数据库的集合查询和统计查询实验实验目的相关知识实验内容实验步骤收获体会 实验5 数据库的集合查询和统计查询实验 实验目的 本实验的目的是使学生熟练掌握SQL Ser...

实验5 数据库的集合查询和统计查询实验

实验目的

本实验的目的是使学生熟练掌握SQL Server查询分析器的使用方法,加深SQL语言查询语句的理解。熟练掌握数据查询中的分组、统计、计算和集合的操作方法。

相关知识

  • 分组和SQL函数查询

SQL函数是综合信息的统计函数,包括计数、求最大值、最小值、平均值、和值等,较详细的SQL函数及功能见第三章SQL查询用的函数。SQL函数可作为列标识符出现在SELECT子句的目标列或HAVING子句的条件中。在SQL查询语句中,如果有GROUP BY分组子句,则语句中的函数为分组统计函数;如果没有GROUP BY分组子句,则语句中的函数为全部结果集的统计函数。

  • 基本的SQL函数
函数 功能
AVG(<数值表达式>) 求与字段相关的数值表达式的平均值
SUM(<数值表达式>) 求与字段相关的数值表达式的和值
MIN(<字段表达式>) 求字段表达式的最小值
MAX(<字段表达式>) 求字段表达式的最大值
COUNT(*|<字段>) 求记录行数(*),或求不是NULL的字段的行数
  • 集合查询

每一个SELECT语句都能获得一个或一组元组。若要把多个SELECT语句的结果合并为一个结果,可用集合来完成。集合操作主要包括并操作UNION、交操作INTERSECT和差操作MINUS(EXCEPT)。

标准SQL语言中提供了并操作UNION,没有直接提供交操作INTERSECT和差操作MINUS,但可以用其他方法来实现,具体实现方法依查询不同而不同。SQL SERVER用intersect做交运算,except做差运算。

实验内容

  • 本实验的主要内容是:

    • 分组查询实验。该实验包括分组条件表达、选择组条件表达的方法。
    • 使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。
    • 集合查询实验。该实验并操作UNION、交操作INTERSECT和差操作except的实现方法。
    • 具体完成以下例题,将它们用SQL语句表示,在学生选课中实现其数据查询操作。
  • 1.求学生的总人数

    select COUNT(*) '总人数' from S
    
        
       
    • 1
  • 2.求选修了课程的学生人数

    select COUNT(distinct sno) '选课人数' from S
    
        
       
    • 1
  • 3.求课程和选修了该课程的学生人数

    select cno,COUNT(SNO) from SC
    group by cno;
    
        
       
    • 1
    • 2
  • 4.求选修超过3门课的学生学号

    select sno from SC
    group by sno
    having COUNT(*)>3
    
        
       
    • 1
    • 2
    • 3
  • 5 .查询计算机科学系的学生及年龄不大于19岁的学生

    select * from S  where sdept='CS'
    union
    select * from S where sage<=19
    
        
       
    • 1
    • 2
    • 3
  • 6.查询计算机科学系的学生与年龄不大于19岁的学生的交集

    select * from S where sdept='CS'
    intersect
    select * from S where sage<=19
    
        
       
    • 1
    • 2
    • 3
  • 7.查询计算机科学系的学生与年龄不大于19岁的学生的差集

    select * from S where sdept='CS'
    except 
    select * from S where sage<=19
    
        
       
    • 1
    • 2
    • 3
  • 8.查询选修课程‘C1’的学生集合与选修课程‘C2’的学生集合的交集

    select SNO from SC where cno='1'
    intersect
    select sno from SC where cno='2'
    
        
       
    • 1
    • 2
    • 3
  • 9.查询选修课程‘C1’的学生集合与选修课程‘C2’的学生集合的差集

    select SNO from SC where cno='1'
    except
    select sno from SC where cno='2'
    
        
       
    • 1
    • 2
    • 3

实验步骤

将查询需求用SQL语言表示:在SQL Server查询分析器的输入区中输入SQL查询语句:执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止

收获体会

整体上这次试验不难,一定程度上让我对集合操作有了新的认识,它主要包括并操作UNION、交操作INTERSECT和差操作MINUS(EXCEPT)。通过反复练习,对集合操作有了基本掌握

文章来源: rivers.blog.csdn.net,作者:宝山的博客,版权归原作者所有,如需转载,请联系作者。

原文链接:rivers.blog.csdn.net/article/details/116152632

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。