文理学院数据库技术应用实验报告9

news2024/11/22 13:39:26

文理学院数据库技术应用实验报告9

实验名称数据库子查询实验日期2024年11月15日
课程名称数据库技术应用实验项目数据库子查询的使用

一、实验目的

要求,通过sql脚本导入数据库,并在stuinfo数据库中对数据进行查询。使用select子查询进行查询操作。

stuinfo数据库脚本如下:

create database stuinfo;
USE stuinfo;
CREATE TABLE student (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
sNo CHAR(10) NOT NULL,
sName VARCHAR(20) NOT NULL,
sex CHAR(2),
birthday DATE,
deptName VARCHAR(30),
remark VARCHAR(80)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE course (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
cNo CHAR(5) NOT NULL,
cName VARCHAR(30) NOT NULL,
credit TINYINT UNSIGNED,
remark VARCHAR(100)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


CREATE TABLE score (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
sId INT UNSIGNED NOT NULL,
cId INT UNSIGNED NOT NULL,
grade TINYINT UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT INTO student (id, sNo, sName, sex, birthday, deptName, remark) VALUES
(1, '1308013101', '陈斌', '男', '1993-03-20', '软件131', NULL),
(2, '1308013102', '张洁', '女', '1996-02-08', '软件131', NULL),
(3, '1308013103', '郑先超', '男', '1994-04-25', '软件131', NULL),
(4, '1308013104', '徐孝兵', '男', '1994-08-06', '软件131', NULL),
(5, '1308013105', '王群', '女', '1995-03-27', '软件131', NULL),
(6, '1309122501', '刘威', '男', '1994-07-13', '网络131', NULL),
(7, '1309122502', '沈雁斌', '男', '1994-05-28', '网络131', NULL),
(8, '1309122503', '杨群', '女', '1995-10-18', '网络131', NULL),
(9, '1309122504', '蒋维维', '男', '1994-10-19', '网络131', NULL),
(10, '1309122505', '杨璐', '女', '1995-09-26', '网络131', NULL),
(11, '1312054901', '王林林', '男', '1994-04-16', '机电131', NULL),
(12, '1312054902', '杨一超', '男', '1994-08-27', '机电131', NULL),
(13, '1312054903', '张伟', '男', '1995-01-03', '机电131', NULL),
(14, '1312054904', '田翠萍', '女', '1994-10-20', '机电131', NULL),
(15, '1312054905', '周伟', '男', '1995-09-10', '机电131', NULL);

INSERT INTO course (id, cNo, cName, credit, remark) VALUES
(1, '01001', 'C语言程序设计', 5, '计算机类专业课程'),
(2, '01002', '数据结构', 4, '计算机类专业课程'),
(3, '01003', 'Java程序设计', 4, '计算机类专业课程'),
(4, '02001', '网络基础', 3, '计算机类专业课程'),
(5, '02002', '数据库原理及应用', 4, '计算机类专业课程'),
(6, '02003', '操作系统', 4, '计算机类专业课程'),
(7, '09001', '机械设计基础', 5, NULL),
(8, '09002', '机械制造基础', 4, NULL),
(9, '09003', '机械制图', 4, NULL);


INSERT INTO score (id, sId, cId, grade) VALUES
(1, 1, 1, 72),
(2, 1, 2, 56),
(3, 1, 3, 77),
(4, 2, 1, 85),
(5, 2, 2, 73),
(6, 2, 3, 90),
(7, 3, 1, 79),
(8, 4, 1, 82),
(9, 5, 1, 63),
(10, 6, 4, 84),
(11, 6, 5, 92),
(12, 6, 6, 71),
(13, 11, 7, 87),
(14, 11, 8, 90),
(15, 11, 9, 95);

二、实验原理

Select子查询

三、实验设备、材料

mysqlNavicat软件

四、实验步骤

1、查询课程编号(cnocourse表),课程名称(cnamecourse表)及对应的成绩(gradescore表)

SELECT * FROM course;
SELECT * FROM score;
SELECT * FROM student;

SELECT 
    course.cNo, 
    course.cName, 
    score.grade
FROM 
    course
JOIN 
    score ON course.id = score.id;

2、查询学生姓名(snamestudent表)、课程名称(cnamecourse表)及对应的成绩(gradescore表);

SELECT * FROM course;
SELECT * FROM score;
SELECT * FROM student;

SELECT 
    student.sName, 
    course.cName, 
    score.grade
FROM 
    score
JOIN 
    student ON score.id = student.id
JOIN 
    course ON score.id = course.id;

3、查询选修了’计算机类专业课程(remark)’学生姓名(cName),学生编号,课程名称及对应成绩

SELECT * FROM course;
SELECT * FROM score;
SELECT * FROM student;

SELECT 
    st.sName,
    st.sNo,
    co.cName,
    sc.grade
FROM 
    score sc
JOIN 
    student st ON st.id = sc.sId
JOIN 
    course co ON co.id = sc.cId
WHERE 
    co.remark = '计算机类专业课程';

4、查询在1994年后出生的学生姓名,出生日期、及成绩;

SELECT * FROM course;
SELECT * FROM score;
SELECT * FROM student;

SELECT student.sName,student.birthday,score.grade
FROM student JOIN score ON student.id=score.sId
WHERE YEAR(student.birthday) >'1994';

5、查询网络131班学生学号,姓名,班级 ,课程id和成绩;

SELECT student.sNo,student.sName,student.deptName
FROM score JOIN student ON score.sId = student.id
WHERE student.deptName = '网络131';

子查询1:

1、查询成绩最低分及对应学生姓名和课程名称

SELECT student.sName,course.cName,score.grade
FROM score JOIN student ON student.id=score.sId
JOIN course ON course.id=score.sId
WHERE score.grade=(SELECT min(grade)FROM score);

2、查询与学号sno=1308013101的同学,在同一个班级的学生名单。

SELECT * FROM student
WHERE deptname = (SELECT deptname FROM student WHERE sno = '1308013101');

3、查询选修了01001课程且成绩高于该课程平均分的信息:学生学号,姓名,班级,课程编号、名称和成绩。

SELECT * FROM course;
SELECT * FROM score;
SELECT * FROM student;

SELECT 
    student.sNo,
    student.sName,
    student.deptName,
    course.cNo,
    course.cName,
    score.grade
FROM 
    score
JOIN 
    student ON student.id=score.sId 
JOIN 
    course ON course.id=score.cId
WHERE 
    course.cNo = '01001' 
    AND score.grade > (SELECT AVG(grade) FROM score WHERE cNo = '01001');

子查询2:

1、查询选修了课程编号con=01001的学生名单。

SELECT * FROM student WHERE id in(
SELECT sid FROM score JOIN course
on cid=course.id WHERE cno='01001')

2、查询学号=1308013101 的学生选修的课程信息

SELECT 
    course.*
FROM 
    course
JOIN 
    score ON course.id = score.cId
JOIN 
    student ON score.sId = student.id
WHERE 
    student.sNo = '1308013101';

3、查询没有选修课的女同学名单。

SELECT * FROM student WHERE sex='女' AND
id not in (SELECT sid FROM score);

4、查询有选修课的女同学名单

SELECT * FROM student WHERE sex='女' AND
EXISTS ( SELECT * FROM score WHERE student.id=sid);

5、查询比1308013101同学任何科目分低的全部学生、课程、成绩信息。

SELECT DISTINCT 
    s2.sName AS studentName,
    c2.cName AS courseName,
    sc2.grade AS Grade
FROM 
    student s2
JOIN 
    score sc2 ON s2.id = sc2.sId
JOIN 
    course c2 ON sc2.cId = c2.id
WHERE 
    EXISTS (
        SELECT 1 
        FROM score sc1 
        JOIN student s1 ON sc1.sId = s1.id
        WHERE s1.sNo = '1308013101'
          AND sc1.cId = sc2.cId
          AND sc1.grade > sc2.grade
    );

6、查询比1308013101所有成绩低的全部学生、课程、成绩信息。

SELECT 
    s.sName AS StudentName, 
    c.cName AS CourseName, 
    sc.grade AS Grade
FROM 
    student s
JOIN 
    score sc ON s.id = sc.sId 
JOIN 
    course c ON sc.cId = c.id
WHERE 
    s.sNo <> '1308013101'
    AND NOT EXISTS (
        SELECT 1
        FROM score sc_A
        WHERE sc_A.sId = (SELECT id FROM student WHERE sNo = '1308013101')
          AND sc_A.cId = sc.cId
          AND sc_A.grade <= sc.grade
    );

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2245348.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

端到端的专线管理与运维:实时掌握专线的运行状态

在当今高度信息化的时代&#xff0c;专线服务已成为企业数据传输的重要组成部分。为了确保专线服务的高效、稳定运行&#xff0c;我们采用了先进的端到端管理模式&#xff0c;对专线的运行状态和质量进行全面监控。本文将从专线管理的必要性、端到端管理模式的优势、实施步骤以…

SpringBoot(8)-任务

目录 一、异步任务 二、定时任务 三、邮件任务 一、异步任务 使用场景&#xff1a;后端发送邮件需要时间&#xff0c;前端若响应不动会导致体验感不佳&#xff0c;一般会采用多线程的方式去处理这些任务&#xff0c;但每次都需要自己去手动编写多线程来实现 1、编写servic…

PostgreSQL常用字符串函数与示例说明

文章目录 coalesce字符串位置(position strpos)字符串长度与大小写转换去掉空格(trim ltrim rtrim)字符串连接(concat)字符串替换简单替换(replace)替换指定位置长度(overlay)正则替换(regexp_replace) 字符串匹配字符串拆分split_part(拆分数组取指定位置的值)string_to_array…

深入剖析Java内存管理:机制、优化与最佳实践

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;Java &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 深入剖析Java内存管理&#xff1a;机制、优化与最佳实践 一、Java内存模型概述 1. Java内存模型的定义与作…

【论文速读】| RobustKV:通过键值对驱逐防御大语言模型免受越狱攻击

基本信息 原文标题&#xff1a;ROBUSTKV: DEFENDING LARGE LANGUAGE MODELS AGAINST JAILBREAK ATTACKS VIA KV EVICTION 原文作者&#xff1a;Tanqiu Jiang, Zian Wang, Jiacheng Liang, Changjiang Li, Yuhui Wang, Ting Wang 作者单位&#xff1a;Stony Brook University…

css使用弹性盒,让每个子元素平均等分父元素的4/1大小

css使用弹性盒&#xff0c;让每个子元素平均等分父元素的4/1大小 原本&#xff1a; ul {padding: 0;width: 100%;background-color: rgb(74, 80, 62);display: flex;justify-content: space-between;flex-wrap: wrap;li {/* 每个占4/1 */overflow: hidden;background-color: r…

图像处理 之 凸包和最小外围轮廓生成

“ 最小包围轮廓之美” 一起来欣赏图形之美~ 1.原始图片 男人牵着机器狗 2.轮廓提取 轮廓提取 3.最小包围轮廓 最小包围轮廓 4.凸包 凸包 5.凸包和最小包围轮廓的合照 凸包和最小包围轮廓的合照 上述图片中凸包、最小外围轮廓效果为作者实现算法生成。 图形几何之美系列&#…

徒手从零搭建一套ELK日志平台

徒手从零搭建一套ELK日志平台 日志分析的概述日志分析的作用主要收集工具集中式日志系统主要特点采集日志分类ELK概述初级版ELK终极版ELK高级版ELKELK收集日志的两种形式 搭建ELK平台Logstash工作原理Logstash核心概念环境准备安装部署docker添加镜像加速器安装部署Elasticsear…

【论文阅读】Poison Forensics: Traceback of Data Poisoning Attacks in Neural Networks

Poison Forensics: Traceback of Data Poisoning Attacks in Neural Networks 核心原理前提条件方法第一个问题第二个问题 核心原理 有毒样本会使模型更接近参数空间中的最佳位置&#xff0c;良性样本会使该模型向其随机初始化状态移动 前提条件 最重要的&#xff1a; 可以…

递归算法专题一>反转链表

题目&#xff1a; 解析&#xff1a; 也可以把链表看作一棵树&#xff0c;后续遍历这棵树然后和上图一样&#xff0c;改变指针即可 代码&#xff1a; public ListNode reverseList(ListNode head) {if(head null || head.next null) return head;ListNode newHead revers…

拼音。。。。。。。。。。

拼音。文心一言、文心大模型3.5&#xff0c;竟然说错了&#xff0c;如下图。所以&#xff0c;以后都不想在文心一言搜拼音了。。以后搜拼音&#xff0c;还是在百度一下直接搜&#xff0c;搜到的顶头第一条也是AI智能回答&#xff0c;可能比文心一言更加好更加准 正确的说法是&…

K8S资源限制之LimitRange

LimitRange介绍 LimitRange也是一种资源&#xff0c;在名称空间内有效&#xff1b;限制同一个名称空间下pod容器的申请资源的最大值&#xff0c;最小值pod的resources中requests和limits必须在这个范围内&#xff0c;否则pod无法创建。当然pod也可以不使用resources进行创建ty…

【爬虫】Firecrawl对京东热卖网信息爬取(仅供学习)

项目地址 GitHub - mendableai/firecrawl: &#x1f525; Turn entire websites into LLM-ready markdown or structured data. Scrape, crawl and extract with a single API. Firecrawl更多是使用在LLM大模型知识库的构建&#xff0c;是大模型数据准备中的一环&#xff08;在…

JavaParser如何获取方法的返回类型

使用JavaParser 如何获取一个Java类中的某个方法的返回类型呢&#xff1f; 假如有一个如下的简单的Java 类&#xff1a; /*** Copyright (C) Oscar Chen(XM):* * Date: 2024-11-21* Author: XM*/ package com.osxm.ai.sdlc.codeparse.codesample;public class MyClass {public…

25.UE5时间膨胀,慢动作,切换地图,刷BOSS

2-27 时间膨胀、慢动作、切换地图、刷BOSS_哔哩哔哩_bilibili 目录 1.刷新BOSS逻辑 2.时间膨胀实现慢动作 3.胜利画面&#xff0c;下一关 3.1胜利画面UI 3.2第一关、第二关游戏模式 3.3下一关按钮事件的绑定 1.刷新BOSS逻辑 实现当场上的怪物都死亡后&#xff0c;进行刷…

【大语言模型】ACL2024论文-19 SportsMetrics: 融合文本和数值数据以理解大型语言模型中的信息融合

【大语言模型】ACL2024论文-19 SportsMetrics: 融合文本和数值数据以理解大型语言模型中的信息融合 https://arxiv.org/pdf/2402.10979 目录 文章目录 【大语言模型】ACL2024论文-19 SportsMetrics: 融合文本和数值数据以理解大型语言模型中的信息融合目录摘要研究背景问题与挑…

数字IC后端设计实现之Innovus place报错案例 (IMPSP-9099,9100三种解决方案)

最近吾爱IC社区星球会员问到跑place_opt_design时会报错退出的情况。小编今天把这个错误解决办法分享给大家。主要分享三个方法&#xff0c;大家可以根据自己的实际情况来选择。 数字IC后端低功耗设计实现案例分享(3个power domain&#xff0c;2个voltage domain) **ERROR: (I…

弧形导轨有什么优势及局限?

弧形导轨的设计允许负载沿着特定的曲线路径移动&#xff0c;这在许多自动化设备中是非常必要的。它具有高强度、刚性和稳定性&#xff0c;能够承受较大的负载和冲击力&#xff0c;并且在高速运动下仍能保持稳定&#xff0c;这使得弧形导轨在需要处理重型负载或进行高速运动的场…

【天壤智能-注册安全分析报告-无验证纯IP限制存在误拦截隐患】

前言 由于网站注册入口容易被机器执行自动化程序攻击&#xff0c;存在如下风险&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露&#xff0c;不符合国家等级保护的要求。短信盗刷带来的拒绝服务风险 &#xff0c;造成用户无法登陆、注册&#xff0c;大量收到垃圾短信的…

Linux13 传输层UDP和TCP协议

传输层UDP和TCP协议 1. UDP 协议1.1 UDP协议端格式1.2 UDP特点1.3 UDP 的缓冲区1.4 UDP数据长度1.5 基于 UDP 的应用层协议 2. TCP 协议TCP协议端格式确认应答序号和确认序号位通信机制&#xff1a; 超时重传连接管理三次握手 - 建立连接三次握手与TCPSocket问题 - 为什么要有三…