数据更新-插入元组(VALUES)、修改属性(SET)、删除元组(DELETE)

news2024/11/26 13:39:48

一、插入元组

1、插入单个元组(使用的是VALUES子句)

(1)语句格式

INSERT INTO <表名> 【(<属性名1【,<属性名2>,...】)】

VALUES (<常量1>【,<常量2>,...】)

(2)分析

常量值必须与相应的属性名值域相同个数相同

元组的某属性没在INTO后出现,则这些属性上的值会取控制NULL

INTO中没有指明任何属性,则VALUES子句中新插入的元组在每个属性上必须有值,且常量值的顺序要与表定义中属性的顺序一致

(3)举例:将一个新学生记录,插入学生关系表s中

方式一:

insert into s (sNo,sN,sex,sB,sD)
values('202218014036','贾宝玉','男','2000-7-13','机械学院');

方式二(省略属性列):

insert into s 
values('202218014037','林黛玉','女','2000-9-13','机械学院');

注意:省略属性列插入新元组,其常量值数目其常量值位置必须与表的属性列的数目以及定义表时属性列的位置相对应

2、插入多个元组(使用插入子查询的方式)

(1)语句格式:

INSERT  INTO <表名> 【(<属性名1>【,<属性名2>...】)】

  子查询

(2)举例:插入“数计学院”学生选修“计算机组成原理”课程的选课记录

insert into sC(sNo,cNo)
  select sNo,cNo
  from s,c
  where sD='数计学院' and cN='大数据分析';

3、小结

无论是使用VALUES子句插入一个元组,还是使用嵌入子查询的方式插入多个元组,都必须保证常量与属性的数目对应位置对应数据类型对应

二、修改属性值

1、语句格式:

UPDATE <表名>

SET <属性名1>=<表达式1>【,<属性名2>=<表达式2>,...】

【WHERE<元组选择条件>】

2、注意:

(1)如果省略了WHERE子句,就要对对应表中所有元组的相关属性进行修改

(2)UPDATE子句后面只能跟一个表名

3、举例1:修改学生表s中“林黛玉”的所在院系为“数计学院”

update s
set sD='数计学院'
where sN='林黛玉';

4、举例2:将学号为‘202218014030’的学生所学“高分子材料”的成绩改为95.0

update sC
set grade=95
where sNo='202218014030' and cNo in(
select cNo
from c
where cN='高分子材料'
);

5、举例3:若课程成绩低于该课平均成绩,则将成绩提高5%

update sC 
set grade=1.005*grade
where grade<(
select avg(grade)
from sC sC1
where sC1.cNo=sC.cNo
)

注意:小数溢出会四舍五入,整数溢出会出错

三、删除元组

1、语句格式:

DELETE

FROM <表名>

【WHERE <元组选择条件>】

2、注意:

(1)没有WHERE子句执行SELECT子句将会删除指定表中所有的元组,单不会删除表,表的定义依旧存在于数据库的数据字典中,只不过执行了此条DELETE语句后的表会变成空表,即没有一个元组的表

(2)DELETE语句中的FROM子句后面只能有一个表名

3、举例1:删除所有成绩为空值的选课记录

delete
from sC
where grade is null;

4、举例2:删除成绩低于所有课程平均成绩的选课元组

delete
from sC
where grade<(
select avg(grade)
from sC
);

四、更新操作的完整性检查

1、发生外键冲突的三种情况

(1)在参照表s中插入外键值不在其被参照表中的主键值范围内的元组

(2)修改被参照表已经被对其应外键使用的元组的主键值

(2)删除被参照表中已被其对应外键使用的元组

2、跟新操作不能满足参照完整性时,DBMS采用的三种策略

(1)拒绝执行(NO ACTION)(默认策略)

(2)产生级联操作(CASCADE)

(3)设置为空值(SET NULL)

3、解决外键冲突的方式:在定义外键表时说明参照完整性的违约处理策略

create table sC(
   sNo char(12),
   cNo char (3),
   grade dec(3,1),
   primary key(sNo,cNo), -- sNo和cNo都是主键、也是主属性
   foreign key(cNo)references c(cNo)
   on update cascade  -- 当修改表s的sNo时,自动级联修改sC表中相应元组的sNo
   on delete no action, -- 当删除表s中已被外键cNo绑定的元组时,拒绝执行
   foreign key(sNo)references s(sNo)
   on update cascade
   on delete no action,
   check(grade between 0 and 100)
);

五、总结

1、数据更新不对关系表的模式结构进行改变

2、数据更新操作往往是在查询的基础上进行的,在更新操作语句中可能会嵌套子查询

3、数据更新操作时要考虑数据库上所定义的各类完整性约束,以及DBMS所采用的执行策略

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

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

相关文章

CATO原理中的数学与魔术(十四)——流程设计思路与升华

早点关注我&#xff0c;精彩不错过&#xff01; 系列终于进入尾声&#xff01;前面13篇文章已经穷尽搜刮掉我目力所及的全部CATO魔术的相关内容&#xff0c;并重新建立理论&#xff0c;分门别类进行了介绍。详情请戳&#xff1a; CATO原理中的数学与魔术&#xff08;十三&#…

aardio - 日历

写了个日历小例程&#xff0c;因 lunar 农历库存在问题&#xff0c;经过研究算是变相解决了&#xff0c;日历也完成了雏形&#xff0c;先开源出来&#xff0c;感兴趣的玩玩。 请下载最新paint库、customPlus库、lunar库。 不同的颜色搭配&#xff0c;实现不同的风格&#xff1…

小区业主管理系统

摘 要 随着城市化进程的加速和人口的不断增加&#xff0c;小区的数量也在不断增加。小区作为城市居民居住的主要场所&#xff0c;其管理工作也变得越来越重要。传统的小区业主管理方式存在诸多问题&#xff0c;如信息传递不畅、业务处理效率低下等。因此&#xff0c;开发一个高…

循环赛日程表

描述 n 2 ^ k个选手 每个选手必须与其他n-1个选手各赛一次每个选手一天赛一次比赛打n-1天 思路 k 3时的解 我们先进行假设&#xff1a;每个选手第一天和自己比&#xff0c;然后分解成4个子问题&#xff1a; (1)14号的第14天&#xff0c;对手1~4号; (2)14号的第58天&a…

数据结构——优先级队列(堆)Priority Queue详解

1. 优先级队列 队列是一种先进先出(FIFO)的数据结构&#xff0c;但有些情况下&#xff0c;操作的数据可能带有优先级&#xff0c;一般出队列时&#xff0c;可能需要优先级高的元素先出队列&#xff0c;该场景下&#xff0c;使用队列不合适 在这种情况下&#xff0c;数据结构应…

python-爬虫篇-爬取百度贴吧,段友之家的图片和视频

#!/usr/bin/env python # -*- coding: utf-8 -*-""" 爬取百度贴吧&#xff0c;段友之家的图片和视频 author: cuizy time&#xff1a;2018-05-19 """import requests import bs4 import osdef write_file(file_url, file_type):""&quo…

高可用设备日志采集工具

免费试用下载: Gitee下载 最新版本 优势: A. 开箱即用. 解压直接运行.不需额外安装. B. 批管理设备. 设备配置均在后台管理. C. 无人值守 客户端自启动,自更新. D. 稳定安全. 架构简单,内存占用小,通过授权访问.

Java——包

一、包 1、简要介绍 在Java编程语言中&#xff0c;包&#xff08;Package&#xff09; 是一种用来组织和管理类&#xff08;Class&#xff09;和接口&#xff08;Interface&#xff09;的机制。包为开发者提供了一种逻辑分组的方式&#xff0c;使代码更加模块化、结构化和易于…

获取泛型,泛型擦除,TypeReference 原理分析

说明 author blog.jellyfishmix.com / JellyfishMIX - githubLICENSE GPL-2.0 获取泛型&#xff0c;泛型擦除 下图中示例代码是一个工具类用于生成 csv 文件&#xff0c;需要拿到数据的类型&#xff0c;使用反射感知数据类型的字段&#xff0c;来填充表字段名。可以看到泛型…

开关阀(3):Fisher DVC6200定位器原理及调试

Fisher DVC6200---Digital Valve Controllers&#xff08; 数字阀门控制器&#xff09;简写 DVC,而6200是Fisher DVC定位器发展的一个系列型号&#xff0c;是Fisher结合DVC2000、DVC6000系列&#xff0c;取其特点发展的有着高适用性和高可靠性的阀门定位器。 DVC6200 原理&…

企业智慧办公管理平台

摘要 在之前的疫情中&#xff0c;大多数企业都受到了较大的冲击&#xff0c;然而一些公司却因为工作的特殊性可以居家远程办公&#xff0c;不过这些企业在管理员工的过程中却遇到了较大的困难&#xff0c;这是因为这些企业的管理系统根本大多都无法管理员工的工作项目&#xf…

【启明智显分享】国产工业级HMI芯片Model3C——个位数价,双CAN配置

在工业自动化、汽车控制系统中&#xff0c;通信技术的选择至关重要。其中&#xff0c;CAN&#xff08;Controller Area Network&#xff09;通信协议以其高实时性、可靠性和灵活性&#xff0c;已成为这些领域的首选。 从单CAN到双CAN&#xff1a;双重保障效率翻倍 CAN是一种多…

GNN Algorithms(8): DDPM

扩散模型 diffusion model&#xff1a;正向扩散过程 Forward Diffusion Process、反向生成过程 Reverse Generation Process. 本质&#xff1a;DDPM, Denoising Diffusion Probabilistic Model T steps 加噪&#xff1a;没有参数&#xff0c; ->随机取一个每一步都要加的随…

基于SSM+Jsp的体育竞赛成绩管理系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

Emacs之保存时删除行尾空格(一百四十二)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

【机器学习】机器学习赋能交通出行:智能化实践与创新应用探索

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀目录 &#x1f4d2;1. 引言&#x1f4d9;2. 交通流量预测与优化&#x1f31e;数据准备&#x1f319;模型训练与预测⭐评估模型与优化 &#x…

Linux操作系统篇:多线程

一. Linux中线程是怎么理解的 1.1 线程概念 在Linux中&#xff0c;线程是在进程“内部”执行的&#xff0c;线程是处于进程的进程地址空间中运行&#xff0c;线程用到的资源都是进程的资源&#xff0c;线程是执行进程的一部分代码&#xff0c;线程是最小的执行流&am…

C++代码编写风格:Header-Only与声明实现分离的选择

C代码编写风格&#xff1a;Header-Only与声明实现分离的选择 最近看到一些小伙伴问到了几个比较有趣的问题&#xff0c;这里总结一下&#xff0c;这些都是实际面试中出现过的问题&#xff0c;看看你知道多少&#xff0c;考察一下底子。 面试问题1&#xff1a;你通常编写代码的风…

eNSP学习——配置基于全局地址池的DHCP

目录 主要命令 原理概述 实验目的 实验场景 实验拓扑 实验编址 实验步骤 1、基本配置 2、配置基于全局地址池的 DHCP Server 3、配置DHCP Client 主要命令 [R1]dhcp enable //开启 DHCP功能//创建一个全局地址池&#xff0c;地址池名称为huawei1 [R1]ip pool h…

RIP路由协议汇总、版本兼容、定时器、协议优先级配置(华为)

#交换设备 RIP路由协议汇总 一、原理概述 当网络中路由器的路由条目非常多时&#xff0c;可以通过路由汇总&#xff08;又称路由汇聚或路由聚合&#xff09;来减少路由条目数&#xff0c;加快路由收敛时间和增强网络稳定性。路由汇总的原理是&#xff0c;同一个自然网段内的…