定义:UPDATE更新语句是用来修改表中一条数据或者多条数据记录

基本语法:

UPDATE <表名> SET <字段名=> WHERE <筛选条件>;

1. 更新单行数据

实例1:在学生表中,将学生编号Sid为6的学生姓名Sname修改为:杨红梅

update students set Sname='杨红梅' where Sid = 6;

执行结果:
在这里插入图片描述

  • SET后面除了带文本之外,还可以是数学表达式

实例2:在学生表中,将学生编号Sid为10的学生姓名对应的Tid加100

update students set Tid=Tid+100 where Sid=10;

执行结果:
在这里插入图片描述

2. 更新多行数据

  • 让where 条件筛选更多的记录,就会同时更改多条数据记录了

实例3:在学生表中,将性别为 ‘女’ 的学生,学生编号加500

update students set Sid=Sid+500 where Ssex = '女';

执行结果:

在这里插入图片描述

3. UPDATE语句与子查询的搭配使用

  • 子查询的定义:子查询是查询语句里面嵌套的查询语句,子查询的结果将作为主查询的查询条件,来完成更加复杂的数据检索
  • 那UPDATE语句是如何与子查询来进行搭配使用的呢,本质上就是将子查询与where子句结合来使用

实例4:在学生表中,将查询出班主任为:高静的学生性别修改为:女生

解析:在学生表中只有教师编号Tid,并没有教师姓名Tname, 所以需要先在教师表中查询出高静的id

update students set Ssex = '女生' 
where Tid = (select Tid from teachers where Tname = '高静');

执行结果:
在这里插入图片描述

  • 如果子查询中返回的是多个数据时,就不能用等号了,需要用IN

实例5:在学生表中,将班主任为:魏平 、宋明 和 黄江的学生性别都修改为:男生

解析:子查询中返回多个Tid, 这时候就需要用到IN

# 第一步:先将子查询写出,查询出对应的id
select Tid from teachers where Tname IN('魏平','宋明','黄江');

# 第二步:在将子查询加入到where条件中,使用update进行更新
update students set Ssex = '男生' 
where Tid IN (
select Tid from teachers where Tname IN('魏平','宋明','黄江'));

执行结果:

在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐