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

一、插入元组

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,cNofrom s,cwhere 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表中相应元组的sNoon delete no action, -- 当删除表s中已被外键cNo绑定的元组时,拒绝执行foreign key(sNo)references s(sNo)on update cascadeon delete no action,check(grade between 0 and 100)
);

五、总结

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

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

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

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

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

相关文章

后端项目实战--瑞吉外卖项目软件说明书

瑞吉外卖项目软件说明书 一、项目概述 瑞吉外卖项目是一个外卖服务平台&#xff0c;用户可以通过该平台浏览餐厅菜单、下单、支付以及追踪订单状态。产品原型就是一款产品成型之前的一个简单的框架&#xff0c;就是将页面的排版布局展现出来&#xff0c;使产品得初步构思有一…

有哪些常用ORM框架

ORM&#xff08;Object-Relational Mapping&#xff0c;对象关系映射&#xff09;是一种编程技术&#xff0c;它允许开发者使用面向对象的编程语言来操作关系型数据库。ORM的主要目的是将数据库中的数据表映射到编程语言中的对象&#xff0c;从而使得开发者可以使用对象的方式来…

Android面试题之ActivityManagerService的启动流程

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 SystemServer启动 创建SystemContex 用于加载系统相关的资源&#xff0c;比如theme&#xff0c;android命名空间下的资源等创建引导服务&#…

02 Pytorch_NLP

1. N-gram n决定关联信息 2. TF____IDF TF&#xff1a;词频 IDF&#xff1a;逆向序列 假如&#xff1a;TF * IDF 就是当前的文件&#xff0c;那么乘积反而更大&#xff01; 因为它只出现在 特定的文章中&#xff01; TF-IDF 简介 TF-IDF&#xff08;Term Frequency-Inverse…

css入门基础

目录 1. CSS前景 2.什么是CSS 3.CSS发展史 4.CSS的3种样式格式 5.CSS 的语法 6.CSS的字体样式 7.选择器类型 8.CSS外观属性 1. CSS前景 从HTML被发明开始&#xff0c;样式就以各种形式存在。不同的浏览器结合它们各自的样式语言为用户提供页面效果的控制。最初的HTML只…

专业学习|博弈论-博弈论概述

&#xff08;一&#xff09;认识博弈论&#xff1a;解析复杂决策与策略 &#xff08;1&#xff09;认识博弈 博弈论广泛应用于分析个体间因利益冲突而产生的决策问题。通过构建不同模型来探讨如经贸关系、军事威胁等问题&#xff0c;旨在寻找均衡解并提供新知&#xff0c;相较…

mathematical-expression-cpp | C++ 数学表达式解析库

数学表达式-cpp Switch to English Document 介绍 本框架是一种针对数学公式解析的有效工具&#xff0c;能够通过C的API解析包含嵌套函数&#xff0c;包含函数&#xff0c;数列步长累加等数学公式&#xff0c;返回值是一个数值的结果对象&#xff0c;同时也可以进行比较运算…

idea在空工程中添加新模块并测试的步骤

ServicesTest是空的工程&#xff0c;没有pom文件。现在需要在ServicesTest目录下添加新模块作为新的工程&#xff0c;目的是写一下别的技术功能。 原先目录结构&#xff0c;ServicesTest是空的工程&#xff0c;没有pom文件。下面的几个模块是新的工程&#xff0c;相互独立。 1.…

LLM大模型的挑战与未来,挑战大但是机遇更大!

大模型必然是未来很长一段时间我们工作生活的一部分&#xff0c;而对于这样一个与我们生活高度同频互动的“大家伙”&#xff0c;除了性能、效率、成本等问题外&#xff0c;大规模语言模型的安全问题几乎是大模型所面对的所有挑战之中的重中之重&#xff0c;机器幻觉是大模型目…

C++ (week6、7):Linux系统编程4:网络

文章目录 四、网络和网络编程(一) 网络协议1.基础概念2.网络协议和网络模型&#xff1a;OSI七层模型、TCP/IP四层协议3.TCP协议(1)TCP协议的特点(2)TCP协议的首部格式(3)TCP状态图(4)为什么要三次握手&#xff1f;2次行不行&#xff1f;(5)为什么要四次挥手&#xff1f;(6)快速…

软件测试分类介绍

大家好&#xff0c;软件测试是确保软件质量的关键环节之一&#xff0c;通过对软件系统的各个方面进行测试&#xff0c;可以发现和解决潜在的问题&#xff0c;提高软件的稳定性、可靠性和用户满意度。在软件测试领域&#xff0c;根据测试的目的、方法和对象的不同&#xff0c;可…

Python业务规则引擎库之rules使用详解

概要 在软件开发中,业务规则引擎是一种重要的工具,可以帮助开发者将复杂的业务逻辑从代码中解耦出来,并以更直观的方式进行管理和维护。rules 是一个轻量级的 Python 库,专门用于定义和执行业务规则。它提供了一种简洁且强大的方式来管理应用程序中的规则逻辑,使代码更加…

C++ 引用 - 引用的特点|在优化程序上的作用

引用是C 的一个别名机制&#xff0c;所谓别名&#xff0c;就是同一块内存共用多个名字&#xff0c;每个名字都指的是这片空间&#xff0c;通过这些别名都能访问到同样的一块空间。 就像鲁迅和周树人是同一个人。 ——鲁迅 一、引用的基本用法 int a 10; int& ref a; // …

Django序列化器详解:普通序列化器与模型序列化器的选择与运用

系列文章目录 Django入门全攻略&#xff1a;从零搭建你的第一个Web项目Django ORM入门指南&#xff1a;从概念到实践&#xff0c;掌握模型创建、迁移与视图操作Django ORM实战&#xff1a;模型字段与元选项配置&#xff0c;以及链式过滤与QF查询详解Django ORM深度游&#xff…

充电桩出口:跨国贸易的机遇与挑战之旅

在新能源浪潮席卷全球的今天&#xff0c;充电桩作为电动汽车的“加油站”&#xff0c;正逐渐从幕后走向台前。 而在这场跨国贸易的舞台上&#xff0c;充电桩的出口之路&#xff0c;既充满了诱人的机遇&#xff0c;也伴随着不小的挑战。 机遇&#xff0c;源自日益增长的全球市场…

免费听歌,电脑或手机免费听歌,落雪音乐安装详细步骤

近年来&#xff0c;由于资本的力量导致各种收费&#xff0c;看个电视想听歌都必须要付费了&#xff0c;否则你听不完整&#xff0c;吃相非常难看&#xff0c;特别是电视&#xff0c;吸血鬼式吸收各种会员费&#xff0c;各种APP也是铺天盖地的广告&#xff0c;渐渐迷失了自我&am…

两个螺旋面的交线

已知轴截面齿形&#xff0c;先得到螺旋面 然后在计算出对应的端面齿形 在用端面齿形来计算和另一个螺旋面的相交曲线。 三维验证这个方法可行&#xff01;

喜大普奔,AI绘画SD3终于开源了,AI绘画又添新利器!【附模型下载和安装包】

sd3终于开源了&#xff01; 没错就是stablediffusion 3.0版本&#xff01;这是stability迄今为止最先进最复杂图像生成模型。 这次开源的是medium版本&#xff0c;总共有三个型号的模型&#xff0c;下面我们来详细的说下sd3的功能特点以及不同型号区别、安装方法&#xff01;…

HTML静态网页成品作业(HTML+CSS)—— 家乡山西介绍网页(3个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有6个页面。 二、作品演示 三、代…