sql语句学习教程06_update_sql update_update语句_update语法_sql增删改语句

教程发布:风哥 教程分类:MySQL教程 更新日期:2020-03-05 浏览学习:2322

sql语句学习教程06_update_sql update_update语句_update语法_sql增删改语句
数据库就是用来存储数据的,所有的数据都根据业务分门别类,存储在对应的表中,所以数据的操作,其实就是对表的数据进行增删改查操作,这些操作采用的是标准SQL的DML操作语言,如insert、delete、update语句,接下来风哥为大家介绍如何使用update对数据进行修改操作。

1. SQL UPDATE语句简介
要更改表中的现有数据,请使用UPDATE语句。 以下是UPDATE语句的语法:
fgedu.net @mysql>UPDATE table_name
SET column1 = value1,
 column2 = value2
WHERE
    condition;
SQL
在上面的语法中 -

首先,在UPDATE子句中指明要更新的表。其次,在SET子句中指定要修改的列。 SET子句中未列出的列的值不会被修改。第三,指定WHERE子句中要更新的行。
UPDATE语句根据WHERE子句中的条件影响表中的一行或多行。 例如,如果WHERE子句包含主键表达式,则UPDATE语句仅更改一行。
但是,将修改WHERE条件评估为true的任何行。 因为WHERE子句是可选的,所以,如果省略它,表中的所有行都将受到影响。

2. SQL UPDATE语句示例
我们将使用fgedu_yg和fgedu_bm表来演示如何使用UPDATE语句。

1)UPDATE更新一行示例
假设有一个员工编号(yg_id)的值为:202,在fgedu_yg表中查询数据记录,如下所示 -
fgedu.net @mysql> select first_name,last_name from fgedu_yg where yg_id=202;
+------------+-----------+
| first_name | last_name |
+------------+-----------+
| itpux          | fgedu      |
+------------+-----------+
1 row in set

要将last_name字段的值从fgedu改为fgjy,请使用以下UPDATE语句:
fgedu.net @mysql>UPDATE fgedu_yg
SET
    last_name = 'fgjy'
WHERE
    yg_id = 202;

数据库系统更新了yg_id为202的记录last_name列的值。可以使用以下SELECT语句对其进行验证。
fgedu.net @mysql>SELECT
    yg_id,
    first_name,
    last_name
FROM
    fgedu_yg
WHERE
    yg_id = 202;

执行上面查询语句,得到以下结果 -
+-------------+------------+-----------+
| yg_id | first_name | last_name |
+-------------+------------+-----------+
|   202 | itpux         | fgjy     |
+-------------+------------+-----------+
1 row in set

2)UPDATE多行示例
现在,要把所有工资低于2800的员工全部提高到3500,在更新数据之前,让我们先来看看有有哪些工资低于2800的员工。
fgedu.net @mysql>SELECT
    yg_id,
    first_name,
    last_name,salary
FROM
    fgedu_yg
WHERE
    salary<3500;
+-------------+------------+-----------+--------+
| yg_id | first_name | last_name | salary |
+-------------+------------+-----------+--------+
|         106 | itpux01     | fgjy     | 2900   |
|         107 | itpux02      | fgjy     | 2800   |
|         108 | itpux03        | fgjy     | 2600   |
|         109 | itpux04      | fgjy     | 2800   |
|         116 | itpux05      | Liu       | 2700   |
+-------------+------------+-----------+--------+
5 rows in set

执行以下UPDATE语句,以更新工资为:3500。
fgedu.net @mysql>UPDATE
    fgedu_yg
SET
    salary=3500
WHERE
    salary<3500;

3)带有子查询示例的SQL UPDATE
有时,当员工更改姓氏(last_name)时,只更新fgedu_yg表而不更新fgedu_bm表。要确保子项的姓氏(last_name)始终与fgedu_yg表中父项的姓氏(last_name)匹配,请使用以下语句:
fgedu.net @mysql>UPDATE fgedu_bm
SET last_name = (
    SELECT
        last_name
    FROM
        fgedu_yg
    WHERE
        yg_id = fgedu_bm.yg_id
);

由于省略了WHERE子句,因此UPDATE语句更新了fgedu_bm表中的所有行。在SET子句中,我们使用子查询而不是使用文字值来从fgedu_yg表中获取相应的last_name值。

网站声明:本文由风哥整理发布,转载请保留此段声明,本站所有内容将不对其使用后果做任何承诺,请读者谨慎使用!
【上一篇】sql语句学习教程07_update_update与join_update语句_update语法_sql增删改语句
【下一篇】sql语句学习教程05_select排序_select分组_select查询_select语句_sql查询语句