MySQL UPDATE 更新语句用法详解与示例

Mysql 教程


MySQL UPDATE 查询是一个 DML 语句,用于修改数据库内 MySQL 表的数据。在现实生活中,记录经常会在一段时间内发生变化。所以我们还需要更新表的值。我们通常需要使用 UPDATE 语句。

UPDATE 语句与SET和WHERE子句一起使用,SET 子句用于更改指定列的值,我们可以一次更新单个或多个列。


语法格式

以下是 UPDATE 命令通用 SQL 语法:

UPDATE table_name     

SET column_name1 = new-value1,   

        column_name2=new-value2, …    

[WHERE Clause]  


参数说明

UPDATE 语句的语法中使用的参数说明如下:

范围说明
table_name我们要更新的表的名称。
column_name我们使用 SET 子句更新的列的名称。如果需要更新多列,通过指定每列中的值,用逗号运算符分隔列。
​WHERE Clause可选项,用于指定需要更新数据的约束条件。如果我们省略这个子句,MySQL 会更新所有行。

UPDATE 语句

以下我们将在 SQL UPDATE 命令使用 WHERE 子句来更新 runoon_tbl 表中指定的数据,以下实例将更新数据表中 runoon_id 为 3 的 runoon_title 字段值:

mysql> UPDATE runoon_tbl SET runoon_title='学习 C++' WHERE runoon_id=3;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT * from runoon_tbl WHERE runoon_id=3;
+-----------+--------------+---------------+-----------------+
| runoon_id | runoon_title | runoon_author | submission_date |
+-----------+--------------+---------------+-----------------+
|         3 | 学习 C++     | RUNOON.COM    | 2016-05-06      |
+-----------+--------------+---------------+-----------------+
1 row in set (0.00 sec)

从结果上看,runoon_id 为 3 的 runoon_title 已被修改。


使用PHP脚本更新数据

PHP 中使用函数 mysqli_query() 来执行 SQL 语句,你可以在 SQL UPDATE 语句中使用或者不使用 WHERE 子句。

注意:不使用 WHERE 子句将数据表的全部数据进行更新,所以要慎重。

该函数与在 mysql> 命令提示符中执行 SQL 语句的效果是一样的。

MySQL UPDATE 语句测试

以下实例将更新 runoon_id 为 3 的 runoon_title 字段的数据。

<?php
$dbhost = 'localhost';  // mysql服务器主机地址
$dbuser = 'root';            // mysql用户名
$dbpass = '123456';          // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
    die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
 
$sql = 'UPDATE runoon_tbl
        SET runoon_title="学习 Python"
        WHERE runoon_id=3';
 
mysqli_select_db( $conn, 'RUNOON' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
    die('无法更新数据: ' . mysqli_error($conn));
}
echo '数据更新成功!';
mysqli_close($conn);
?>

查看执行结果:

mysql> select * from runoon_tbl where runoon_id=3;
+-----------+---------------+---------------+-----------------+
| runoon_id | runoon_title  | runoon_author | submission_date |
+-----------+---------------+---------------+-----------------+
|         3 | 学习 Python   | RUNOON.COM    | 2016-05-06      |
+-----------+---------------+---------------+-----------------+
1 row in set (0.00 sec)

Mysql 教程


相关