mysql 数据库,更新字段语句:

一、UPDATE:

UPDATE的功能是更新表中的数据。这的语法和INSERT的第二种用法相似。必须提供表名以及SET表达式,在后面可以加WHERE以限制更新的记录范围。

UPDATE table_anem SET column_name1 = value1, column_name2 = value2, ...

WHERE ... 。

如下面的语句将users表中id等于123的记录的age改为24。

UPDATE users SET age = 24 WHERE id = 123。

同样,可以使用UPDATE更新多个字段的值 UPDATE users SET age = 24, name = 'Mike' WHERE id = 123。

上面的UPDATE语句通过WHERE指定一个条件,否则,UPDATE将更新表中的所有记录的值。

在使用UPDATE更新记录时,如果被更新的字段的类型和所赋的值不匹配时,MySQL将这个值转换为相应类型的值。如果这个字段是数值类型,而且所赋值超过了这个数据类型的最大范围,那么MySQL就将这个值转换为这个范围最大或最小值。如果字符串太长,MySQL就将多余的字符串截去。如果设置非空字段为空,那么将这个字段设置为默认值,数字的默认值是0,字符串的默认值是空串(不是null,是"")。

有两种情况UPDATE不会对影响表中的数据:

1. 当WHERE中的条件在表中没有记录和它匹配时。

2. 将同样的值赋给某个字段时,如将字段abc赋为'123',而abc的原值就是'123'。和INSERT、REPLACE一样,UPDATE也返回所更新的记录数。但这些记录数并不包括满足WHERE条件的,但却未被更新的记录。如下同的UPDATE语句就未更新任何记录。

UPDATE users SET age = 30 WHERE id = 12。

Query OK, 0 rows affected (0.00 sec)。

注意:如果一个字段的类型是TIMESTAMP,这个字段在其它字段更新时自动更新。

在有些时候需要得到UPDATE所选择的行数,而不是被更新的行数。可通过一些API来达到。如MySQL提供的C API提供了一个选项可以得到想要的记录数。而MySQL的JDBC驱动得到的默认记录数也是匹配的记录数。

UPDATE和REPLACE基本类似,但是之间有两点不同。

1. UPDATE在没有匹配记录时什么都不做,而REPLACE在有重复记录时更新,在没有重复记录时插入。

2. UPDATE可以选择性地更新记录的一部分字段。而REPLACE在发现有重复记录时就将这条记录彻底删除,再插入新的记录。也就是说,将所有的字段都更新了。

二、DELETE和TRUNCATE TABLE:

在MySQL中有两种方法可以删除数据,一种是DELETE语句,另一种是TRUNCATE TABLE语句。DELETE语句可以通过WHERE对要删除的记录进行选择。而使用TRUNCATE TABLE将删除表中的所有记录。因此,DELETE语句更灵活。

如果要清空表中的所有记录,可以使用下面的两种方法:

DELETE FROM table1。

TRUNCATE TABLE table1。

其中第二条记录中的TABLE是可选的。

如果要删除表中的部分记录,只能使用DELETE语句。

DELETE FROM table1 WHERE ...。如果DELETE不加WHERE子句,那么和TRUNCATE TABLE是一样的,但有一点不同,那就是DELETE可返回被删除的记录数,而TRUNCATE TABLE返回的是0。

如一个表中有自增字段,使用TRUNCATE TABLE和没有WHERE子句的DELETE删除所有记录后,这个自增字段将起始值恢复成功。如不想这样做的话,可在DELETE语句中加上WHERE,如WHERE 1或WHERE true。

DELETE FROM table1 WHERE 1。

上面的语句在执行时将扫描每一条记录。并不比较,这个WHERE条件永远为true。这样做可保持自增的最大值,由于扫描了所有的记录,执行成本要比没有WHERE子句的DELETE大得多。

DELETE和TRUNCATE TABLE的区别:DELETE可以通过WHERE语句选择要删除的记录。但执行得速度不快。且还可返回被删除的记录数。而TRUNCATE TABLE无法删除指定的记录,且不能返回被删除的记录。但执行得非常快。和标准的SQL语句不同,DELETE支持ORDER BY和LIMIT子句,通过这两个子句,可更好地控制要删除的记录。如当我们只想删除WHERE子句过滤出来的记录的一部分,可以使用LIMIB,如果要删除后几条记录,可通过ORDER BY和LIMIT配合使用。假设要删除users表中name等于"Mike"的前6条记录。可使用如下的DELETE语句:

DELETE FROM users WHERE name = 'Mike' LIMIT 6。

一般MySQL并不确定删除的这6条记录是哪6条,为保险,可使用ORDER BY对记录进行排序。

取消

评论

mysql update两个字段_mysql更新多个字段语句写法!相关推荐

  1. mysql更新多个字段_mysql更新多个字段语句写法!

    mysql 数据库,更新字段语句: 一.UPDATE: UPDATE的功能是更新表中的数据.这的语法和INSERT的第二种用法相似.必须提供表名以及SET表达式,在后面可以加WHERE以限制更新的记录 ...

  2. mysql更新字符串中某个字符串_mysql更新某个字符串字段的部分内容

    如果现在需要Mysql更新字段重部分数据,而不是全部数据,应该采用何种方法呢?下面介绍了两种情况下Mysql更新字段中部分数据的方法,供您参考. Mysql更新字段中部分数据第一种情况: update ...

  3. mysql update多个表_mysql update 多表 (复制)

    定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price:另外一张表是ProductPrice表,我们要将ProductPrice表中的价格字段Price更新为Price表中价 ...

  4. mysql update 几万 非常慢_Mysql优化专题

    优化,一直是面试最常问的一个问题.因为从优化的角度,优化的思路,完全可以看出一个人的技术积累.那么,关于系统优化,假设这么个场景,用户反映系统太卡(其实就是高并发),那么我们怎么优化? 如果请求过多, ...

  5. mysql里两个闪电_mysql命令小结

    MySQL 数据库常用命令 1.MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删 ...

  6. mysql update 批量修改数据_MySQL 中实现数据的批量修改

    今天遇到一个数据的批量更新,查了一下官方文档,还好找到了.英文东东,大家耐心哈 http://dev.mysql.com/doc/refman/5.7/en/update.html 一般在使用数据编辑 ...

  7. MySQL数据库——MySQL UPDATE:修改数据(更新数据)

    在 MySQL 中,可以使用 UPDATE 语句来修改.更新一个或多个表的数据. UPDATE 语句的基本语法 使用 UPDATE 语句修改单个表,语法格式为: UPDATE <表名> S ...

  8. mysql select查询字段_MySQL基础:SELECT查询语句

    Blog:博客园 个人 概述 SELECT语句用于从表中选取/查询数据,结果被存储在一个结果表中(称为结果集). 语法格式 SELECT [ALL | DISTINCT | DISTINCTROW ] ...

  9. mysql中两次排序_MySQL中的两种排序方式: index和filesort

    index :通过有序索引顺序扫描直接返回有序数据,不需要额外的排序,操作效率较高. filesort:通过对返回数据进行排序,filesort 并不代表通过磁盘文件排序,而是说明进行了一个排序操作, ...

最新文章

  1. Ubuntu 用vsftpd 配置FTP服务器
  2. 虚拟机下的CentOS环境中安装Node.js
  3. 一般性网络错误 请检查网络文档_如何编写好的软件设计文档
  4. php版 v2.0,KangPHP v2.0 正式版
  5. 动态规划 - 买卖股票的最佳时机 III
  6. 0114练习 彩票、验证码、双色球的随机数 输出
  7. 系统架构设计师 - 23种设计模式(GOF)
  8. android studio1.5 for mac,适用于Mac的Android Studio 1.5.x随机崩溃
  9. 哪里是我们最好的避风港?
  10. SAP License:CO-第四夜-产品成本核算
  11. 左手用R右手Python系列16——XPath与网页解析库
  12. matlab qpsk实验,MATLAB-QPSK调制与解调
  13. 黑域助手连接服务器才能用吗,黑域app怎么使用?进入黑域详细教程[图]
  14. java 行政区划代码 民政部 json
  15. 保姆级人声录剪混音教程|您的人声不是输给了混音,而是“选择”。(误区)|MZD Studios
  16. 焊接好的CH340G芯片不工作
  17. 2021年黄石二中高考成绩查询,黄石二中2019高考喜报成绩、一本二本上线人数情况...
  18. 【数据结构篇03】栈和队列
  19. fastAPI简单使用
  20. 授时服务器物理隔离,GPS授时设备配备的必要性及其特点

热门文章

  1. LIOM: 一种新的激光惯性里程计和建图方法
  2. 光猫和路由器的区别是什么
  3. 海量数据大课学习笔记(7)-商用短链平台实战-账号微服务+流量包设计-滴课堂
  4. python 矩阵乘法
  5. sql server 2008 刷新缓存
  6. 2022-在mac电脑安装python3------brew方法
  7. 【图解】Java取整函数ceil、floor、round的区别
  8. Docker学习之路05:五分钟用docker compose搭建一个自己的个人博客网站!
  9. 无内鬼,来点程序员笑话
  10. [教程]OpenSEES超简单易懂的入门第一课