19、UPDATE:修改数据(更新数据)

在 MySQL 中,可以使用 UPDATE 语句来修改、更新一个或多个表的数据。

UPDATE 语句的基本语法

使用 UPDATE 语句修改单个表,语法格式为:

UPDATE <表名> SET 字段 1=1 [,字段 2=2] [WHERE 子句 ]
[ORDER BY 子句] [LIMIT 子句]

语法说明如下:

  • <表名>:用于指定要更新的表名称。
  • SET 子句:用于指定表中要修改的列名及其列值。其中,每个指定的列值可以是表达式,也可以是该列对应的默认值。如果指定的是默认值,可用关键字
    DEFAULT 表示列值。
  • WHERE 子句:可选项。用于限定表中要修改的行。若不指定,则修改表中所有的行。
  • ORDER BY 子句:可选项。用于限定表中的行被修改的次序。
  • LIMIT 子句:可选项。用于限定被修改的行数。

注意:修改一行数据的多个列值时,SET 子句的每个值用逗号分开即可。

修改表中的数据
【实例 1】在 tb_courses_new 表中,更新所有行的 course_grade 字段值为 4,输入的 SQL 语句和执行结果如下所示。

mysql> UPDATE tb_courses_new
    -> SET course_grade=4;
mysql> SELECT * FROM tb_courses_new;
+-----------+-------------+--------------+------------------+
| course_id | course_name | course_grade | course_info      |
+-----------+-------------+--------------+------------------+
|         1 | Network     |            4 | Computer Network |
|         2 | Database    |            4 | MySQL            |
|         3 | Java        |            4 | Java EE          |
|         4 | System      |            4 | Operating System |
+-----------+-------------+--------------+------------------+

根据条件修改表中的数据

【实例 2】在 tb_courses 表中,更新 course_id 值为 2 的记录,将 course_grade 字段值改为 3.5,将 course_name 字段值改为“DB”,输入的 SQL 语句和执行结果如下所示。

mysql> UPDATE tb_courses_new
    -> SET course_name='DB',course_grade=3.5
    -> WHERE course_id=2;
mysql> SELECT * FROM tb_courses_new;
+-----------+-------------+--------------+------------------+
| course_id | course_name | course_grade | course_info      |
+-----------+-------------+--------------+------------------+
|         1 | Network     |            4 | Computer Network |
|         2 | DB          |          3.5 | MySQL            |
|         3 | Java        |            4 | Java EE          |
|         4 | System      |            4 | Operating System |
+-----------+-------------+--------------+------------------+

注意:保证 UPDATE 以 WHERE 子句结束,通过 WHERE 子句指定被更新的记录所需要满足的条件,如果忽略 WHERE 子句,MySQL 将更新表中所有的行。

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ESX 配置指南 目录 更新的信息 7 关于本文档 9 1 ESX 配置简介 11 网络 2 网络简介 15 网络概念概述 15 网络服务 16 在 vSphere Client 中查看网络信息 16 在 vSphere Client 中查看网络适配器信息 16 3 vNetwork 标准交换机的基本网络 19 vNetwork 标准交换机 19 端口组 20 虚拟机的端口组配置 20 VMkernel 网络配置 21 服务控制台配置 23 vNetwork 标准交换机属性 25 4 vNetwork 分布式交换机的基本网络 29 vNetwork 分布式交换机架构 29 配置 vNetwork 分布式交换机 30 dvPort 组 32 专用 VLAN 33 配置 vNetwork 分布式交换机网络适配器 35 在 vNetwork 分布式交换机上配置虚拟机网络 39 5 高级网络 41 Internet 协议版本 6 41 网络策略 42 更改 DNS 和路由配置 53 MAC 地址 54 TCP 分段清除和巨帧 55 NetQueue 和网络性能 58 VMDirectPath Gen I 58 VMware, Inc. 3 6 网络佳做法、场景和故障排除 61 网络佳做法 61 挂载 NFS 卷 62 软件 iSCSI 存储器的网络配置 62 在刀片服务器上配置网络 63 故障排除 64 存储器 7 存储器简介 69 关于 ESX 存储器 69 物理存储器的类型 69 支持的存储适配器 71 目标和设备表示形式 71 关于 ESX 数据存储 73 比较存储器类型 75 在 vSphere Client 中查看存储器信息 76 8 配置 ESX 存储器 81 本地 SCSI 存储器 81 光纤通道存储器 82 iSCSI 存储器 82 数据存储刷新和存储重新扫描操作 91 创建 VMFS 数据存储 92 网络附加存储 93 创建诊断分区 95 9 管理存储器 97 管理数据存储 97 更改 VMFS 数据存储属性 99 管理重复 VMFS 数据存储 101 在 ESX 中使用多路径 103 精简置备 110 关闭 vCenter Server 存储筛选器 112 10 裸设备映射 115 关于裸机映射 115 裸机映射特性 118 管理映射的 LUN 121 安全 11 ESX 系统的安全 127 ESX 架构和安全功能 127 安全资源和信息 133 ESX 配置指南 4 VMware, Inc. 12 确保 ESX 配置的安全 135 使用防火墙确保网络安全 135 通过 VLAN 确保虚拟机安全 142 确保虚拟交换机端口安全 146 确保 iSCSI 存储器安全 147 13 身份验证和用户管理 151 通过身份验证和权限确保 ESX 的安全 151 ESX 加密和安全证书 157 14 服务控制台安全 165 常规安全建议 165 登录到服务控制台 166 服务控制台防火墙配置 166 密码限制 170 密码强度 175 setuid 和 setgid 标记 176 SSH 安全 177 安全修补程序和安全漏洞扫描软件 178 15 安全部署和建议 181 常见 ESX 部署的安全措施 181 虚拟机建议 184 主机配置文件 16 管理主机配置文件 191 主机配置文件使用情况模型 191 访问主机配置文件视图 192 创建主机配置文件 192 导出主机配置文件 193 导入主机配置文件 193 编辑主机配置文件 193 管理配置文件 195 检查合规性 198 附录 A ESX 技术支持命令 203 B 用于 ESX 的 Linux 命令 207 C 使用 vmkfstools 209 vmkfstools 命令语法 209 目录 VMware, Inc. 5 vmkfstools 选项 210
在PyQt中,可以通过以下步骤实现TableWidget双击单元格修改数据: 1. 在双击事件中获取单元格信息: ```python def cell_was_double_clicked(self, row, column): item = self.tableWidget.item(row, column) if item is not None: # 获取单元格中的文本 text = item.text() ``` 2. 创建一个可编辑的QLineEdit控件,并将其设置为单元格的小部件: ```python def cell_was_double_clicked(self, row, column): item = self.tableWidget.item(row, column) if item is not None: # 获取单元格中的文本 text = item.text() # 创建一个可编辑的QLineEdit控件 line_edit = QLineEdit(text) # 将QLineEdit设置为单元格的小部件 self.tableWidget.setCellWidget(row, column, line_edit) ``` 3. 为QLineEdit控件设置完成编辑后的槽函数: ```python def cell_was_double_clicked(self, row, column): item = self.tableWidget.item(row, column) if item is not None: # 获取单元格中的文本 text = item.text() # 创建一个可编辑的QLineEdit控件 line_edit = QLineEdit(text) # 将QLineEdit设置为单元格的小部件 self.tableWidget.setCellWidget(row, column, line_edit) # 连接完成编辑后的槽函数 line_edit.editingFinished.connect(lambda: self.update_cell(row, column, line_edit)) ``` 4. 实现完成编辑后的槽函数,将编辑后的数据更新到单元格中: ```python def update_cell(self, row, column, line_edit): # 获取编辑后的文本 text = line_edit.text() # 创建一个QTableWidgetItem对象,并将编辑后的文本设置为其文本 item = QTableWidgetItem(text) # 将QTableWidgetItem对象设置为单元格的项 self.tableWidget.setItem(row, column, item) ``` 完整代码如下: ```python from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QLineEdit class TableWidgetExample(QTableWidget): def __init__(self): super().__init__() # 设置行列数 self.setRowCount(4) self.setColumnCount(2) # 设置表格头 self.setHorizontalHeaderLabels(['Name', 'Age']) # 设置初始数据 self.setItem(0, 0, QTableWidgetItem('Tom')) self.setItem(0, 1, QTableWidgetItem('18')) self.setItem(1, 0, QTableWidgetItem('Jerry')) self.setItem(1, 1, QTableWidgetItem('20')) self.setItem(2, 0, QTableWidgetItem('Mike')) self.setItem(2, 1, QTableWidgetItem('22')) self.setItem(3, 0, QTableWidgetItem('Lucy')) self.setItem(3, 1, QTableWidgetItem('19')) # 连接双击事件 self.cellDoubleClicked.connect(self.cell_was_double_clicked) def cell_was_double_clicked(self, row, column): item = self.item(row, column) if item is not None: # 获取单元格中的文本 text = item.text() # 创建一个可编辑的QLineEdit控件 line_edit = QLineEdit(text) # 将QLineEdit设置为单元格的小部件 self.setCellWidget(row, column, line_edit) # 连接完成编辑后的槽函数 line_edit.editingFinished.connect(lambda: self.update_cell(row, column, line_edit)) def update_cell(self, row, column, line_edit): # 获取编辑后的文本 text = line_edit.text() # 创建一个QTableWidgetItem对象,并将编辑后的文本设置为其文本 item = QTableWidgetItem(text) # 将QTableWidgetItem对象设置为单元格的项 self.setItem(row, column, item) if __name__ == '__main__': app = QApplication([]) example = TableWidgetExample() example.show() app.exec_() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值