连接查询实验

article/2025/9/14 14:56:40

一、实验目的 

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来连接。


http://chatgpt.dhexx.cn/article/fRpkL438.shtml

相关文章

SQL server连接查询

目录 前沿小补充等值与非等值连接查询自身连接外连接多表连接 前沿小补充 例3.48 查询平均成绩大于等于80分的学生学号和平均成绩 SELECT Sno,AVG(Grade) FROM SC WHERE AVG(Grade)>80 GROUP BY Sno; SELECT * FROM SC;此时发现: 这是因为WHERE子句中是不能用…

MySQL数据库——连接查询

第1关 内连接查询 一、本关任务:使用内连接查询数据表中学生姓名和对应的班级。 内连接查询 仅将两个表中满足连接条件的行组合起来作为结果集,称为内连接; 关键字:[inner] join ... on。 语法: 表1 [inner] joi…

数据库-连接查询

数据库连接查询可以进行多表联查,可以同时展示多个表的数据,方便进行查阅。那么连接查询分为多种方式,我们可以根据要求筛选合适的方式进行查询。下面我们来讲解一下怎么进行多表联查。 首先连接查询大致分为3种形式,分别为&…

当app发生闪退,测试人员该如何进行定位?

对app闪退问题进行定位 1、使用usb连接电脑和手机,打开手机的开发者模式 2、使用adb connect命令去进行连接,如:adb connect ip地址 3、再用adb devices命令查看是否成功连接设备 4、adb logcat -v time >d:\logcat.txt 生成日志文件到D盘…

简单adb 命令抓Android app 闪退日志

系统:Windows 1.手机连上电脑,打开开发者选项,打开调试模式 2.打开cmd,输入命令adb devices查看设备连接成功 下面进入正题: 查看手机的所有日志 adb logcat 只获取该应用的日志 adb logcat | findstr 应用包名开…

[Android Studio]开发APP应用出现软件程序打开闪退的排错

🟧🟨🟩🟦🟪 Android Debug🟧🟨🟩🟦🟪 Topic 发布安卓学习过程中遇到问题解决过程,希望我的解决方案可以对小伙伴们有帮助。 📋笔记目…

iOS App 闪退监测

为保障线上 App 的用户体验,我们一般都会对线上 App 的 crash 率做实时监控,一旦检测到 spike,可以即刻调查原因,但这一切的前提是 crash 日志能够准确上报。 crash 日志上报有两个难点: crash handler 安装之前的代…

苹果上传闪退 php,苹果手机app频繁闪退原因以及解决方法

就算再流畅的ios系统,再好的iPhone手机,用久了都会遇到一个这样子的问题,就是闪退的问题,而且APP闪退占据多数。那该怎么修复呢?闪电修告诉你原因和搞定的步骤。 闪电修上门维修手机 我们先了解下iPhone闪退的原因: 1.插件影响程序的正常运行,而导致APP闪退 2.下载的软件…

vc++6.0打开文件闪退_ipa企业签名app闪退原因

闪退跟签名一般来说没什么直接关系,如果掉签了,那根本打不开应用。闪退一般是程序或者设备问题。 掉签的原因一般有: 1、 企业证书的装机量的问题:苹果公司创建企业开发者账号最初的目的是为了方便一些大型企业内部员工测试用的&a…

app常见的 闪退及闪退的原因

背景: 最近一直在休假,把自己在工作中梳理的点点滴滴汇总整理,这样既能及时地让自己巩固各个要点,也希望通过自己整理的东西帮助其他的同行少走弯路,避开我之前踩过的大大小小,深深浅浅的坑。 此问题经常…

记一次使用android studio分析app闪退原因的过程

闪退演示 首页和问题反馈重复切换两次就闪退 (因为是公司内部app,原有视频不做展示) app架构 app是原生android studio开发的,部分页面是h5开发的,通过WebView和addJavascriptInterface接口实现js与java的交互 页面…

app闪退分析

一、网络异常引起的 1.网络异常引起的,服务端响应不及时,可能导致闪退,检查网络配置情况 二、版本过低 1.应用版本过低,app的sdk和手机的系统不兼容,造成闪退 2.有些api在老版本中有,在新版本中没有&am…

线程池的组成及种类

文章目录 一、 线程池的组成结构二、常见的线程池种类三、线程池的工作流程四、线程池的好处五、小结 我们知道一个进程可以把任务分成多个部分交给线程执行,多线程技术减少了CPU闲置时间,增加了程序并发性。 假设创建线程的时间为t1,执行任务的时间为t2…

Java 中几种常用的线程池

概述: 在java内置API中操作线程所用到的类为Thread。创建线程一般有两种方式, 继承Thread方式实现Runnable方式,并以runnable作为target创建Thread 在Android中的耗时任务一般都需要另开线程来执行,常常需要用线程池来管理这些…

面试官:线程池有哪几种创建方式,能详细的说下么?

根据摩尔定律所说:集成电路上可容纳的晶体管数量每 18 个月翻一番,因此 CPU 上的晶体管数量会越来越多。 但随着时间的推移,集成电路上可容纳的晶体管数量已趋向饱和,摩尔定律也渐渐失效,因此多核 CPU 逐渐变为主流&a…

JAVA常用的几种线程池

1. 为什么使用线程池 诸如 Web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到达服务器,这种方式可能是通过网络协议(例如 HTTP、FTP 或 POP)、通过 …

java线程池详解及五种线程池方法详解

基础知识 Executors创建线程池 Java中创建线程池很简单,只需要调用Executors中相应的便捷方法即可,比如Executors.newFixedThreadPool(int nThreads),但是便捷不仅隐藏了复杂性,也为我们埋下了潜在的隐患(OOM&#x…

Java常见的线程池有哪些?

1、什么是线程池 java.util.concurrent.Executors提供了一个 java.util.concurrent.Executor接口的实现用于创建线程池 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 假设一个服务…

线程池的使用(7种创建方法)

目录 1. 固定数量的线程池 a. 线程池返回结果 b. ⾃定义线程池名称或优先级 2. 带缓存的线程池 3. 执⾏定时任务 a. 延迟执⾏(⼀次) b. 固定频率执⾏ c. scheduleAtFixedRate VS scheduleWithFixedDelay 4. 定时任务单线程 5. 单线程线程池 6. 根据当前CPU⽣成线程池 7. Threa…

线程池原理常用四大线程池及七大参数

目录 前言常用的四种线程池newCachedThreadPool——可缓存线程池newFixedThreadPool————指定线程数量newSingleThreadExecutor————单线程的ExecutornewScheduleThreadPool——定时线程池 线程池七大参数corePoolSize——核心线程最大数maximumPoolSize——线程池最大线…