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

数据库系统概论|第三章:关系数据库标准语言SQL—课程笔记6

前言

经过前面几篇文章的介绍,已经完成了对于数据查询操作的介绍,接下来,本篇文章将介绍数据更新这一板块,包括插入数据、修改数据以及删除数据三种操作方法。

注:本文中所涉及的数据库前文中已经介绍(指路:数据库系统概论|第三章:关系数据库标准语言SQL—课程笔记1)

一、插入数据

数据插入的语法较为简单,主要运用INSERT语句,INTO提示数据将插入的表,VALUES后面接具体要插入的值。

INSERT
INTO Student (Sno, Sname, Ssex, Sdept, Sage)
VALUES ('201215128', '陈冬', '男', 'IS', 18)

上述代码的含义为一个新学生元组(学号:201215128; 姓名:陈冬;性别:男; 所在系:IS; 年龄:18岁)插入到Student表中。

二、修改数据

在数据修改过程中,核心语句为UPDATE语句,在数据修改过程中,可以仅仅修改一个元组的值,也可以同时修改多个元组的值。

UPDATE Student 
SET Sage=22
WHERE Sno='201215121' 

上述代码的含义为更改学生表中,学号为201215121的学生年龄改为22。

UPDATE Student 
SET Sage= Sage+1

上述代码的含义为将学生表中所有学生的年龄均加1。【此处没有WHERE子句,即是更新所有元组】

SELECT * 
FROM (SELECT '李勇' AS Sname, 'MA' AS SdeptUNION SELECT '刘晨', 'IS') AS TSELECT *
FROM Student ,(SELECT '李勇' AS Sname, 'MA' AS SdeptUNION SELECT '刘晨', 'IS') AS T
WHERE Student.Sname = T.SnameUPDATE Student 
SET Sdept = T.Sdept
FROM (SELECT '李勇' AS Sname, 'MA' AS SdeptUNION SELECT '刘晨', 'IS') AS T
WHERE Student.Sname = T.Sname

上面三段代码层层递进,展示了包含子查询的数据更新语句:

第一段利用集合的并构建了一个临时表T

第二段利用姓名相同,连接了临时表T以及原有表Student

第三段真正展示了数据更新,成功将李勇与刘晨的专业进行更新与修改

三、删除数据

 在数据删除的过程中,核心语句为DELETE,同时要指明所删除数据表为哪一个

DELETE
FROM Student
WHERE Sno= '201215128'

上述代码较为简单,代表删除学生表中,学号为‘201215128’的学生的全部数据。

SELECT * 
FROM Student 
WHERE NOT EXISTS(SELECT * FROM SC WHERE Student.Sno = SC.Sno)DELETE 
FROM Student 
WHERE NOT EXISTS(SELECT * FROM SC WHERE Student.Sno = SC.Sno)

上述两端代码展示了带有子查询的数据删除语句:

第一段利用NOT EXISTS子句选出了那些并没有选课的学生(也就是在SC表中没有的学生)

第二段则是利用这一子查询,删除了Student表中,那些没有选课的学生的记录

http://www.xdnf.cn/news/199063.html

相关文章:

  • 计算机基础—(九道题)
  • 云上玩转DeepSeek系列之六:DeepSeek云端加速版发布,具备超高推理性能
  • AI图片跳舞生成视频,animate X本地部署。
  • 2025系统架构师---论企业集成平台的技术与应用
  • 永磁同步电机控制算法-反馈线性化滑模控制
  • Telephony VoiceMail
  • 数据库基础与核心操作:从概念到实战的全面解析
  • 嵌入式多功能浏览器系统设计详解
  • 使用双端队列deque模拟栈stack
  • 获得ecovadis徽章资格标准是什么?ecovadis评估失败的风险
  • sortablejs + antd-menu 拖拽出重复菜单
  • 【个人理解】MCP server和client二者各自的角色以及发挥的作用
  • 【TS入门笔记4---装饰器】
  • DPanel 一款更适合国人的 Docker 管理工具
  • linux 使用nginx部署vue、react项目
  • 结合大语言模型的机械臂抓取操作学习
  • Python 中支持函数式编程的 operator 与 functools 包
  • 第一节:Linux系统简介
  • Android显示学习笔记本
  • 打造即插即用的企业级云原生平台——KubeSphere 4.1 扩展组件在生产环境的价值全解
  • 解决跨域实现方案
  • 用vite动态导入vue的路由配置
  • 本地部署Qwen-7B实战 vLLM加速推理
  • 网络协议之为什么要分层
  • 论文分享 | 基于区块链和签名的去中心化跨域认证方案
  • 受限字符+环境变量RCE
  • vue3:v-model的原理示例
  • python练习:求数字的阶乘
  • 思科bsp社招面试
  • JavaScript 与 Java 学习笔记