MySQL数据库14——更新和删除数据

news2024/11/17 7:36:06

SQL里面使用UPDATE更新数据,删除使用DELETE语句。

Mysql要修改一下设置,才能更新:

在左上角菜单栏里面选择偏好栏,取消下面这个红框的勾选

 


更新单个字段的数据

 如果运行环境为MySQL 则使用以下语句进行备份。

CREATE TABLE student_1 AS
SELECT * FROM student;

例  在student表中,将名叫“张三”的学生的联系方式1更改为“010-81234567”。

UPDATE student_1
SET contact1='010-81234567'
WHERE name='张三';

 


更新多个字段的数据 

在student表中,将所有计科系学生的所属院系值更改为“计算机系”,联系方式2改为“0471-6123456”。

UPDATE student_1
SET institute='计算机系', contact2='0471-6123456'
WHERE institute='计算机学院';

 


使用子查询更新数据

在UPDATE语句的WHERE子句中,可以使用子查询选择需要更新的记录。利用其这一特点,UPDATE语句可以基于其它表中的数据进行更新。

例 在score表中,在每个学生“心理学”的考试成绩上都增加2分。

UPDATE score SET result1=result1+2
WHERE c_id=(SELECT ID FROM  course WHERE course='心理学');

 


使用表连接更新数据

实际上,在UPDATE语句中还可以使用FROM子句。通过FROM子句和WHERE子句配合,可以进行多表连接,就是说在UPDATE语句中可以通过多表连接进行数据更新。下面通过例题说明使用表连接更新数据的方法。

例 在score表中,将每个学生“心理学”的考试成绩减2分,将其还原为更新前的分数。

UPDATE score AS s,course AS c
SET s.result1=s.result1-2
WHERE c.course='心理学' AND s.c_id=c.ID;


使用UPDATE语句删除指定字段的数据 

UPDATE语句除了更新数据以外,还有一个作用,即删除指定字段的数据。其实,所谓的删除,只是使用NULL值替换原有的字段值而已。

注意:用NULL值替换字段值时,首先必须保证该字段可以为空,否则会出现错误。

例  在student表中,将所有外语系学生的联系方式2的值删除。

下面的语句用于删除所有外语系学生的联系方式2。

UPDATE student_1
SET     contact2=NULL
WHERE  institute='外语系';

 


删除表中的数据

 使用DELETE语句删除指定记录 

首先,必须清楚一点,使用DELETE语句删除的是整行记录,而并非是记录中的某个字段值。下面是DELETE语句的语法格式。

DELETE  FROM 表名

WHERE  条件表达式

其中,DELETE FROM指定要从哪个表删除数据,WHERE用于设置删除记录的条件。即DELETE语句从表中删除那些满足WHERE子句条件的所有记录。当省略WHERE子句时,DELETE语句删除表中的所有记录。

下面通过例题介绍DELETE语句的使用方法。

例 从student_1表,删除名叫“孔乙己”的学生的记录。

DELETE FROM student_1
WHERE  name='孔乙己';

DELETE语句可以删除多条记录,例如下面的例子所示。

例 从student_1表,删除所有所属院系为NULL的记录

DELETE FROM student_1
WHERE institute IS NULL;


通过视图更新表数据

下面使用一个例子介绍通过视图更新数据的方法。

首先创建一个可更新的视图:

CREATE VIEW vw_update AS SELECT *FROM  student
WHERE institute='计算机学院'
WITH CHECK OPTION;

查看:

SELECT * FROM vm_update

例  通过视图vw_update将学生“杨九”的来源地更新为“重庆市”。

UPDATE  vw_update
SET     origin='重庆市'
WHERE   name='杨九';

通过本例可以知道,使用视图更新数据和直接更新表中数据的方法是相同的,只是将表名改为视图名即可。通过视图vw_update更新数据还有个好处,那就是只能更新“计算机学院”的学生信息,而不能更新其它院系的学生信息,这也是使用视图更新数据的目的。


通过视图删除表数据

下面使用一个例题介绍通过视图删除数据的方法。

例 通过视图vw_update,将来源地为NULL的学生删除。

DELETE FROM  vw_update
WHERE  contact1 IS NULL;

查看 

 看student表的内容会发现,刚才只是删除了视图中可见的数据,而并没有删除在视图中看不到的记录。

通过本例可以知道,使用视图删除数据和直接删除表中数据的方法是相同的,只是将表名改为视图名即可。通过视图删除数据和通过视图更新数据一样,只能删除所能看到的记录数据,而不能删除无法看到的数据。

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

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

相关文章

VS中scanf报错+extern关键字+常量+转义字符

目录 一、解决VS中scanf报错 二、extern关键字 三、常量 (一)C语言中的常量分为以下以下几种 1. 字面常量 2. const 修饰的常变量 3. #define 定义的标识符常量 4. 枚举常量 四、转义字符 (一)\? (二&…

轻松解决Session-Cookie 鉴权(含坑)附代码

Session-Cookie 鉴权 cookie介绍 Cookie 存储在客户端,可随意篡改,不安全有大小限制,最大为 4kb有数量限制,一般一个浏览器对于一个网站只能存不超过 20 个 Cookie,浏览器一般只允许存放 300个 CookieCookie 是不可跨…

力扣SQL刷题11

目录标题1194. 锦标赛优胜者--做出来了1225. 报告系统状态的连续日期-勉强1159. 市场分析 II1205. 每月交易II1194. 锦标赛优胜者–做出来了 题型:看题 解答:先处理matches表,整出分数列和players表连接 注意点: union all 时…

【逐步剖C】-番外篇-实用调试技巧

一、 Bug介绍 在正式开始讲解调试技巧之前先介绍一下我们亦敌亦友的Bug。 程序错误,即英文的Bug,也称为缺陷、臭虫,是指在软件运行中因为程序本身有错误而造成的功能不正常、死机、数据丢失、非正常中断等现象。 早期的计算机由于体积非常庞…

2.21、管程

管程就是一个软件模块,里面封装了实现同步,互斥的函数 1、为什么要引入管程 信号量机制存在的问题:编写程序困难、易出错 能不能设计一种机制,让程序员写程序时不需要再关注复杂的 PV 操作,让写代码更轻松呢? 1973年…

使用python从houdini导出arnold材质

先说结果,如果要使用python从houdini导出arnold材质可以使用以下命令 import hou import htoa vops [hou.node("/shop/arnold_vopnet1/")] htoa.material.materialExport(vops,"D:/mat.mtlx")以下是在寻找解决方法的过程中记录的流水账日志 google泛搜索…

MySQL入门篇-MySQL MHA高可用实战

MHA简介 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司的youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提…

2023软考考哪个证书好?

软考有三个级别(初级,中级和高级),这三个级别分别对应5个方向,下面这张图片呢,可以一目了然,一些小小建议!!!遵循一个原则:首先选专业对口的科目&…

为什么这11道JVM面试题这么重要(附答案)

本文内容整理自 博学谷狂野架构师 运行时数据区都包含什么 虚拟机的基础面试题 程序计数器Java 虚拟机栈本地方法栈Java 堆方法区 程序计数器 程序计数器是线程私有的,并且是JVM中唯一不会溢出的区域,用来保存线程切换时的执行行数 程序计数器&#xff…

算法笔记(三)—— 桶排序及排序总结

堆 逻辑上是一棵完全二叉树(依次遍满或者全满)。 数组可以转为完全二叉树,完全二叉树某结点左孩子(2*i1),右孩子(i*22),父结点((i-1/)2),根节点的父还是自己。 如何将数组转化为堆(大根堆&…

Web自动化测试——selenium篇(一)

文章目录一、环境准备二、Web 自动化测试 Demo三、元素定位常用方法四、元素定位失败可能原因五、测试对象操作六、等待操作七、信息打印在学习 Web 自动化测试的过程中,selenium 是其中的常用工具。除了其开源免费,包含丰富的 API 以外,它还…

基于“PLUS模型+“生态系统服务多情景模拟预测

工业革命以来,社会生产力迅速提高,人类活动频繁,此外人口与日俱增对土地的需求与改造更加强烈,人-地关系日益紧张。此外,土地资源的不合理开发利用更是造成了水土流失、植被退化、水资源短缺、区域气候变化、生物多样性…

windows安装proget实现nuget私有包部署

下载proget 官网 下载地址 免费下载 安装proget 下载完成之后双击安装 选择ProGet 默认选择即可 也可以指定数据库,SQL Server数据库 Server服务器名;Database数据库名;User Id用户名;Password密码 Serverlocalhost;DatabaseProGet2;User Idsa;Passwordxxxx…

浅谈一下前端工作中全流程多层次的四款测试工具

在应届生找工作的时候,我们经常会见到一条招聘要求:要求实习经历。或者 有实习经历者优先。 为什么大部分公司在招聘时,都要求你必须有实习经历? 商业项目与个人项目不同,一段实习经历,能够熟悉公司中成熟…

最接近的三数之和-力扣16-java排序+双指针

一、题目描述给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在恰好一个解。示例 1:输入:nums [-1,2,1,-4], target 1输出&#xff…

Multisim14 安装包及安装教程

Multisim14 安装教程 Multisim14下载地址:Kevin的学习站–安装包下载地址 Multisim14 简介: Multisim 14 是美国国家仪器有限公司(National Instrument,NI)推出的以 Windows 为基础、符合工业标准的、具有 SPICE 最佳仿…

三数之和-力扣15-java排序+双指针

一、题目描述给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。…

好用的研发管理看板工具有哪些?10款主流看板管理软件盘点

10大企业看板工具软件:1.软件开发项目看板 PingCode;2.通用看板软件 Worktile;3.开源看板软件 Wekan;4.免费看板软件 Trello;5.个人和小团队的看板软件 Todoist ;6.开源免费看 Kanboard;7.面向个…

想考个PMP证书,怎么报考啊?

先说报名条件: PMP报名条件说难也不难,但也是有条件的,看下面的视频,最难满足的就是题主担心的工作经验,其实这个也并不一定要项目管理经验,年纪合适,一般来说也是可以考的。 PMP考试时间 23年…

微服务实战--高级篇:分布式缓存 Redis

分布式缓存 – 基于Redis集群解决单机Redis存在的问题 单机的Redis存在四大问题: 1.Redis持久化 Redis有两种持久化方案: RDB持久化AOF持久化 1.1.RDB持久化 RDB全称Redis Database Backup file(Redis数据备份文件)&#xf…