首页 > 数据库 >数据库:数据查询

数据库:数据查询

时间:2024-08-13 13:55:51浏览次数:17  
标签:Sno 数据库 查询 WHERE Student 子句 数据 SELECT

1 实验目的

掌握SQL语言的数据查询语句,具体包括:
       SELECT语句的基本用法
       使用WHERE子句进行有条件的查询
       使用IN,NOT IN,BETWEEN等谓词查询
       利用LIKE子句实现模糊查询
       利用ORDER子句为结果排序
       用SQL Server的统计函数进行统计计算
       用GR0UP BY子句实现分组查询的方法
       连接查询的方法

2 实验任务

将学生成绩数据库(XSCJ)导入SQL SERVER 2012,并做如下查询:

       查询选修了课程的学生的学号;

       查询全体学生的姓名和出生年份,并将列别名改为XM和CSNF;

       查询年龄在18到20(包括18岁和20岁)之间学生的学号、姓名和系。

       查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。

       用LIKE查询课程名为DB_S程的课程号和学分。

       查所有有成绩的学生学号和课程号。

       查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄升序排列

       查询选修了课程的学生人数。

       计算1号课程的学生平均成绩。

       查询有3人以上(含3人)同学选修课程的课程号。

       查询1号课程的间接先修课。

       查询每个学生的学号、姓名、选修的课程名及成绩。

       找出每个学生等于他选修课程平均成绩的课程号。

拓展练习:将以下数据录入上次实验建立的BSXT数据库,并完成以下查询:

  1. 查询全体学生的学号和姓名和电话。
  2. 查询全体学生的基本情况。
  3. 查询带了毕业生的老师的教师号。
  4. 查询教师“朱龙”基本情况。
  5. 查询所有姓“王”同学的基本情况。
  6. 统计每种学历老师的人数。
  7. 查询1组老师所带毕业生的基本情况(包括学号,姓名,教师号,教师姓名,毕业设计题目)(注:1组老师只能带1组的学生)
  8. 查询所有学生的选题情况(包括没有选题的学生),包括学号,姓名,题目名称,教师名称。(注:要求老师的组号和学生的组号相一致.)

3 相关知识

       数据查询是数据库的核心操作。SQL提供了SELECT语句进行数据查询,该语句具有灵活的使用方式和丰富的功能。其一般格式为:

SELECT [ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]……

FROM<表名或视图名>……|(<SELECT语句>)[AS]<别名>

[WHERE<条件表达式>][GROUP BY<列名1>][HAVING<条件表达式>]

[ORDER BY<列名2>[ASC|DESC]];

整个SELECT语句的含义是根据WHERE子句的条件表达式以FROM子句指定的基本表、视图或派生表中找出满足条件的元组,再按SELECT子句中的目标列表达式选出元组中的属性值形成结果表。

       如果有GROUP BY子句,则将结果按<列名1>的值进行分组,该属性列值相等的元组为一个组,通常会在每组中作用聚集函数。如果GROUP BY子句带HAVING短语,则只有满足指定条件的组才予以输出。如果有ORDER BY子句,则结果还要按<列名2>的值升序或降序排序。SELECT语句既可以完成简单的单表查询,也可以完成复杂的连接查询和嵌套查询。

       单表查询是指仅涉及一个表的查询,若一个查询同时涉及两个以上的表,则称之为连接查询。连接查询是关系数据库中最主要的查询,包括等值连接查询、自然连接查询、非等值连接查询、自身连接查询、外连接查询和复合条件连接查询等。

4 实验内容与实验结果

SELECT DISTINCT Sno
        FROM SC;
SELECT  Sname  XM , 2015-Sage  CSNF
FROM Student;
SELECT Sno, Sname,Sdept
FROM     Student
WHERE   Sage BETWEEN 18 AND 20;
SELECT Sname,Ssex
	FROM  Student
	WHERE Sdept IN ( 'IS','MA','CS' );
SELECT Cno,Ccredit
      FROM Course
      WHERE Cname LIKE '数据%' ESCAPE '\';
SELECT Sno,Cno
    FROM  SC
    WHERE  Grade IS NOT NULL;
SELECT  *
        FROM  Student
        ORDER BY Sdept,Sage DESC;
SELECT COUNT(DISTINCT Sno)
    FROM SC;
SELECT AVG(CAST(Grade as int))
        FROM SC
        WHERE Cno= 1;
SELECT Sno
     FROM  SC
     GROUP BY Sno
     HAVING  COUNT(*) >=3;
SELECT  FIRST.Cno,SECOND.Cpno
       FROM  Course  FIRST,Course  SECOND
      WHERE FIRST.Cpno = SECOND.Cno and FIRST.Cpno='1';
SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade
    FROM  Student  LEFT OUTER JOIN SC ON (Student.Sno=SC.Sno);
SELECT Sno, Cno
    FROM  SC  x
    WHERE Grade >=(SELECT AVG(CAST(Grade as int)) 
		                        FROM  SC y
                                   WHERE y.Sno=x.Sno);

SELECT Sno,Sname,Stel
FROM Student;
SELECT *
FROM Student;
SELECT DISTINCT Tno
FROM Topic;
SELECT *
FROM Teacher
WHERE Tname = '朱龙';
SELECT *
FROM Student
WHERE Sname LIKE '王%';
SELECT Tdegree,COUNT(*) as number
FROM Teacher
GROUP BY Tdegree;
SELECT Student.Sno,Sname,Teacher.Tname,Hname
FROM Student LEFT OUTER JOIN Topic ON(Student.Sno = Topic.Sno),Teacher
WHERE Teacher.Troup = '1' AND Student.Sgroup = Teacher.Troup AND Teacher.Tno = Topic.Tno;
SELECT Student.Sno,Sname,Hname,Tname
FROM Student LEFT OUTER JOIN (SELECT Hname,Tname,Sno,Troup
FROM Topic,Teacher
WHERE Topic.Tno = Teacher.Tno) TEMP ON(Student.Sno = TEMP.Sno)

标签:Sno,数据库,查询,WHERE,Student,子句,数据,SELECT
From: https://blog.csdn.net/cxx0316/article/details/141161925

相关文章

  • DBeaver 数据库可视化工具安装教程(图文教程)
    DBeaver是一款流行的数据库管理工具,广泛用于数据库开发和管理。它支持多种数据库类型,包括关系型数据库和NoSQL数据库。支持多种数据库,包括MySQL、PostgreSQL、SQLite、Oracle、SQLServer、DB2、Sybase、Teradata、Firebird、ApacheHive、Phoenix、Presto、MongoDB、C......
  • Java SSE:实现服务器推送数据客户端
            体验过大语言模型的人(chatgpt,文心一言,通义千问...)都知道,大模型的回答是一边思考一边返回数据的,属于流式响应。要达到这种效果就需要实现前后端的即时通讯。SSE        SSE(Server-sentEvents):WebSocket的一种轻量代替方案,使用HTTP协议,用于实现服务......
  • 中国住户调查主要数据(2000-2023).zip
    《ZG住户DC年鉴》是一本全面反映中国城乡居民收支、生产和生活状况的资料性年鉴。该年鉴收录了历年全国及分城乡居民收支与生活状况主要数据,以及分地区、按收入等份分组和按4个经济区域分组的住户收支与生活状况主要数据,还包括农村住户固定资产投资情况,以及住户调查其他数据......
  • 基于大数据的农业成果交易信息平台的设计与实现(论文+源码)_kaic
    摘 要目前市面上存在众多成熟交易系统,从国外的亚马逊,到国内的淘宝、京东等。但是缺乏专门针对农业科技成果以及成果服务的、并且交易形式多样稳定的平台。采用MySQL数据库、MVC模型、Java语言、SpringBoot框架、Idea平台等多种技术开发完成了一款专门的成果交易平台。实现......
  • JSP红十字会管理系统enh63--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统功能:捐赠人员,物资分类,物资信息,捐赠记录,募捐信息,捐款记录,捐赠动态技术要求:开发语言:JSP前端使用:HTML5,CSS,JSP动态网页技术后端使用SpringBoot,Sprin......
  • ceph如何进行数据的读写(2)
    本章摘要上文说到,librados/IoctxImpl.cc中调用objecter_op和objecter的op_submit函数,进行op请求的封装、加参和提交。本文详细介绍相关函数的调用。osdc中的操作初始化Op对象,提交请求设置Op对象的时间,oid,操作类型等信息。//osdc/Objector.h//mid-levelhelpersOp*pr......
  • H5 html单页面实现对接接口,获取接口数据
    一、AJAX的一种实现方式,XMLHttpRequestvarxhr=newXMLHttpRequest();xhr.open("POST","你的接口URL",true);xhr.setRequestHeader("Content-Type","application/json;charset=UTF-8");//准备发送的数据vardata=JSON.stringif......
  • ceph如何进行数据的读写(3)
    本章摘要上文说到,osdc中封装请求,使用message中的相关机制将请求发送出去。本文详细介绍osd服务端如何进行请求的接收。osd初始化osd启动时,定义了message变量ms_public,该变量绑定public网络,负责接收客户端的请求。ms_public会启动对应的线程进行接收,并指定接收函数。//ceph_......
  • ceph如何进行数据的读写(1)
    版本ceph版本为17.ceph如何进行读写接口的实现Ceph的客户端通过librados的接口进行集群的访问,这里的访问包括:1)对集群的整体访问2)对象的访问两类接口,这套接口(API)包括C、C++和Python的实现,接口通过网络实现对Ceph集群的访问。在客户端层面,可以在自己的程序中调用该接口,从而集......
  • 图数据库在社交网络分析中的应用
    图数据库在社交网络分析中的应用随着互联网的飞速发展,社交网络已成为人们日常生活中不可或缺的一部分。这些平台不仅连接了数以亿计的用户,还生成了海量的、高度互连的数据。如何有效地处理和分析这些数据,以理解用户行为、优化用户体验、提升平台价值,成为了一个重要的研究课题......