尚硅谷之MySQL基础

发布时间:2018年11月29日作者:yafei浏览次数:731

9.2 修改数据

1、语法

UPDATE 表名称 SET 字段名1 = 值1, 字段名2=值2,……  【WHERE  条件】;

UPDATE 表1,表2,……   SET  表1.字段名1 = 值1, 表1.字段名2=值2,表2.字段1 = 值1, 表2.字段2=值2……  【WHERE  条件】;

2、说明

  • 如果不写where条件,会修改所有行
  • 值可以是常量值、表达式、函数
  • 可以同时更新多张表

如果两个表没有建立外键,但逻辑上有外键关系

  • 如果修改从表外键字段的数据,要注意查看主表参照字段的值是否存在
  • 如果修改主表的被参考的字段的值,要注意查看从表的外键是否有依赖该值,如果有
  • 如果外键是on update RESTRICT或on update NO ACTION,那么要先处理从表的数据,才能修改
  • 如果外键是on update SET NULL 或 on update CASCADE,那么直接修改,从表的外键字段会自动处理

3、示例

#修改所有人的基本工资,涨薪5%

UPDATE t_salary

SET basic_salary = basic_salary * 1.05;

#修改”孙俪”的手机号码为”13709098765″,生日为”1982-09-26″

UPDATE t_employee SET tel = ‘13709098765’,birthday = ‘1982-09-26’

WHERE ename = ‘孙俪’;

#修改”邓超”的入职日期为今天

UPDATE t_employee SET hiredate = CURDATE() WHERE ename =’邓超’;

#修改”咨询部”的主管id为6

UPDATE t_department SET manager_id =6 WHERE did = 2;

#修改”教学部”的主管id为1

UPDATE t_department SET manager_id =1 WHERE did = 1;

#修改”教学部”的主管id为”孙红雷”的编号

UPDATE t_department,t_employee

SET t_department.manager_id =t_employee.eid

WHERE t_department.`dname` = ‘教学部’

 AND t_department.`did` = t_employee.`dept_id`

 AND t_employee.ename = ‘孙红雷’;

#修改所有员工的领导编号为该员工所在部门的主管编号

UPDATE t_employee,t_department

SET t_employee.mid = t_department.manager_id

WHERE t_employee.dept_id = t_department.did;

#修改教学部的主管编号,以及该部门所有员工的领导编号为”邓超”的编号

UPDATE t_department,t_employee

SET t_department.manager_id =t_employee.eid

WHERE t_department.`dname` = ‘教学部’

 AND t_department.`did` = t_employee.`dept_id`

 AND t_employee.ename = ‘邓超’;

 

UPDATE t_employee,t_department

SET t_employee.mid = t_department.manager_id

WHERE t_employee.dept_id = t_department.did

 AND t_department.`dname` = ‘教学部’;

 

 


上一篇:
下一篇:
相关课程

java培训 大数据培训 前端培训 UI/UE设计培训

关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
全国统一咨询电话:010-56253825
地址:北京市昌平区宏福科技园2号楼3层(北京校区)

深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)

武汉市东湖高新开发区东湖网谷(武汉校区)