SQL数据库提供结构化数据存储功能。我们可以将数据存储在具有列和行的表中。SQL数据库的其他有用特性是更新功能。我们可以用不同的方式和约束更新SQL数据库数据。在本教程中,我们将学习如何使用SQLUPDATE语句更新数据库表数据,并通过示例查询单个记录、多个记录或条件情况。
SQL更新语法
SQL Update语句或查询具有以下语法和给定值。
update TABLE_NAMEset COLUMN1=VALUE1, COLUMN2=VALUE2, ... , COLUMNN=VALUENwhere CONDITION;
-
TABLE_NAME
是要更新其记录的表。 -
COLUMN1
是要更新的列名。 -
VALUE1
是我们要设置的值。 -
COLUMN
和VALUE
可以多次设置,没有问题。 -
CONDITION
用于选择要更新的记录或行。
数据库表数据示例
在本教程中,我们将使用以下数据库表以不同的方式对其进行更新。为了避免误解和减少复杂性,我们尽量使表格简单化。在这个表中,我们有以下列。表名为 Users
.
- 身份证件
- 姓名
- 城市
- 年龄
- 国家
身份证件 | 姓名 | 城市 | 年龄 | 国家 |
1 | 约阿希姆öw | 柏林 | 20 | 德国 |
2 | 艾哈迈特·阿里·拜丹 | 安卡拉 | 35 | 土耳其 |
三 | 安东尼奥·莫雷诺·塔克尔í一 | Mé西科 | 40 | 墨西哥 |
4 | 詹姆斯邦德 | 伦敦 | 25 | 英国 |
5 | 兹拉坦İ布拉希莫维奇 | 卢利亚 | 60 | 瑞典 |
更新表
我们将从一个简单的更新表示例开始。我们将只更新单个记录的单个值。我们将更新Zlatan的年龄值İ布拉希莫维奇用它的身份证。我们将设定兹拉坦的年龄İ卜拉希莫维奇到38号。
UPDATE UsersSET Age=38WHERE ID=5;
更新多个记录
更新记录可用于在单个更新查询执行中更新多个记录。我们必须指定一些条件来匹配给定表上的多个记录并更新给定列。在本例中,我们将显示年龄超过30岁的用户所在的国家。
UPDATE UsersSET Country='Turkey'WHERE Age>30;
更新多列
我们可以为给定的条件更新多个列。这里我们需要通过用逗号分隔列和值对来指定它们。在这个例子中,我们将更新年龄超过30岁的用户的国家和城市值 Turkey
城市作为 Ankara
.
UPDATE UsersSET Country='Turkey', City='Ankara'WHERE Age>30;
更新特定列的所有表行/记录
在某些情况下,我们可能需要为特定列更新整个表或表中的所有行。在这种情况下,我们不需要条件,因为我们将匹配所有表行。在本例中,我们将设置所有用户表记录 Age
对客户的价值 30
.
UPDATE UsersSET Age=30;
根据ID列更新
在应用程序开发过程中,我们通常会编写一些SQL查询。updatesql查询是最常用的查询之一。几乎每个应用程序都有一些表 ID
列。我们通常使用ID值来更新表。在这个例子中,我们将展示如何根据ID进行更新。
UPDATE UsersSET Age=30WHERE ID=1;
或者我们可以更新那些身份证号码高于3的记录。
UPDATE UsersSET Age=30WHERE ID>1;
使用BETWEEN子句更新
SQL更新的另一个有用场景是使用with-BETWEEN子句或条件来匹配要更新的记录。我们可以使用 BETWEEN
如果记录值介于此范围之间,则将更新。在本例中,我们将把国家更新为年龄在30到40岁之间的土耳其。
UPDATE UsersSET Country='Turkey'WHERE Age BETWEEN 30 AND 40;
使用SQL Select从其他表更新表
到目前为止,我们已经通过在SQL查询中显式地、直接地提供数据来更新数据。在复杂的数据库和应用程序中,可以从其他表中提供数据。我们可以通过使用updatesql语句从其他表获取数据来更新数据。我们将使用一个名为Cities的外部表,其中我们将根据Cities表更新Users表记录的Country值。
UPDATE UsersSET Country=(SELECT Country FROM Cities WHERE Cities.City = Users.City)WHERE (SELECT Country FROM Cities WHERE Cities.City=Users.City);
使用SQL内部联接更新
在前面的示例中,我们已经从另一个名为Cities的表中更新了Users表。我们可以通过使用内部joinsql语句来实现这一点。该场景与前面的示例相同。我们将使用一个名为Cities的外部表,其中我们将根据Cities表更新Users表记录的Country值。
UPDATE UsersSET Users.Country = Cities.CountryFROM UsersINNER JOIN CitiesON Users.City =Cities.City;
相关文章: 最有用的SQL命令列表及其示例