【SQL实验】表的更新和简单查询

完整代码在文章末尾

在上次实验创建的educ数据库基础上,用SQL语句为student表、course表和sc表中添加以下记录


【SQL实验】数据库、表、模式的SQL语句操作_创建一个名为educ数据库,要求如下: (下面三个表中属性的数据类型需要自己设计合适-CSDN博客在这篇博文中已经完成了数据库的创建以及educ数据库内三张表的创建,但这些表目前是空的,没有数据。

通过INSERT语句向这三张表中插入数据(可以自行减少数据量和数据内容)

INSERT INTO student (sno, sname, ssex, sage, sdept) 
VALUES  
('Y71814001', '陈靖', '男', 20, '互联网学院'),   
('Y71814003', '江宏', '男', 20, '互联网学院'),   
('Y71814006', '洪增志', '男', 19, '互联网学院'),   
('Y71814008', '程熙', '男', 18, '互联网学院'),   
('Y72014019', '李越', '男', 21, '计算机学院'),   
('Y72014020', '唐子恒', '男', 18, '计算机学院'),   
('Y72014040', '朱凯', '男', 17, '计算机学院'),   
('Y72014041', '李哲', '男', 17, '电子工程学院'),   
('Y72014050', '李原春', '女', 18, '电子工程学院'),   
('Y72014056', '周晓瑞', '女', 19, '电子工程学院');INSERT INTO course (cno, cname, cpno, ccredit) 
VALUES 
('01', '计算机导论', NULL, 2), 
('02', 'C语言', '01', 2), 
('03', '离散数学', '02', 2), 
('04', '数据结构', '02',NULL), 
('05', '数据库原理及应用', '04', 3), 
('06', '操作系统', NULL, 2);INSERT INTO sc (sno, cno, grade) 
VALUES 
('Y71814001', '01', 97), 
('Y71814003', '01', 85), 
('Y71814006', '01', 75), 
('Y71814008', '01', 80), 
('Y71814001', '02', 97), 
('Y71814003', '02', 92), 
('Y71814006', '02', 80), 
('Y71814008', '02', 87), 
('Y71814001', '03', 89);

INSERT INTO 语句添加数据

基本语法

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

(1)在student中查找“互联网学院”所有学生的姓名、学号、所在院系信息

SELECT sname, sno, sdept 
FROM student 
WHERE sdept = '互联网学院';
  • SELECT 是用于查询数据库的关键字。它用于指定要查询的列
  • FROM 指定从哪个表中检索数据
  • WHERE 子句用于指定筛选条件

运行结果:

(2)在student中找出2个姓李的学生的学号、姓名和所在院系,并按照学号大小排序

SELECT top 2 sno, sname, sdept 
FROM student 
WHERE sname LIKE '李%' 
ORDER BY sno;

 TOP 2 表示只返回查询结果的前两行数据

LIKE:用于进行模糊查询,允许使用通配符搜索

'李%':表示查找姓 "李" 的学生,% 是通配符,表示姓 "李" 后可以跟任意字符

ORDER BY:用于对查询结果进行排序(默认情况下为升序)

运行结果:

(3)在student中找出学号包含‘1914’的且年龄在19到21岁之间的女生信息

SELECT * 
FROM student 
WHERE sno LIKE '%1914%' AND sage BETWEEN 19 AND 21 AND ssex = '女';

 AND:用于组合多个条件,表示这些条件必须全部满足

BETWEEN ... AND ... 包括指定的起始和结束值【查询的结果会包含边界值】

运行结果:

(4)在student中找出互联网学院和电子工程学院年龄小于20的所有学生信息

SELECT * 
FROM student 
WHERE sdept IN ('互联网学院', '电子工程学院') AND sage < 20;

*:表示选择表中的所有列

IN:用于匹配多个值,等价于 OR 的组合

运行结果:

(5)查询Student表中互联网学院学生数量

SELECT COUNT(*) 
FROM student 
WHERE sdept = '互联网学院';

 COUNT(*):这是一个聚合函数,用于计算符合条件的记录的总数。* 表示计数所有记录,无论这些记录的列值是否为 NULL

运行结果:

(6)查询Student表中院系种类

SELECT DISTINCT sdept 
FROM student;

DISTINCT:用于去除查询结果中的重复记录,只返回唯一的值。它确保结果集中每个值都是不同的

运行结果:

(7)按照所在院系分类,统计出每个院系的学生数量

SELECT sdept, COUNT(*) AS 每个院系的学生数量 
FROM student 
GROUP BY sdept;

AS 每个院系的学生数量:为 COUNT(*) 结果指定一个别名,使得返回结果的列名更具可读性

GROUP BY:用于将结果集按指定的列分组

运行结果:

(8)按照所在院系分类,统计出除互联网学院之外的其他学院的学生数量及名称

SELECT sdept, COUNT(*) AS 每个院系的学生数量 
FROM student 
WHERE sdept != '互联网学院' 
GROUP BY sdept;

运行结果:

(9)计算‘02’号课程的平均成绩

SELECT AVG(grade) AS 平均成绩 
FROM sc 
WHERE cno = '02';

AVG(grade):聚合函数,用于计算指定列的平均值

运行结果:

(10)求各个课程号及相应的选课人数

SELECT cno, COUNT(*) AS 选课人数 
FROM sc 
GROUP BY cno;

运行结果:

(11)求每门课程的平均成绩

--从 sc 表中计算每个课程的平均成绩,并返回每个课程号及其对应的平均成绩

SELECT cno, AVG(grade) AS 平均成绩 
FROM sc 
GROUP BY cno;

运行结果:

(12)求有成绩的每个学生的平均成绩

SELECT sno, AVG(grade) AS 平均成绩 
FROM sc 
WHERE grade IS NOT NULL
GROUP BY sno;

grade IS NOT NULL:只考虑成绩不为空的记录。只会计算有成绩的学生,排除掉成绩为 NULL 的记录。 

运行结果:

(13)求平均成绩大于86分的学生学号及平均成绩

SELECT sno, AVG(grade) AS 平均成绩 
FROM sc 
GROUP BY sno 
HAVING AVG(grade) > 86;

HAVING:用于对 GROUP BY 结果进行筛选。与 WHERE 不同,HAVING 是在聚合操作完成后应用的 

运行结果:

(14)查询至少选修了2门课程(含2门)的学生的学号和平均成绩,并根据平均成绩进行降序排序

SELECT sno, AVG(grade) AS 平均成绩 
FROM sc 
GROUP BY sno 
HAVING COUNT(cno) >= 2 
ORDER BY 平均成绩 DESC;

DESC:降序排列

运行结果:

(15)查询男同学的姓名和出生年份

运行结果:

SELECT sname, (GetDate() - sage) AS 出生年份 
FROM student 
WHERE ssex = '男';

(GetDate() - sage):计算表达式。计算当前日期 (GetDate()) 和学生年龄 (sage) 之间的差值

GetDate()当前日期

SELECT sname, (YEAR(GetDate()) - sage) AS 出生年份
FROM student
WHERE ssex = '男';

 YEAR(GetDate()):提取当前日期的年份


INSERT INTO student (sno, sname, ssex, sage, sdept) 
VALUES  
('Y71814001', '陈靖', '男', 20, '互联网学院'),   
('Y71814003', '江宏', '男', 20, '互联网学院'),   
('Y71814006', '洪增志', '男', 19, '互联网学院'),   
('Y71814008', '程熙', '男', 18, '互联网学院'),   
('Y72014019', '李越', '男', 21, '计算机学院'),   
('Y72014020', '唐子恒', '男', 18, '计算机学院'),   
('Y72014040', '朱凯', '男', 17, '计算机学院'),   
('Y72014041', '李哲', '男', 17, '电子工程学院'),   
('Y72014050', '李原春', '女', 18, '电子工程学院'),   
('Y72014056', '周晓瑞', '女', 19, '电子工程学院');INSERT INTO course (cno, cname, cpno, ccredit) 
VALUES 
('01', '计算机导论', NULL, 2), 
('02', 'C语言', '01', 2), 
('03', '离散数学', '02', 2), 
('04', '数据结构', '02',NULL), 
('05', '数据库原理及应用', '04', 3), 
('06', '操作系统', NULL, 2);INSERT INTO sc (sno, cno, grade) 
VALUES 
('Y71814001', '01', 97), 
('Y71814003', '01', 85), 
('Y71814006', '01', 75), 
('Y71814008', '01', 80), 
('Y71814001', '02', 97), 
('Y71814003', '02', 92), 
('Y71814006', '02', 80), 
('Y71814008', '02', 87), 
('Y71814001', '03', 89);--1
SELECT sname, sno, sdept 
FROM student 
WHERE sdept = '互联网学院';--2
SELECT top 2 sno, sname, sdept 
FROM student 
WHERE sname LIKE '李%' 
ORDER BY sno;--3
SELECT * 
FROM student 
WHERE sno LIKE '%1914%' AND sage BETWEEN 19 AND 21 AND ssex = '女';--4
SELECT * 
FROM student 
WHERE sdept IN ('互联网学院', '电子工程学院') AND sage < 20;--5SELECT COUNT(*) 
FROM student 
WHERE sdept = '互联网学院';--6
SELECT DISTINCT sdept 
FROM student;--7
SELECT sdept, COUNT(*) AS 每个院系的学生数量 
FROM student 
GROUP BY sdept;--8
SELECT sdept, COUNT(*) AS 每个院系的学生数量 
FROM student 
WHERE sdept != '互联网学院' 
GROUP BY sdept;--9
SELECT AVG(grade) AS 平均成绩 
FROM sc 
WHERE cno = '02';--10
SELECT cno, COUNT(*) AS 选课人数 
FROM sc 
GROUP BY cno;--11
SELECT cno, AVG(grade) AS 平均成绩 
FROM sc 
GROUP BY cno;--12
SELECT sno, AVG(grade) AS 平均成绩 
FROM sc 
WHERE grade IS NOT NULL
GROUP BY sno;--13
SELECT sno, AVG(grade) AS 平均成绩 
FROM sc 
GROUP BY sno 
HAVING AVG(grade) > 86;--14
SELECT sno, AVG(grade) AS 平均成绩 
FROM sc 
GROUP BY sno 
HAVING COUNT(cno) >= 2 
ORDER BY 平均成绩 DESC;--15
SELECT sname, (GetDate() - sage) AS 出生年份 
FROM student 
WHERE ssex = '男';

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

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

相关文章

安全见闻---清风

注&#xff1a;本文章源于泷羽SEC&#xff0c;如有侵权请联系我&#xff0c;违规必删 学习请认准泷羽SEC学习视频:https://space.bilibili.com/350329294 安全见闻1 泷哥语录&#xff1a;安全领域什么都有&#xff0c;不要被表象所迷惑&#xff0c;无论技术也好还是其他方面…

[jeecg-boot] vue3 版本 nvm 下载node版本

安装pnpm 使用cnpm 进行下载依赖

JavaWeb 23.一文速通npm的配置和使用

目录 一、npm的介绍 二、npm的安装和配置 1.安装 &#xff1a; 2.配置依赖下载使用阿里镜像 3. 配置全局依赖下载后存储位置 4.升级npm版本 5.环境变量配置 三、npm常用命令 1.项目初始化 npm.init npm init -y 2.安装依赖文件 3. 升级依赖 4.卸载依赖 5.查看依赖 查看项目…

深入浅出 Vue3 nextTick

程序员节日快乐~ #1024程序员节 | 征文# nextTick 概念 当你在 Vue 的响应式数据模型中对数据进行修改时&#xff0c;这些变化并不会立即同步到 DOM 上_&#xff0c;而是会在当前的微任务队列&#xff08;microtask queue&#xff09;执行完毕后进行批量更新。这种机制被称为…

内网穿透:如何借助Cloudflare连接没有公网的电脑的远程桌面(RDP)

内网穿透&#xff1a;如何借助Cloudflare连接没有公网的电脑的远程桌面(RDP)-含详细原理配置说明介绍 前言 远程桌面协议(RDP, Remote Desktop Protocol)可用于远程桌面连接&#xff0c;Windows系统&#xff08;家庭版除外&#xff09;也是支持这种协议的&#xff0c;无需安装…

使用 NumPy 和 Matplotlib 实现交互式数据可视化

使用 NumPy 和 Matplotlib 实现交互式数据可视化 在数据分析中&#xff0c;交互式可视化可以更好地帮助我们探索和理解数据。虽然 Matplotlib 是静态绘图库&#xff0c;但结合一些技巧和 Matplotlib 的交互功能&#xff08;widgets、event handlers&#xff09;&#xff0c;我…

水轮发电机油压自动化控制系统解决方案介绍

在现代水电工程中&#xff0c;水轮机组油压自动化控制系统&#xff0c;不仅直接关系到水轮发电机组的安全稳定运行&#xff0c;还影响着整个水电站的生产效率和经济效益。 一、系统概述 国科JSF油压自动控制系统&#xff0c;适用于水轮发电机组调速器油压及主阀&#xff08;蝶…

Dongle Sentinal在Jenkins下访问不了的问题

背景&#xff1a; 工作站部署的jenkins的脚本无法正常打包&#xff0c;定位后发现是本地获取不了license&#xff0c;但是使用usb over network的远程license都能获取并正常打包 分析&#xff1a; 获取不了license的原因是本地无法识别dongle。根据提供信息&#xff0c;之前…

SAP_SD模块-销售订单创建价格扩大10倍问题分析及后续订单价格批量更新问题处理

一、业务背景 我们公司的销售订单&#xff0c;是通过第三方销售管理平台创建好订单后&#xff0c;把表头和行项目数据&#xff0c;定时推送到SAP&#xff1b;SAP通过自定义表ZZT_ORDER_HEAD存放订单表头数据&#xff0c;通过ZZT_ORDER_DETAIL存放行项目数据&#xff1b;然后再用…

探索AI人工智能机器学习:解锁未来科技的钥匙

作者简介&#xff1a;我是团团儿&#xff0c;是一名专注于云计算领域的专业创作者&#xff0c;感谢大家的关注 座右铭&#xff1a; 云端筑梦&#xff0c;数据为翼&#xff0c;探索无限可能&#xff0c;引领云计算新纪元 个人主页&#xff1a;团儿.-CSDN博客 前言&#xff1a;…

【C#】使用Visual Studio创建Windows Forms应用程序计算对角线之和

文章目录 使用Visual Studio创建Windows Forms应用程序计算对角线之和步骤 1: 创建新的Windows Forms应用程序项目步骤 2: 设计窗体步骤 3: 编写代码步骤 4: 运行程序步骤 5: 运行结果 使用Visual Studio创建Windows Forms应用程序计算对角线之和 大家好&#xff01;今天&…

Spring Boot:植物健康的智能守护者

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

【网络原理】TCP/IP五层网络模型之网络层-----IP协议详解,建议收藏!!

&#x1f490;个人主页&#xff1a;初晴~ &#x1f4da;相关专栏&#xff1a;计算机网络那些事 前几篇文章中我们深入研究了TCP协议&#xff0c;因为TCP协议在我们日常开发中的使用频率非常高。而相比之下&#xff0c;IP协议与我们普通程序员关系就没那么近了。一般是专门开发…

数字 图像处理算法的形式

一 基本功能形式 按图像处理的输出形式&#xff0c;图像处理的基本功能可分为三种形式。 1&#xff09;单幅图像 单幅图像 2&#xff09;多幅图像 单幅图像 3&#xff09;单&#xff08;或多&#xff09;幅图像 数字或符号等 二 几种具体算法形式 1.局部处理邻域对于任一…

libevent源码剖析-event

1 简介 本文来重点介绍下libevent中的event事件&#xff0c;在类unix系统中编写网络程序时&#xff0c;我们经常需要处理3类事件-IO事件&signal事件&timer事件&#xff0c;libevent通过reactor来注册&调度&处理IO事件&#xff0c;并且也将signal和timer事件借助…

2024年10月21日计算机网络,乌蒙第一部分

【互联网数据传输原理 &#xff5c;OSI七层网络参考模型】 https://www.bilibili.com/video/BV1EU4y1v7ju/?share_sourcecopy_web&vd_source476fcb3b552dae37b7e82015a682a972 mac地址相当于是名字&#xff0c;ip地址相当于是住址&#xff0c;端口相当于是发送的东西拿什…

SPI通信(W25Q64)

目录 一.前言 1.SPI的简介 2.SPI的应用 3. SPI的硬件电路 4. SPI硬件电路设计的核心 5. SPI时序基本单元 二. W25Q64简介 1. 芯片简介 2. &#xff08;非&#xff09;易失性存储器 3. 引脚定义 4. W25Q64框图 5. Flash操作的注意事项 三. SPI读写W25Q64&#xff08;使用软件…

一文教会你如何使用 iLogtail SPL 处理日志

作者&#xff1a;阿柄 随着流式处理的发展&#xff0c;出现了越来越多的工具和语言&#xff0c;使得数据处理变得更加高效、灵活和易用。在此背景下&#xff0c;SLS 推出了 SPL(SLS Processing Language) 语法&#xff0c;以此统一查询、端上处理、数据加工等的语法&#xff0…

vue3使用i18n做国际化多语言,实现常量跟随语言切换翻译

因为我有一个常量的配置文件在项目中&#xff0c;而且有中文内容&#xff0c;我想在切换语言的时候&#xff0c;跟着这个翻译也实时切换&#xff0c;就可以使用computed计算属性实现。 把name改成下面的样子&#xff1a; name: computed(() > t(pad.regularMode)), 就可以…

Springboot配置方式和优先级

Springboot配置方式和优先级 调试思路key的获取过程application.properties优先级总结 在阅读开源项目时看到一种不太常见的属性配置方式&#xff0c;在项目根路径定义配置文件。并且提到下面的顺序&#xff0c;验证并看一下源码实现。 # spring boot支持外部application.yml …