利用 UPDATE 命令可以修改表里的现有数据。这个命令不向表里添加新记录,也不删除记录,它只是修改现有的数据。它一般每次只更新数据库里的一个表,但可以同时更新表里的多个字段。
一、更改记录操作
语法:UPDATE 表名 SET 列名 = 新值
[ WHERE 更新条件 ];
叙述: WHERE 子句是判断语句,用来设定条件,限制只更新匹配的行。如果不带 WHERE 子句,则更新所有行数据。
注意事项: 1. 使用该命令可以对符合 WHERE 条件的所有记录进行修改;
2. 需要指明表名和要改变的字段值,这个字段的值由 SET 引导,用来告诉 SQL 要改变哪个字段,以及要将其改为何值;
3. 如果不加条件,那么将会是针对于表中的所有记录的修改。
例1:将 Students 表中的所有学生名称为 "Alex" 的改为 "Tom":
UPDATE Students SET Sname="Tom" WHERE Sname="Alex";
例2:更新数据行 Ssex:
UPDATE Students SET Ssex = 0;
注意到在这个例子里,所有记录的 Ssex 字段都被更新成0了。在使用没有 WHERE 子句的 UPDATE 语句时要特别小心,这时表里所有记录的相应字段都会被更新。大多数情况下,UPDATE 语句都需要使用 WHERE 子句 。
例3:将 Sc 表中的所有 '刺绣系' 改为 '家政系' :
UPDATE Sc
SET Sdept ='家政系'
WHERE Sdept = '刺绣系';
例4: 将 Students 表中的所有95分及以下的成绩加5分:
UPDATE Students
SET Sgrade = Sgrade + 5
WHERE Sgrade <= 95;
例5:将 stu 表中所有 id 大于900的记录中 Score 的值加上5:
UPDATE stu
SET score=score+5
WHERE id>900
例6:有 Store_Information 表:
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999
我们发现说 Los Angeles 在01/08/1999 的营业额实际上是$500,而不是表格中所储存的$300,因此我们用以下的 SQL 语句来修改那一笔记录:
UPDATE Store_Information
SET Sales = 500
WHERE store_name = "Los Angeles"
AND Date = "Jan-08-1999"
现在 Store_Information 表的内容变成:
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $500 Jan-08-1999
Boston $700 Jan-08-1999
在这个例子中,只有一个记录符合 WHERE 子句中的条件。如果有多个记录符合条件的话,每一个符合条件的记录都会被修改的。
二、更改记录里的多个字段
语法:UPDATE 表名
SET 列1 = 新值1,
[ 列2 = 新值2 , ]
[ 列3 = 新值3 , ] ......
[ WHERE 更新条件 ];
注意其中使用的 SET,这里只有一个 SET,但是有多个列,每个列之间以逗号分隔。SQL 通常使用逗号来分隔不同类型的参数。
例: UPDATE Students
SET Sname='何梅', Sgrade=91, Ssex=0
WHERE Scode=5;
一、更改记录操作
语法:UPDATE 表名 SET 列名 = 新值
[ WHERE 更新条件 ];
叙述: WHERE 子句是判断语句,用来设定条件,限制只更新匹配的行。如果不带 WHERE 子句,则更新所有行数据。
注意事项: 1. 使用该命令可以对符合 WHERE 条件的所有记录进行修改;
2. 需要指明表名和要改变的字段值,这个字段的值由 SET 引导,用来告诉 SQL 要改变哪个字段,以及要将其改为何值;
3. 如果不加条件,那么将会是针对于表中的所有记录的修改。
例1:将 Students 表中的所有学生名称为 "Alex" 的改为 "Tom":
UPDATE Students SET Sname="Tom" WHERE Sname="Alex";
例2:更新数据行 Ssex:
UPDATE Students SET Ssex = 0;
注意到在这个例子里,所有记录的 Ssex 字段都被更新成0了。在使用没有 WHERE 子句的 UPDATE 语句时要特别小心,这时表里所有记录的相应字段都会被更新。大多数情况下,UPDATE 语句都需要使用 WHERE 子句 。
例3:将 Sc 表中的所有 '刺绣系' 改为 '家政系' :
UPDATE Sc
SET Sdept ='家政系'
WHERE Sdept = '刺绣系';
例4: 将 Students 表中的所有95分及以下的成绩加5分:
UPDATE Students
SET Sgrade = Sgrade + 5
WHERE Sgrade <= 95;
例5:将 stu 表中所有 id 大于900的记录中 Score 的值加上5:
UPDATE stu
SET score=score+5
WHERE id>900
例6:有 Store_Information 表:
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999
我们发现说 Los Angeles 在01/08/1999 的营业额实际上是$500,而不是表格中所储存的$300,因此我们用以下的 SQL 语句来修改那一笔记录:
UPDATE Store_Information
SET Sales = 500
WHERE store_name = "Los Angeles"
AND Date = "Jan-08-1999"
现在 Store_Information 表的内容变成:
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $500 Jan-08-1999
Boston $700 Jan-08-1999
在这个例子中,只有一个记录符合 WHERE 子句中的条件。如果有多个记录符合条件的话,每一个符合条件的记录都会被修改的。
二、更改记录里的多个字段
语法:UPDATE 表名
SET 列1 = 新值1,
[ 列2 = 新值2 , ]
[ 列3 = 新值3 , ] ......
[ WHERE 更新条件 ];
注意其中使用的 SET,这里只有一个 SET,但是有多个列,每个列之间以逗号分隔。SQL 通常使用逗号来分隔不同类型的参数。
例: UPDATE Students
SET Sname='何梅', Sgrade=91, Ssex=0
WHERE Scode=5;