当前位置: 首页 > news >正文

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

相关文章:

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

完整代码在文章末尾 在上次实验创建的educ数据库基础上&#xff0c;用SQL语句为student表、course表和sc表中添加以下记录 【SQL实验】数据库、表、模式的SQL语句操作_创建一个名为educ数据库,要求如下: (下面三个表中属性的数据类型需要自己设计合适-CSDN博客在这篇博文中已经…...

【C++】 string的了解及使用

标准库中的string类 在使用string类时&#xff0c;必须包含#include头文件以及using namespace std; string类的常用接口说明 C中string为我们提供了丰富的接口来供我们使用 – string接口文档 这里我们只介绍一些常见的接口 string类对象的常见构造 #include <iostrea…...

【K8S】kubernetes-dashboard.yaml

https://raw.githubusercontent.com/kubernetes/dashboard/v3.0.0-alpha0/charts/kubernetes-dashboard.yaml 以下链接的内容&#xff1a; 由于国内访问不了&#xff0c;找到一些方法下载了这个文件内容&#xff0c; 部署是mages 对象的镜像 WEB docker.io/kubernetesui/dash…...

远程root用户访问服务器中的MySQL8

一、Ubuntu下的MySQL8安装 在Ubuntu系统中安装MySQL 8.0可以通过以下步骤进行1. 更新包管理工具的仓库列表&#xff1a; sudo apt update 2. 安装MySQL 8.0&#xff0c;root用户默认没有密码&#xff1a; sudo apt install mysql-server sudo apt install mysql-client 【…...

解释一下 Java 中的静态变量(Static Variable)和静态方法(Static Method)?

今天来和大家深入探讨一下 Java 中的静态变量和静态方法&#xff0c;并通过一些具体的例子来理解它们在实际开发中的应用。 静态变量&#xff08;Static Variable&#xff09; 静态变量&#xff0c;也称为类变量&#xff0c;是在类的层次上共享的变量。这意味着无论创建了多少…...

【Linux】————磁盘与文件系统

作者主页&#xff1a; 作者主页 本篇博客专栏&#xff1a;Linux 创作时间 &#xff1a;2024年10月17日 一、磁盘的物理结构 磁盘的物理结构如图所示&#xff1a; 其中具体的物理存储结构如下&#xff1a; 磁盘中存储的基本单位为扇区&#xff0c;一个扇区的大小一般为512字…...

平衡控制——直立环——速度环

目录 平衡控制原理 平衡控制模型 平衡控制中基于模型设计与自动代码生成技术 速度环应用原理 速度控制模型 平衡控制原理 下图是一个单摆模型&#xff0c;对其进行受力分析如图。 在重力作用下,单摆受到和角度成正比,运动方向相反的回复力。而且在空气中运动的单摆,由于受…...

面试简要介绍hashMap

jdk8之前&#xff0c;hashmap采用的数据结构是数组链表&#xff0c;jdk8之后采用的数据结构是数组链表/红黑树。hashmap的数据以键值对的形式存在&#xff0c;如果两个元素的hash值相同&#xff0c;就会发生hash冲突&#xff0c;被放到同一个链表上--->如何解决hash冲突---&…...

HTTPS如何实现加密以及SSL/TSL加密的详细过程

通过将服务器从 HTTP 提升到 HTTPS 加密&#xff0c;数据在客户端和服务器之间的传输过程中的确得到了安全保护。以下是这种实现加密的机制以及客户端需要做的事情的详细说明。 为什么这样就实现了加密 SSL/TLS 协议&#xff1a; HTTPS 使用 SSL&#xff08;安全套接层&#x…...

Golang | Leetcode Golang题解之第516题最长回文子序列

题目&#xff1a; 题解&#xff1a; func longestPalindromeSubseq(s string) int {n : len(s)dp : make([][]int, n)for i : range dp {dp[i] make([]int, n)}for i : n - 1; i > 0; i-- {dp[i][i] 1for j : i 1; j < n; j {if s[i] s[j] {dp[i][j] dp[i1][j-1] …...

(done) 什么 RPC 协议? remote procedure call 远程调用协议

来源&#xff1a;https://www.bilibili.com/video/BV1Qv4y127B4/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 可以理解为&#xff0c;调用远程服务器上的一个方法/函数/服务的方式&#xff0c;同时隐藏网络细节 一个 python3 …...

PCL 基于Ransac提取误匹配点对

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 基于RANSAC的误匹配点对提出函数 2.1.2 点云可视化函数 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接: PCL点云算法与项目实战案例汇总(长期更新) 一、…...

光速写作 2.0.5 | 专注AI写作,海量素材库

光速写作是一款专为解决写作难题设计的应用。它具有以下功能&#xff1a;- 「AI写作」&#xff1a;帮助分析题目、整理写作思路&#xff0c;合成作文&#xff0c;写出好文章。- 「作文批改」&#xff1a;拍照上传作文后&#xff0c;进行全文点评和分句点评&#xff0c;并进行全…...

【已解决,含泪总结】非root权限在服务器上配置python和torch环境,代码最终成功训练(一)

配置Python环境 没有root权限服务器上有多个python环境但没有自己想要的怎么办 之前跑别的实验的时候改过指定的python3.7版本&#xff0c;但是居然我过了一段时间之后&#xff0c;再次打开&#xff0c;python版本居然又回到2.7&#xff08;服务器/usr/下的默认python版本&am…...

公安基础知识-通哥

公安机关办理行政案件能力 考点一 治安案件追溯失效 6个月 派出所只有警告和500块以下罚款 公安是行政机关 1、治安小事、刑事案件大事 2、殴打他人-轻伤-&#xff08;刑事案件&#xff09;、轻微伤&#xff08;治安案件&#xff09; 3、《治安处罚法》《刑法》 4、只能构…...

Python画图|极坐标下的散点图动态输出

【1】引言 前序已经学习过散点图输出和极坐标图输出&#xff0c;文章链接包括但不限于下述部分&#xff1a; python画散点图|scatter()函数小试牛刀&#xff08;入门级教程&#xff09;_python ax.scatter-CSDN博客 python画图|极坐标中画散点图_极坐标上的散点图-CSDN博客 …...

揭开MySQL并发中的“死锁”之谜:从原理到解决方案的深度解析

目录 1. 环境准备&#xff1a;创建“账户”和“标记”表1.1 创建 dl_account_t 表1.2 创建 dl_mark_t 表 2. 死锁详解2.1 死锁情景一&#xff1a;相反加锁顺序导致的死锁2.2 死锁情景二&#xff1a;唯一索引冲突引发的死锁 3. 事务隔离级别与锁机制4. 预防与解决死锁的方法4.1 …...

【论文阅读】Reliable, Adaptable, and Attributable Language Models with Retrieval

文章目录 OverviewCurrent Retrieval-Augmented LMsArchitectureTraining Limitations & Future Work Overview Parametic language models的缺点&#xff1a; 事实性错误的普遍存在验证的难度&#xff08;可溯源性差&#xff09;难以在有顾虑的情况下排除某些序列适应调整…...

A-Frame负责人Diego Marcos分享WebXR与开源AI的未来

一、引言 在最近的一次播客访谈中,《虚拟现实之声》的主持人Kent Bye与A-Frame的创始人Diego Marcos展开了一场关于WebXR技术及其未来发展潜力的对话。Diego不仅是A-Frame的创始人,同时也是WebXR规范的原创者之一。本次访谈不仅回顾了WebXR的发展历程,还探讨了开源AI技术在…...

【STM32-HAL库】火焰传感器(STM32F407ZGT6)(附带工程下载链接)

一、TEMT6000光照强度传感器 火焰传感器是一种能够检测火焰的传感器&#xff0c;它通过检测空气中的特定波长的光线来检测火焰的存在&#xff0c;并输出一个信号来通知系统发生了火灾 工作原理 火焰传感器的工作原理基于光学检测技术。当火焰燃烧时&#xff0c;会产生一些特…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...