8、update 数据更新
1、update 语句数据更新
(1) 更新(修改)表中的数据。
语法:
update 表名 set 字段1=新值,字段2=新值,... where 条件; #更新一行多列
update语句以where子句结束,where条件告诉MySQL更新哪一行,若没有指定where子句,则更新表中所有的行。
(2) 更新多行数据
update结合case,when和then一起使用
语法:
update 表名 set 字段1=case id when id1 then 新值1 when id2 then 新值2 ... when idn then 新值n -- 注意有多个字段时,每个字段之间的 end 后都有逗号( ,) 隔开,最后一个 end 不需要逗号 end, 字段2=case id when id1 then 新值1 when id2 then 新值2 ... when idn then 新值n end where id in (id1,id2,...idn); -- 同时更新多行多列,in 操作符指定id的范围
更新字段1,字段2等字段的值,若id=1,则字段1=新值1,字段2=新值1
-- 功能:更新表中现有记录 -- 节点解析: -- UPDATE - 指定要更新的表 -- SET - 设置要修改的列和新值 -- WHERE - 指定更新条件(重要!避免误更新全部数据) UPDATE employees SET salary = salary * 1.1, -- 工资增加10% last_raise_date = CURRENT_DATE -- 更新最后加薪日期 WHERE department_id = 10 -- 只更新部门10的员工 AND hire_date < '2020-01-01'; -- 且入职早于2020年的员工 -- 危险示例:没有WHERE子句会更新所有记录! -- UPDATE employees SET salary = 50000; -- 这会更新所有员工工资!
2、删除数据
delete 语句从表中删除数据
语法:
delete from 表名 where 条件 -- 删除特定的行 delete from 表名 -- 删除所有的行
注:delete 只删除表中数据,不删除表。
-- 功能:从表中删除记录 -- 节点解析: -- DELETE FROM - 指定要删除数据的表 -- WHERE - 删除条件(重要!避免误删全部数据) DELETE FROM employees WHERE termination_date IS NOT NULL -- 只删除已离职员工 AND termination_date < '2022-01-01'; -- 且离职时间早于2022年 -- 分批次删除大数据量(避免锁表) DELETE FROM large_table WHERE condition = true LIMIT 1000; -- 每次只删除1000条
truncate table 表名; -- 删除原来的表,并重新建立一张同名的表
本文来自博客园,作者:chao_xiong,转载请注明原文链接:https://www.cnblogs.com/chao-xiong/p/14579615.html

浙公网安备 33010602011771号