一、修改单表的记录
语法:
UPDATE 表名
SET 列1 = 值1, 列2=值2
WHERE 筛选条件
注意:若不加WHERE筛选语句,则会更新表中的所有记录。
我们有这样一个manager表:
我要修改id=5的记录,将m_name 改为 ”TOM“,m_salary改为18000,email改为123@zc-campus.com,将location改为“Paris Tower"
sql语句如下:
UPDATE manager SET m_name="TOM", m_salary=1800, email="123@zc-campus.com", location="Paris Tower" WHERE id = 5;
结果如下:
我们可以看到,id=5的记录被修改了。
如果我们不加WHERE筛选条件会怎样呢?
UPDATE manager SET m_name="TOMS", m_salary=1800, email="124@zc-campus.com", location="Paris Tower"
执行结果:
我们可以看到,表中的所有记录,除了id,都被update了。
所以:使用UPDATE更新数据时,一定要注意筛选条件,没有加的话很可能就会造成更新全表数据的结果。
二、修改多表的记录(级联修改)
语法(sql92):
UPDATE 表1 别名, 表2 别名
SET 列1 = 值1, 列2=值2
WHERE 连接条件
AND 筛选条件
语法(sql99)
UPDATE 表1 别名
INNER JOIN(或其它连接条件)表2 别名
ON 连接条件
SET 列1 = 值1, 列2=值2
WHERE 筛选条件
有如下两个表:
beauty表:
boys表:
这两个表通过beauty.boyfriend_id于boys.id关联。
现在我们要更新热巴的男朋友的userCP为10000。
我们来看sql语句:
UPDATE beauty be INNER JOIN boys bs ON be.boyfriend_id = bs.id SET bs.userCP = 10000 WHERE be.name = "热巴";
我们看boys表:
热巴的男朋友鹿晗的userCP被修改为了10000。