更新数据UPDATE语句()
() 由于新添加的BOOK_ID列中所有的值都是NULL因此需要更新该列的值删除查询窗口中的所有语句重新输入下面的SQL命令
USE library;
UPDATE myLibrary SET book_id = WHERE isbn=;
UPDATE myLibrary SET book_id = WHERE isbn=;
UPDATE myLibrary SET book_id = WHERE isbn=;
UPDATE myLibrary SET book_id = WHERE isbn=;
() 单击上方工具栏中的Execute按钮如图所示
() 注意观察下方窗格的Messages选项卡中的条确认消息( row(s) affected)
() 对MYLIBRARY表执行一个SELECT查询以验证BOOK_ID列中的数据已经被更新
SELECT book_id isbn FROM myLibrary;
book_id isbn
NULL
() 下面的查询在一个UPDATE语句中高效地更新了第一条记录中的所有列
USE library;
UPDATE myLibrary SET
isbn =
pages =
title = Letters From The Earth
author = Mark Twain
author = NULL
publisher = Greenbook Publications LLC
publish_date = June
WHERE book_id = ;
() 再次运行步骤()中的SELECT语句验证数据的更改
USE library;
SELECT book_id isbn FROM myLibrary;
book_id isbn
NULL
示例说明
在上面的语句中第一个语句指示RDBMS在LIBRARY数据库的上下文环境中执行命令该语句只需要在会话开始时执行一次即可(关于会话请参见第章)在前面的练习中已经创建了MYLIBRARY表ALTER TABLE命令将向MYLIBRARY表中添加一个数据类型为INTEGER的数值列此时新创建的列仅包含NULL值表示该列中还没有输入任何值接下来的几个UPDATE语句通过在WHERE子句中使用同一个表的ISBN列值作为筛选条件唯一地标识出一条记录并更新该记录中的BOOK_ID列如果在UPDATE语句中不使用WHERE子句那么对于MYLIBRARY表中的所有记录BOOK_ID列都将被相同的一个值更新
从步骤()的SELECT语句返回的查询结果中可以看到只有条记录中的BOOK_ID列具有数据其余记录中的BOOK_ID列依然保持为空
在步骤()中使用UPDATE语句一列接一列地更新了整条记录中的数据在LIBRARY数据库中将该记录更新为一本完全不同的图书由于该图书没有合着的作者因此使用NULL值来填充AUTHOR列的值以指出该列中没有任何数据如果省略对AUTHOR列的赋值该列将保持之前的值
在一个多用户环境中修改数据带来的问题就是在同一时刻可能会有其他用户正在读取或修改数据这引起了很多潜在的数据完整性的问题RDBMS采用多种不同的锁机制来解决这一问题这些锁机制将在第章中进行讨论但不要过多地使用锁机制因为它将潜在地减慢数据库的速度流行的开源数据库(例如MySQL)为主要用于提供信息服务(即SELECT操作)的数据库和那些需要实施数据完整性保护的数据库提供了不同的存储机制
返回目录SQL实战新手入门
编辑推荐
Oracle索引技术
高性能MySQL
数据仓库与数据挖掘培训视频教程