前提要述:参考书籍《MySQL必知必会》
6.1 更新数据

为了更新(修改)表中的数据,可使用UPDATE语句。可采用两种方式使用UPDATE:

更新表中特定的行;
更新表中所有的行。
UPDATE语法的结构由3部分组成:

要更新的表;
列名和它们的新值;
确定要更新行的过滤条件(WHERE关键字)。
格式:

UPDATE

SET field1=newValue1, field2=newValue2,...
WHERE condition;
解释:

SET命令用来将新值赋给被更新的列。
使用WHERE子句来告诉MySQL要更新哪一行,一般会选择一个可以唯一区别其他行的字段作为条件。如果没有WHERE子句那么就会更新表中所有的行,这是非常致命的问题。
比如:在学生表中修改李四的性别:

UPDATE student SET stu_sex='女' WHERE stu_name='李四';
如果为了删除某个列的值,则可以设置为NULL(假设表定义允许NULL值)

在UPDATE语句中可以使用子查询的结果来更新数据;如果在更新一行或多行时出现一个错误,则整个UPDATE操作都会被取消(错误发生前更新的所有列被恢复到它们原来的值)。即使是错误,如果要继续执行更新,则可以使用IGNORE关键字。

UPDATE IGNORE

...;
6.2 删除数据

为了将一个表中的某一行删除,使用DELETE语句。可以有两种方式使用DELETE:

从表中删除特定的行;
从表中删除所有行。
格式:

DELETE FROM

WHERE condition;
解释:

DELETE不需要列名和通配符。DELETE删除整行而不是删除列 。如果要删除列,使用UPDATE。
DELETE跟UPDATE一样,都必须要有WHERE,即指定要删除哪一行,所以必须注意;除非你要删除表中全部数据,那就不加WHERE。
WHERE一般指定的是能够唯一区分行的字段,比如主键,名字(假设没有重名的话)
例如:删除学生表中名为李四的学生:

DELETE FROM student WHERE stu_name='李四';
如果想要更快的从表中删除所有的行,不要使用DELETE,使用TRUNCATE TABLE语句,它完成相同的工作,但是速度更快。因为TRUNCATE实际是删除原来的表并重新创建一个表,而不是逐行删除表中的数据。

6.3 更新和删除的指导原则

SQL程序员使用UPDATE和DELETE必须遵循的习惯:

除非确实打算更新和删除每一行,否则绝不要使用不带WHERE子句的UPDATE或DELETE语句。
保证每个表都是有主键的,尽可能像WHERE子句那样使用它(可以指定各主键,多个值或值的范围)。
在对UPDATE或DELETE语句使用WHERE子句前,应该先用SELECT查询语句进行测试,保证它过滤的是正确的记录,以防止编写WHERE子句不正确。
使用强制实施引用完整性的数据库,这样MySQL将不允许删除具有与其他表相关联的数据的行(外键)。
MySQL没有撤销(undo)按钮,所以应该小心使用UPDATE和DELETE语句。

MySQL快速回顾:更新和删除操作的更多相关文章

  1. MySQL快速回顾:高级查询操作

    8.1 排序数据 检索出的数据并不是以纯粹的随机顺序显示的.如果不排序,数据一般将以它在底层表中出现的顺序显示.这可以是数据最初添加到表中的顺序.但是,如果数据后来进行过更新或删除,则此顺序将会受到M ...

  2. Entity Framework 6 Recipes 2nd Edition(10-10)译 - > 为TPH继承的插入、更新、删除操作映射到存储过程

    10-10. 为TPH继承的插入.更新.删除操作映射到存储过程 问题 TPH继承模型,想把它的插入.修改.删除操作映射到存储过程 Solution 假设数据库有一个描述不同种类的产品表(Product ...

  3. ASP入门(二十三)- 数据库插入、更新和删除操作

    我们这里介绍如何使用 Recordset 对象进行插入.更新和删除操作,顺便和 SQL 语句对比. 插入记录 AddNew 方法用于插入一条记录,首先打开一个记录集,并且这个记录具备可写特性,而后调用 ...

  4. MySQL快速回顾:数据库和表操作

    前提要述:参考书籍<MySQL必知必会> 利用空闲时间快速回顾一些数据库基础. 4.1 连接 在最初安装MySQL,可能会要求你输入一个管理登录(通常为root)和一个口令(密码). 连接 ...

  5. SQL快速入门 ( MySQL快速入门, MySQL参考, MySQL快速回顾 )

    SQL 先说点废话,很久没发文了,整理了下自己当时入门 SQL 的笔记,无论用于入门,回顾,参考查询,应该都是有一定价值的,可以按照目录各取所需.SQL数据库有很多,MySQL是一种,本文基本都是SQ ...

  6. mysql---级联更新和删除操作

    我们通常有这样的需求:删除表Table 1中记录,需要同时删除其它表中与Table 1有关的若干记录. 对于这种,我们有两种解决方法: 一,使用innodb表的外键约束 ALTER TABLE `sc ...

  7. Django记录数据库创建、更新、删除操作开源插件推荐

    github: django-simple-history - 安装 $ pip install django-simple-history - 配置 在Settings中添加 INSTALLED_A ...

  8. MySQL<添加、更新与删除数据>

    添加.更新与删除数据 添加数据 为表中所有字段添加数据 INSERT INTO 表名(字段名1,字段名2,……) VALUES(值1,值2,……); insert into 表名 values(值1, ...

  9. MySQL从删库到跑路(六)——SQL插入、更新、删除操作

    作者:天山老妖S 链接:http://blog.51cto.com/9291927 一.插入数据 1.为表的所有字段插入数据 使用基本的INSERT语句插入数据要求指定表名称和插入到新记录的值. IN ...

随机推荐

  1. Array.from()类数组转化为数组的用法

    类数组对象转化为数组 let arrayLike = { '0': 'a', '1': 'b', '2': 'c', length: 3 }; let arr = Array.from(arrayLi ...

  2. nginx服务器究竟是怎么执行php项目

    https://jingyan.baidu.com/article/4f34706e3af779e387b56dc7.html CGI全称是“公共网关接口”(Common Gateway Interf ...

  3. js 制作分页

    如图所示 在html中调用方法 getpage(7, 1, 1, 'URL') 1.page.js文件 代码 function getpage(count, countPage, pageIndex, ...

  4. P1101 走迷宫一

    题目描述 大魔王抓住了爱丽丝,将她丢进了一口枯井中,并堵住了井口. 爱丽丝在井底发现了一张地图,他发现他现在身处一个迷宫当中,从地图中可以发现,迷宫是一个N*M的矩形,爱丽丝身处迷宫的左上角,唯一的出 ...

  5. es6—变量的解构赋值

    数组的解构赋值 ]]]]]]] = []}} = {}} = {}})]: first]: last} = arr} = {}) {}))}))}) {}))}))].]]]])})] }}} = { ...

  6. P1007 N钱M鸡问题

    题目描述 已知公鸡 \(5\) 元钱一只,母鸡 \(3\) 元钱一只,小鸡 \(3\) 只 \(1\) 元钱. 告诉你一个整数 \(n(1 \le n \le 1000)\) ,你现在要花 \(n\) ...

  7. JSON怎样添加注释

    今天在写一个程序的时候发现了一个问题,在json文件中添加注释之后,程序就出现bug了 于是,去搜了一下这个问题的相关解释,在这里和大家分享一下: JSON为什么不能添加注释? 这位外国友人给出的解释 ...

  8. 备战省赛组队训练赛第十六场(UPC)

    传送门 题解: by 烟台大学 (提取码:8972)

  9. LeekCode解题记录

    昨天晚上有个LeekCode的比赛,两个半小时解五题,轻松解决前两题后,卡在第三题,还剩半小时时放弃,开始解第五题,解完但未验证通过,第四题只看了下题目. 排名第一的大佬只用了36分钟全部写完. 差距 ...

  10. 2018.11.9浪在ACM集训队第四次测试赛

    2018.11.9浪在ACM集训队第四次测试赛 整理人:朱远迪 A 生活大爆炸版 石头剪刀布           参考博客:[1] 刘凯 B 联合权值            参考博客: [1]田玉康 ...