更新和删除数据

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

16.3 更新和删除的指导原则

前一节使用的UPDATEDELETE语句都有WHERE子句,这样做的理由很充分。如果省略了WHERE子句,则UPDATEDELETE将被应用到表中所有的行。换句话说,如果执行UPDATE而不带WHERE子句,则表中每一行都将用新值更新。类似地,如果执行DELETE语句而不带WHERE子句,表的所有数据都将被删除。

下面是许多SQL程序员使用UPDATEDELETE时所遵循的重要原则。

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

若是SQL没有撤销(undo)按钮,应该非常小心地使用UPDATEDELETE,否则你会发现自己更新或删除了错误的数据。

时间: 2024-10-10 23:01:04

更新和删除数据的相关文章

Ado.Net基础拾遗二:插入,更新,删除数据

插入数据 1 public void InsertDataToSQL() 2 { 3 string conStr = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString; 4 SqlConnection conn = new SqlConnection(conStr); 5 conn.Open(); 6 7 SqlCommand cmd = new SqlCommand

mySQL教程 第5章 插入 更新与删除数据

第5章 插入 更新与删除数据 使用SQL Manager管理工具连接到schoolDB.由于三张表都设置了主键,因此,以下练习中插入的记录,主键不能重. 插入数据 1. 练习:为表的所有字段插入数据 为表中所有字段插入数据,可以不用指定列 其中的into可以省去 insert into TStudent values ('00008','白安','男','132302197604044565','19760404', '[email protected]','JAVA','20120803')

在DataTable中更新、删除数据

/*在DataTable中选择记录*/            /* 向DataTable中插入记录如上,更新和删除如下:             * ----但是在更新和删除前,首先要找出要更新和删除的记录.             * 一种方法是遍历DataRow,搜索想要的记录,             * --〉然而更聪明的办法是使用DataTable.Select方法:table.Select();             * table.Select();//返回DataRow[],可

php+mysqli实现批量执行插入、更新及删除数据的方法

本文实例讲述了php+mysqli实现批量执行插入.更新及删除数据的方法.分享给大家供大家参考.具体如下: mysqli批量执行插入/更新/删除数据,函数为 multi_query(). 下面的代码只是批量插入数据,事实上,插入数据.更新数据.删除数据等可以混合一起执行.查询时使用该函数,读取数据有点不太一样,具体参考如下代码: <?php //1.创建数据库连接对象 $mysqli = new MySQLi("localhost","root","

MariaDB SQL 更新和删除数据

为了凸显数据库操作的更为重要的主题,以下内容置顶. 更新和删除数据的准则: 不要在执行UPDATE或DELETE时不使用WHERE子句,除非你真的打算更新或删除每一行. 确保每个表都有主键,并且只要有可能都将其用于WHERE子句. 在使用带有WHERE子句的UPDATE或DELETE之前,先用SELECT语句测试,确保过滤除了正确的记录. 在使用数据库时,实施参照完整性以便MariaDB不允许删除那些数据关联其他表中的数据的行. 更新数据 UPDATE customers SET cust_em

JDBC增加、更新、删除数据

JDBC增加.更新.删除数据 st.executeUpdate(sql) 进行插入.更新.删除操作返回的是受影响的记录的条数 注意:输入的sql语句中,vachar类型记住加单引号 完整代码如下: public class JDBCTest { //建立连接 public static Connection getConnection(){ Connection conn=null; try { Class.forName("com.mysql.cj.jdbc.Driver").new

MySQL必知应会-第20章-更新和删除数据

第20章-更新和删除数据 本章介绍如何利用UPDATE和DELETE语句进一步操纵表数据. 20.1 更新数据 为了更新(修改)表中的数据,可使用UPDATE语句.可采用两种方式使用UPDATE; 更新表中特定行; 更新表中所有行.下面分别对它们进行介绍.不要省略WHERE子句 在使用UPDATE时一定要注意细心.因为稍不注意,就会更新表中所有行.在使用这条语句前,请完整地阅读本节.UPDATE与安全 可以限制和控制UPDATE语句的使用,更多内容请参见第28章. UPDATE语句非常容易使用,

使用Amazon EMR和Apache Hudi在S3上插入,更新,删除数据

将数据存储在Amazon S3中可带来很多好处,包括规模.可靠性.成本效率等方面.最重要的是,你可以利用Amazon EMR中的Apache Spark,Hive和Presto之类的开源工具来处理和分析数据. 尽管这些工具功能强大,但是在处理需要进行增量数据处理以及记录级别插入,更新和删除场景时,仍然非常具有挑战. 与客户交谈时,我们发现有些场景需要处理对单条记录的增量更新,例如: 遵守数据隐私法规,在该法规中,用户选择忘记或更改应用程序对数据使用方式的协议. 使用流数据,当你必须要处理特定的数

第七章 插入、更新与删除数据

插入数据 1.为表左右字段插入数据 insert into 表名 values (值1,值2,……) 或 insert into 表名 (属性1,属性2,……) values (值1,值2……) 2.为指定字段插入数据 insert into 表名 (属性1,属性2,……) values (值1,值2……) 3.同时插入多条记录 insert into 表名 [(属性列表)] values(取值列表),(取值列表2),……: 4.将查询结果插入到表中 insert into 表名1 (属性列表1

主题:Mybatis3.0查询,保存,更新,删除数据。

近来打算开发一个技术框架,并应用此框架开发出一个论坛,开始打算用sturts2+spring+hibernate+jquery为基础,然后再进行封装,最后形成技术框架,但通过此网站获知mybatis比hibernate更灵活,实用.因此开始逐步接触mybatis. 以下是mybatis3.0的开发实例,使用的java环境jdk5.0,ide为eclipse3.7,数据库是oracle11g. 1.数据环境配置 Xml代码   <?xml version="1.0" encodin