1. 更新数据

基本的UPDATE语句,由三部分组成:

  • 要更新的表
  • 列名和它们的新值
  • 确定要更新那些行的过滤条件

更新单列示例:

 UPDATE Customers
SET cust_email = 'kim@thetoystore.com'
WHERE cust_id = '';

更新多列的示例:

 UPDATE Customers
SET cust_contact = 'Sam Roberts',
cust_email = 'sam@toyland.com'
WHERE cust_id = '';

注意:不要省略WHERE 子句

在使用UPDATE 时一定要细心。因为稍不注意,就会更新表中的所有行

提示:在UPDATE 语句中使用子查询

UPDATE 语句中可以使用子查询,使得能用SELECT 语句检索出的数据 更新列数据

提示:FROM 关键字

有的SQL(SQL Server支持)实现支持在UPDATE 语句中使用FROM 子句,用一个表的数据更新另一个表的行。

2. 删除数据

DELETE的两种使用方式:

  • 从表中删除特定的行;
  • 从表中删除所有行。

注意:不要省略WHERE 子句

在使用DELETE 时一定要细心。因为稍不注意,就会错误地删除表中所有行。

示例:

 //FORM 关键字是可选的
DELETE FROM Customers
WHERE cust_id = '';

提示:更快的删除

如果想从表中删除所有行,不要使用DELETE。可使用TRUNCATE TABLE 语句,它完成相同的工作,而速度更快(因为不记录数据的变动)。

3. 更新和删除数据的建议

使用UPDATE 或DELETE 时所遵循的重要原则:

  • 除非确实打算更新和删除每一行,否则绝对不要使用不带WHERE 子句的UPDATE 或DELETE 语句。
  • 保证每个表都有主键,尽可能像WHERE 子句那样使用它(可以指定各主键、多个值或值的范围)。
  • 在UPDATE 或DELETE 语句使用WHERE 子句前,应该先用SELECT 进行测试,保证它过滤的是正确的记录,以防编写的WHERE 子句不正确。
  • 使用强制实施引用完整性的数据库(关于这个内容,请参阅第12 课),这样DBMS 将不允许删除其数据与其他表相关联的行。
  • 有的DBMS 允许数据库管理员施加约束,防止执行不带WHERE 子句的UPDATE 或DELETE 语句。如果所采用的DBMS 支持这个特性,应该使用它。

SQL 必知必会·笔记<14>更新和删除数据的更多相关文章

  1. sql必知必会(第四版) 学习笔记

    还有一个<Sqlserver2008技术内幕>的笔记,也很好!~ http://www.cnblogs.com/liupeng61624/p/4354983.html 温习一遍简单的sql ...

  2. sql必知必会(第四版) 学习笔记一

    温习一遍简单的sql语法,把自己掌握还不够的地方,做了些笔记.... 1 去重复关键词,distinct select distinct sname from student; 2 限制结果top的用 ...

  3. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  4. 【SQL必知必会笔记(2)】检索数据、排序检索数据

    上个笔记中介绍了一些关于数据库.SQL的基础知识,并且创建我们后续练习所需的数据库.表以及表之间的关系,从本文开始进入我们的正题:SQL语句的练习. 文章目录 1.检索数据(SELECT语句) 1.1 ...

  5. 【SQL必知必会笔记(1)】数据库基础、SQL、MySQL8.0.16下数据库、表的创建及数据插入

    文章目录 1.数据库基础 1.1 数据库(database) 1.2 表(table) 1.3 列和数据类型 1.4 行 1.5 主键 2.什么是SQL 3.创建后续练习所需数据库.表(MySQL8. ...

  6. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  7. 0005 《SQL必知必会》笔记01-SELECT语句

    1.SELECT基本语句: SELECT 字段名1,···,字段名n FROM 表名 2.检索所有字段,用"*"替换字段名,这会导致效率低下 SELECT * FROM 表名; 3 ...

  8. 《SQL必知必会》学习笔记二)

    <SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...

  9. SQL语法语句总结(《SQL必知必会》读书笔记)

    一.SQL语句语法 ALTER TABLE ALTER TABLE 用来更新已存在表的结构. ALTER TABLE tablename (ADD|DROP column datatype [NULL ...

随机推荐

  1. Python爬虫项目--爬取链家热门城市新房

    本次实战是利用爬虫爬取链家的新房(声明: 内容仅用于学习交流, 请勿用作商业用途) 环境 win8, python 3.7, pycharm 正文 1. 目标网站分析 通过分析, 找出相关url, 确 ...

  2. 检查mysql表是否损坏的脚本

    #!/bin/bash#此脚本的主要用途是检测mysql服务器上所有的db或者单独db中的坏表#变量说明 pass mysql账户口令 name mysql账号名称 data_path mysql目录 ...

  3. 2018-2019-2 20175234 实验一 Java开发环境的熟悉(Linux + IDEA)

    目录 20175234 实验一 Java开发环境的熟悉(Linux + IDEA) 第一部分 代码及运行结果截图 第二部分 要求 代码及截图 第三部分 题目 需求分析 设计 程序及运行结果 问题和解决 ...

  4. tomcat源码分析-初始化过程

    digester 说明: https://www.cnblogs.com/devilwind/p/8192304.html

  5. laravel控制器之资源控制器

    资源控制器 Laravel 的资源控制器可以让我们很便捷地构建基于资源的 RESTful 控制器,例如,你可能想要在应用中创建一个控制器,用于处理关于文章存储的 HTTP 请求,使用 Artisan ...

  6. Element.querySelector和Element.querySelectorAll和jQuery(element).find(selector)选择器的区别

    <divid="test1"> <a href="http://www.hujuntao.com/">设计蜂巢</a> &l ...

  7. ssh 绕过The authenticity of host '*.*.*.*' can't be established 直接输入密码

    只需要使用命令 ssh webgate@10.129.6.237 -o "StrictHostKeyChecking no" 即可以绕过 insp_ap@inspect02:/ho ...

  8. opencv源码编写规则

    OPENCV作为一种开源的计算机视觉库,我们有必要去了解这个库的一些编码格式及文件结构. 1.文档命名规则 必须将所有功能放入一个或多个.cpp和.hpp文件到OpenCV的相应模块中,或者如果贡献的 ...

  9. kmp循环节

    循环判断   i%(i-next[i]) == 0 && next[i] != 0 循环长度  i-next[i];

  10. Python json和pickle模块

    用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 Json模块提供了四个功能:dumps. ...