【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;


--5

SELECT 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 = '男';

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode反转链表

题目描述 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 示例 2&#xff1a; 输入&#xff1a;head [1,2] 输出&#xff1a;[2,1] 示例 3&#…

011:软件卸载工具TotalUninstall安装教程

摘要&#xff1a;本文详细介绍软件卸载工具TotalUninstall安装流程。 一、软件介绍 TotalUninstall是一款功能强大的卸载与清理工具&#xff0c;它能够彻底卸载不需要的应用程序&#xff0c;并清除相关的注册表项、文件残留和临时文件&#xff0c;确保系统干净无残留&#xff…

美畅物联丨视频上云网关如何配置上级联网云平台

在当今的智慧交通与安防监控体系中&#xff0c;视频上云网关发挥着至关重要的作用。以美畅视频上云网关为例&#xff0c;具备强大的兼容性&#xff0c;能够对接来自不同厂家、不同型号的视频设备&#xff0c;将这些设备输出的各异视频流进行汇聚整合。在获取摄像机视频流后&…

深入理解JavaScript:两大编程思想和ES6类以及对象概念解析

文章目录 两大编程思想ES6中的类和对象 两大编程思想 面向过程 &#xff08;Procedural-Oriented Programming&#xff0c;POP&#xff09; 定义&#xff1a;面向过程的编程是一种基于过程调用的编程范式&#xff0c;它将程序看作是一系列函数或过程的集合。每个函数负责完成…

推荐一个好用的VSCode插件

还在花馒头使用 Copilot&#xff1f;别再做大冤种啦&#xff01; 现在有个更好用的AI编程助手--豆包 MarsCode&#xff01;它不仅完全免费&#xff0c;而且功能强大&#xff0c;让你在编程时得心应手&#xff01;再也不用担心高昂的订阅费用&#xff0c;省下来的馒头&#xff…

衡石分析平台系统分析人员手册-图表查询应用

查询应用​ 在业务分析过程中&#xff0c;查询明细数据有时需要满足如下场景&#xff1a; 在自助化的操作界面中用户可以自主选择查询字段及相应的筛选条件进行查询。用户通过简单的鼠标点击能够快速获得所需数据&#xff0c;并提供聚合计算等高级功能。 上述场景可以通过查…

数据结构与算法-21算法专项(中文分词)(END)

中文分词 搜索引擎是如何理解我们的搜索语句的&#xff1f; mysql中使用 【like “%中国%”】&#xff0c;这样的使用方案 缺点1&#xff1a;mysql索引会失效缺点2&#xff1a;不能模糊&#xff0c;比如我搜湖南省 就搜不到湖南相关的 1 trie树 Trie树&#xff0c;又称前缀树…

C++ 中的可调用对象

目录 一.可调用对象简介 1.什么是可调用对象&#xff1f; 2.可调用对象有什么用&#xff1f; 二.函数指针和仿函数 1.函数指针 a.函数指针的使用语法 b.函数指针的应用场景 2.仿函数 a.仿函数的基本概念 b.仿函数的优点 三.lambda表达式和function 1.lambda表达式 …

完全了解一个asp.net core MVC项目模板

当我们使用Visual Studio 2022去新建一个基于asp.net core Web项目的时候&#xff0c;一般有三种选择&#xff0c;一种是空项目&#xff0c;一种是基于MVC的项目、再有一种就是基于包含Razor Pages实例的web应用。如下图&#xff1a; 今天&#xff0c;我们打算选择基于MVC模…

《MYSQL 实战45讲》 慢查询产生的原因

一.查询长时间不返回的原因 首先要执行下show processlist来查看各个线程的状态&#xff08;是否在等待锁&#xff09; 1.DML写锁导致其他线程对改表的读取被阻塞 当一个线程正在持有t表的DML写锁时&#xff0c;其他线程查询语句就会被阻塞&#xff0c;一直等到DML写锁释放才…

RWA“两链一桥”平台在香港金融科技周亮相

第九届香港金融科技周今日开幕&#xff0c;记者在主题为Trust Bridge的论坛上获悉&#xff0c;蚂蚁数科旗下蚂蚁链在此次金融科技周首次公开了其为RWA业务打造的“两链一桥”平台&#xff0c;旨在帮助更多内地新能源资产赴港RWA&#xff0c;实现技术赋能实体资产。 “两链一桥“…

MySQL8 安装配置及卸载教程

MySQL8 安装配置及卸载教程 0 卸载 MySQL 如果之前没安过 MySQL &#xff0c;或者卸载干净了不用看这个。 如果安装中出现以下问题&#xff0c;有可能是为之前安装 MySQL 不成功&#xff0c;有残留的安装程序等文件程序或者是卸载 MySQL 不成功。 0.1 停止服务 首先进入服务…

LabVIEW航空发动机测试系统

随着航空工业的快速发展&#xff0c;发动机性能的测试与优化成为确保航空安全的关键任务。针对日益复杂的性能需求&#xff0c;开发了一套基于LabVIEW的航空发动机测试系统&#xff0c;能够进行精确的性能评估与实时数据分析。系统将软件与硬件深度结合&#xff0c;实现了自动化…

容联云容犀Copilot&Agent荣获「2024中国大模型应用之星」

近日&#xff0c;2024中国智能应用发展大会于北京举行&#xff0c;容联云凭借大模型应用——容犀Copilot&#xff06;Agent在大模型应用领域的卓越表现和标杆案例&#xff0c;荣获“2024中国大模型应用之星奖”。 中国软件网CEO、海比研究院院长曹开彬在开场致辞中明确指出&…

建筑行业知识管理:构建高效文档管理系统,提升项目协作与管控能力

各行各业都在经历数字化转型&#xff0c;建筑行业也不例外&#xff0c;正经历着前所未有的变革。随着工程项目规模的扩大和复杂性的增加&#xff0c;传统的管理方式已难以满足高效协作和精准管控的需求。因此&#xff0c;构建一个高效的在线AI知识库管理系统&#xff0c;成为提…

【STM32】SD卡

(一)常用卡的认识 在学习这个内容之前&#xff0c;作为生活小白的我对于SD卡、TF卡、SIM卡毫无了解&#xff0c;晕头转向。 SD卡&#xff1a;Secure Digital Card的英文缩写&#xff0c;直译就是“安全数字卡”。一般用于大一些的电子设备比如&#xff1a;电脑、数码相机、AV…

【视频】Camera结构详解

1、爆炸图 先看几张爆炸图: lens:镜头 VCM:音圈马达 Voice coil motor Mount :固定座 IR Filter:滤光片 Sensor:感光传感器(图像传感器) Substrate:基板 FPC:柔性印制电路板 2、镜头 镜头是仅次于Sensor芯片影响画质的第二要素,其组成是透镜结构,由几片透镜组…

使用微信免费的内容安全识别接口,UGC场景开发检测违规内容功能

大家好&#xff0c;我是小悟。 内容安全识别主要针对的是有UGC即用户生成内容的功能场景&#xff0c;通过结合内容安全的审核能力&#xff0c;应对文本、图片、音频内容类型下的敏感内容识别、涉黄内容识别、暴恐内容识别、辱骂内容识别等违规问题&#xff0c;可以提高审核效率…

UE5 射线折射

这个判断是否有标签是需要带有此标签的Actor来反射

【PnP】详细公式推导,使用DLT直接线性变换法求解相机外参

文章目录 &#x1f680;PnP1️⃣ 求解不考虑尺度的解2️⃣ 恢复解的尺度 &#x1f680;PnP PnP(Perspective-n-Point)是求解3D到2D点相机外参的算法。PnP算法有DLT直接线性变换、P3P三对点估计位姿、EPnP(Efficient PnP)、BA(Bundle Adjustment)光速法平差。这里主要讲解DLT。…