MySQL基础教程
01、MySQLMariaDB 基础教程
02、MySQL 简介
03、MySQL MariaDB 安装
04、MySQL 管理
05、MySQL 日常管理
06、MySQL PHP 语法
07、MySQL 创建连接
08、MySQL 获取数据库列表
09、MySQL 创建数据库
10、MySQL 删除数据库
11、MySQL 选择数据库
12、MySQL 数据类型
13、MySQL 列出数据表
14、MySQL 创建数据表
15、MySQL 删除表
16、MySQL 插入数据
17、MySQL 获取插入数据的 ID
18、MySQL SELECT FROM 查询数据
19、MySQL WHERE 子句有条件的查询数据
20、MySQL UPDATE 更新数据
21、MySQL DELETE FROM 语句删除数据
22、MySQL 返回删改查受影响的行数
23、MySQL LIKE 子句模糊查询数据
24、MySQL UNION 操作符查询多张表
25、MySQL ORDER BY 排序
26、MySQL GROUP BY 分组查询数据
27、MySQL JOIN 进行多表查询
28、MySQL NULL 值处理
29、MySQL REGEXP 子句正则表达式查询
30、MySQL 数据库事务
31、MySQL ALTER 命令
32、MySQL 索引
33、CREATE TEMPORARY TABLE 创建临时表
34、MySQL DROP TABLE 删除临时表
35、MySQL INSERT INTO SELECT 复制表
36、MySQL 获取服务器元数据
37、MySQL 自增序列 AUTO_INCREMENT
38、MySQL 处理重复数据
39、MySQL 安全及防止 SQL 注入攻击
40、MySQL 导出数据
41、MySQL 导入数据
本文档使用 MrDoc 发布
-
+
首页
20、MySQL UPDATE 更新数据
如果需要修改或更新 MySQL 中某个表中的数据,可以使用 UPDATE SQL 语句 ### **UPDATE SQL 语句语法** ------------ UPDATE SQL 语句修改数据的通用语法格式如下 ```python UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause] ``` - 可以同时更新一个或多个字段 - 可以在 WHERE 子句中指定任何条件 - 可以在一个单独表中同时更新数据 - 如果没有 WHERE 语句,那么会更新表中的全部数据 **注意: 不使用 WHERE 子句将数据表的全部数据进行更新,所以要慎重** ### **通过命令提示符更新数据** ------------ 可以在mysql> 命令提示窗口中执行 UPDATE SQL 语句更新表中的数据 下面的代码使用 UPDATE SQL 语句将 name='Python' 的数据行中的 url 改成 https://baidu.com/' ```python MariaDB [souyunku]> SELECT * FROM tbl_language WHERE BINARY name='Python'; +----+--------+---------------------+------------+ | id | name | url | founded_at | +----+--------+---------------------+------------+ | 1 | Python | https://baidu.com | 1991-02-20 | +----+--------+---------------------+------------+ 1 row in set (0.00 sec) MariaDB [souyunku]> SELECT * FROM tbl_language WHERE name='Python'; +----+--------+---------------------+------------+ | id | name | url | founded_at | +----+--------+---------------------+------------+ | 1 | Python | https://baidu.com | 1991-02-20 | +----+--------+---------------------+------------+ 1 row in set (0.00 sec) MariaDB [souyunku]> UPDATE tbl_language SET url='https://baidu.com/' WHERE name='Python'; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0 MariaDB [souyunku]> SELECT * FROM tbl_language WHERE name='Python'; +----+--------+----------------------+------------+ | id | name | url | founded_at | +----+--------+----------------------+------------+ | 1 | Python | https://baidu.com/ | 1991-02-20 | +----+--------+----------------------+------------+ 1 row in set (0.00 sec) ``` 如果省略 WHERE 语句,那么将更新全部的数据,下面的 SQL 语句将所有的 name 字段改成 Java ```python MariaDB [souyunku]> SELECT * FROM tbl_language; +----+--------+----------------------------+------------+ | id | name | url | founded_at | +----+--------+----------------------------+------------+ | 1 | Python | https://baidu.com/ | 1991-02-20 | | 2 | PHP | http://www.php.net | 1994-01-01 | | 3 | Ruby | https://www.ruby-lang.org/ | 1996-12-25 | +----+--------+----------------------------+------------+ 3 rows in set (0.00 sec) MariaDB [souyunku]> UPDATE tbl_language SET name='Java'; Query OK, 3 rows affected (0.01 sec) Rows matched: 3 Changed: 3 Warnings: 0 MariaDB [souyunku]> SELECT * FROM tbl_language; +----+------+----------------------------+------------+ | id | name | url | founded_at | +----+------+----------------------------+------------+ | 1 | Java | https://baidu.com/ | 1991-02-20 | | 2 | Java | http://www.php.net | 1994-01-01 | | 3 | Java | https://www.ruby-lang.org/ | 1996-12-25 | +----+------+----------------------------+------------+ 3 rows in set (0.00 sec) ``` ### **复原数据** ------------ 可以在mysql> 命令提示窗口中执行以下语句来复原范例数据 ```python truncate tbl_language; INSERT INTO tbl_language VALUES (1,'Python','https://baidu.com','1991-2-20'), (2,'PHP','http://www.php.net','1994-1-1'), (3,'Ruby','https://www.ruby-lang.org/','1996-12-25'); ``` ### **使用 PHP 脚本更新数据** ------------ PHP可以使用 PDO::exec() 函数更新表中的数据 PDO::exec() 函数只有一个参数,就是想要执行的 SQL 语句 PDO::exec 语法格式 ```python int PDO::exec ( string $statement ) ``` 返回成功修改数据的行数。如果没有数据要更新,则返回 0 | 参数 | 说明 | | --- | --- | | statement | 要被预处理和执行的 SQL 语句,查询中的数据应该被妥善地转义 | **范例** 下面的PHP 代码演示了如何用 PDO_MySQL 更新表 tbl_language 中 name='Python' 的数据 ```python <?php $sql= "UPDATE tbl_language SET url='https://baidu.com/' WHERE name='Python';"; try { $dbh = new PDO('mysql:host=127.0.0.1;dbname=souyunku', 'root', ''); $rs = $dbh->exec($sql); if ( $rs > 0 ) echo "成功将 name='Python' 数据中的 url 改为 'https://ddkk.com/'\n"; else echo "没有数据要更新或者更新失败:",$dbh->errorInfo()[2], "\n"; catch (PDOException $e) { echo "错误!: " , $e->getMessage() , "\n"; ``` 运行以上 PHP 代码,输出结果如下 ```python $ php main.php 成功将 name='Python' 数据中的 url 改为 'https://baidu.com/' ``` 可以在mysql> 中使用下面的 SQL 语句查看 PHP 执行的结果 ```python SELECT * FROM tbl_language; ``` 输出结果 ```python MariaDB [souyunku]>` SELECT * FROM tbl_language; +----+--------+----------------------------+------------+ | id | name | url | founded_at | +----+--------+----------------------------+------------+ | 1 | Python | https://baidu.com/ | 1991-02-20 | | 2 | PHP | http://www.php.net | 1994-01-01 | | 3 | Ruby | https://www.ruby-lang.org/ | 1996-12-25 | +----+--------+----------------------------+------------+ ```
李智
2025年3月17日 13:30
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码