SQL第16课——更新和删除数据

介绍如何利用updatedelete语句进一步操作表数据。

16.1 更新数据

使用update语句。两种使用方式:

1. 更新表中的特定行

2. 更新表中的所有行

!!!(使用update时不要省略where子句,因为容易更新表中的所有行)

基本update语句由三部分组成 = 要更新的表 + 列名和它们的新值 + 确定要更新哪些行的过滤条件

例:客户1000000005现在有了电子邮件地址,因此需要更新记录

更新单个列:

这里是更新customers表中cust_id为1000000005的email.

没有where子句的话,DBMS将会用这个电子邮件地址更新customers表中的所有行。

更新多个列:

!!!在update语句中使用子查询,使得能用select语句检索出的数据更新列数据。

有的SQL实现支持在update语句中使用from子句,用一个表的数据更新另一个表的行。

删除某个列的值,可设置它为null(表定义允许null值):

null去除cust_email列中的值,与保存空字符串不同(' ',是一个值),null表示没有值。

16.2 删除数据

delete删除(去掉)数据,有两种方式:

1. 删除特定的行;

2.删除所有行。

同样不要省略where子句,不然容易删除所有行。

例:从customers表中删除一行:

delete from 指定删除的表名

!!!友好的外键

12课中的联结,简单联结两个表需要两个表中的公用字段,

使用外键确保引用完整性的好处:DBMS通常可以防止删除某个关系需要用到的行。如从Products表中删除一个产品,但这个产品用在orderitems的已有订单中,那么delete语句将抛出错误并中止。

delete不需要列名或通配符,delete删除整行而不是删除列,删除指定的列,使用update语句。

delete删除行,不删除表本身

要删除所有行,用truncate table语句更快。

16.3 更新和删除的指导原则

update和delete遵循的重要原则
1. 如果不是更新或删除每一行,那么一定要使用where子句
2. 保证每个表都有主键,尽可能像where子句那样使用它(可以指定各主键,多个值或值的范围)
3. 在使用where子句前,应该先用select进行测试,保证过滤的是正确的记录
4. 使用强制实施引用完整性的数据库,这样DBMS将不允许删除其数据与其他表相关联的行
5. 有得DBMS允许数据库管理员施加约束,防止执行不带where子句得update或delete语句。
6. 如果SQL没有撤销(undo)按钮,小心使用,不然容易更新或删除错误数据。

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

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

相关文章

链接伪类(:hover)CSS背景图片有闪动BUG的解决方法 vue3

现象: hover时候,图片还没加载出来,导致边框闪烁 在Vue 3中,如果你遇到了使用伪类(:hover)时背景图片出现闪烁的问题,可能是由于浏览器的渲染机制导致的。解决这个问题的方法可能包括: 使用background-pos…

spark:数据的关联与合并、缓存和checkpoint

文章目录 1. 数据的关联与合并1.1 join关联1.1.1 内关联1.1.2 左关联1.1.3 右关联 1.2 Union合并 2. 缓存和checkpoint 1. 数据的关联与合并 1.1 join关联 students表数据: 1.1.1 内关联 内关联只返回两个 DataFrame 中在连接键上匹配的行。 # join 关联 from…

【Linux】【Jenkins】后端项目打包教程-Linux版

本次安装版本:2.4 1、安装git环境2、安装mavne环境2.1 下载依赖2.2、解压、赋权2.2、配置环境变量2.3、验证安装 3、jenkins-插件下载3.1、进入jenkins-->系统管理3.2、进入系统管理-->插件管理3.3、下载两个插件(如果之前下载了,这里是…

Docker 的使用-01

一、Docker 设置和镜像源 1.1、设置 #查看 Docker 信息 docker version docker info#守护线程启动: systemctl daemon-reload 重启Docker服务: systemctl restart docker#关闭Docker服务 sudo systemctl stop docker#启动Docker服务 systemctl start d…

【安装JDK和Android SDK】

安装JDK和Android SDK 1 前言2 下载2.1 下载途径2.2 JDK下载和安装2.2.1 下载2.2.2 安装并配置环境变量2.2.3 验证 2.3 SDK下载和安装2.3.1 下载2.3.2 安装2.3.3 环境变量配置2.3.4 验证 1 前言 在软件开发中,Android应用开发通常使用Android Studio,但…

低成本轻量化5G网络部署redcap技术

RedCap(Reduced Capability)轻量化5G路由器旨在提供低功耗、成本效益高、性能较5G完整版稍微降低的解决方案。用于满足工业物联网(IoT)、消费电子产品和轻量级5G设备的需求。通过对5G技术进行一定程度的“功能裁剪”,降…

【华为】配置RIP协议

RIP(Routing Information Protocol)是一种内部网关协议(IGP),主要用于小型网络中的动态路由。RIP有两个主要版本:‌RIPv1和‌RIPv2,它们之间存在一些关键区别: ‌分类支持‌&#xf…

医疗图像之基于UNet3+(UNet+++)的X射线图像牙齿分割

第一步:准备数据 X射线图像牙齿分割,总共有2000张 第二步:搭建模型 UNet3主要是参考了UNet和UNet两个网络结构。尽管UNet采用了嵌套和密集跳过连接的网络结构(见图1(b)红色三角区域),但是它没有直接从多尺…

探索机器学习中的特征选择技术

在机器学习和数据科学领域,特征选择是一个关键步骤,它不仅有助于提高模型的性能,还能帮助我们更好地理解数据。本文将深入探讨特征选择的重要性、常见方法以及如何在实际项目中应用这些技术。 一、特征选择的重要性 降低维度:减…

二叉查找树(Binary Search Tree)Java语言实现

一、二叉查找树 二叉查找树(Binary Search Tree),也称为二叉搜索树、有序二叉树(Ordered Binary Tree)或排序二叉树(Sorted Binary Tree)。 是指一棵空树或者具有下列性质的二叉树&#xff1a…

Android 无Bug版 多语言设计方案!

出海业务为什么要做多语言? 1.市场扩大与本地化需求: 通过支持多种语言,出海项目可以触及更广泛的国际用户群体,进而扩大其市场份额。 本地化是吸引国际用户的重要策略之一,而语言本地化是其中的核心。使用用户的母语…

NFT Insider #151:The Sandbox 推出 Alpha 第4季;腾讯或将收购育碧

市场数据 加密艺术及收藏品新闻 Beeple 将于 11 月在南京德基美术馆举办个人首展 著名数字艺术家 Beeple 近日在X平台发布视频,宣布将于 2024 年 11 月 14 日在南京德基美术馆举办个人首次展览,名为《Beeple:来自合成未来的故事》。该展览将…

【计算机网络】详谈TCP协议确认应答机制捎带应答机制超时重传机制连接管理机制流量管理机制滑动窗口拥塞控制延迟应答

一、TCP 协议段格式 1.1、4位首部长度 4位首部长度的基本单位是4字节,也就是说如果4位首部长度填6,那报头长度就是24字节。报头长度的取值范围为[0,60]字节,也就是说选项的最大长度为40字节。 二、确认应答机制 发送数据和发送应答&#x…

vue3 在store的index.js

导入vuex,在store的index.js创建store对象 在main.js挂载store import store from ./storenew Vue ({/* 将store对象实例挂载到vue实例中 所有组件就可以直接从store中获取全局数据了*/ store, render: h > h(App) }).$mount(#app) 在store中的index.js进行声明…

Chainbase :链原生的 Web3 AI 基建设施

“随着 Chainbase 在生态系统和市场方面的进一步拓展,其作为链原生 Web3 AI 基建设施的价值将愈发显著。” 算法、算力和数据是 AI 技术的三大核心要素。实际上,几乎所有的 AI 大模型都在不断革新算法,以确保模型能够跟上行业的发展趋势&…

react实现实时计时的最简方式

js中时间的处理,不借助于moment/dayjs这样的工具库,原生获取格式化的时间,最简单的实现方式可以参考下面这样。 实现效果 代码实现 封装hooks import { useState, useEffect } from "react";export function useCountTime() {c…

手动nginx平滑升级

一、下载nginx安装包 wget http://nginx.org/download/nginx-1.24.0.tar.gz 二、解压缩 tar -zxf nginx-1.24.0.tar.gz 三、进入解压缩后文件 3.1 cd /usr/local/nginx/sbin 预编译 进入如下命令 ./configure -prefix/usr/local/nginx --with-http_ssl_module --with…

免费设计元素下载,设计师必备,建议收藏!

设计师找设计素材、免抠元素,背景图等等,就上这6个网站,免费下载! 1、菜鸟图库 免抠图片素材-免抠图片模板免费下载 - 菜鸟图库 这是一个专门为新手设计师提供免费设计素材的网站,站内有非常多设计素材,其…

为什么说期限提醒系统是项目申报的必备工具?

在项目申报的征程中,时间就是生命,时机决定成败。然而,当前项目申报时间管理却面临着诸多棘手的问题,这也让期限提醒系统成为了必不可少的必备工具。那么,它究竟为何如此关键? 目前项目申报时间管理方面面临…

uniapp 锁屏显示插件 Ba-LockShow(可让vue直接具备锁屏显示能力)

简介 Ba-LockShow 是一款可以直接使uniapp的vue界面在锁屏页展示的插件。 支持使vue直接具备锁屏显示能力支持设置锁屏显示和不显示支持唤醒屏幕 截图展示(仅参考) 支持定制、本地包、源码等,有建议和需要,请点击文章结尾“Unia…