sql删除数据语句 SQL实战新手入门:更新数据-UPDATE语句(1)
SQL实战新手入门:更新数据-UPDATE语句(1)
更新数据 UPDATE语句( )
电子数据存储的一个主要优势就是它的灵活性 没有任何数据刻在石头上 写在羊皮卷甚至纸上 根据需要 可以创建 删除或修改电子化存储的数据 到目前为止 已经学习了如何插入数据或者选取数据 以及如何删除数据 UPDATE语句可以修改列中已有的值 从而对数据进行修改 如果突然发现某本图书录入的页数是错误的 可以运行下面的语句进行更正
UPDATE myLibrary SET pages = ;
由于该列的数据类型是数值类型(INTEGER) 因此无须将数值 用单引号括起来(该规则适用于所有RDBMS中的全部数值类型)
上面这个UPDATE语句的问题在于 数值 将会更新表中每一条记录的PAGES列 显然这并不是我们想要的结果 与DELETE语句一样 在修改数据时还可以对要修改的数据进行筛选 只更新那些需要更新的记录 而保持其他记录不变 筛选记录是WHERE子句的功能 要筛选记录 同样需要某个可以唯一标识一条记录的标志
UPDATE myLibrary SET pages =
WHERE isbn= ;
如果要更新记录中的多个列 只需要在UPDATE语句中添加这些要更新的列 并以逗号进行分隔
UPDATE myLibrary SET
pages =
title = SQL Bible nd Edition
WHERE isbn= ;
UPDATE操作以这样一种方式来实现 允许使用已有的数据作为筛选标准 例如 在同一个查询中 可以通过图书的名称来查找该图书并修改图书的名称
UPDATE myLibrary SET title = SQL Bible nd Edition
WHERE title = SQL Bible ;
当然 在修改了数据之后 如果使用相同的WHERE子句和筛选条件 上面这个查询将无法再次查找到相同的记录 当使用已有数据作为新值的一部分并用新值更新记录时 相同的原则也适用 例如 要在SQL Bible之后添加限定符 nd Edition时 无须提供整个字符串 只需要使用原来的列值并提供 nd Edition字符串作为第二部分 然后使用一个连接操作符将其连接起来
UPDATE myLibrary SET titletitle = title + nd Edition
WHERE title = SQL Bible ;
上面的语法使用加号(+)作为字符串的连接操作符 但这仅在Microsoft SQL Server中有效 Oracle和PostgreSQL使用||操作符 Microsoft Access使用&操作符 IBM DB MySQL和HSQLDB则使用SQL函数CONCAT来连接字符串 关于SQL操作符和SQL函数的更多内容 请参考第 章的内容
到目前为止的例子都隐含了一层含义 即列都是使用与列具有相同数据类型的值进行更新 用字符串更新字符串 用数值更新数值 当混合了数据类型 并试图用其插入或更新表时 会发生什么样的情况呢?答案还是 视情况而定 某些RDBMS无法接受不兼容的数据 并抛出一个错误消息 另外一些RDBMS则在兼容性的范围内尽最大的努力将数据转换为与列的数据类型相兼容的数据 后面这种方式被称为隐式数据类型转换 第 章将讨论其利弊
试一试使用ALTER语句修改表结构 使用UPDATE语句更新数据
为了练习一下上面介绍的情形 请在MYLIBRARY表中添加一个数值列 并向该列中添加数据 下面的练习使用Microsoft SQL Server 数据库
首先 确保准备工作已经到达可以输入和执行SQL命令的阶段 重复本章第一个 试一试 练习中步骤( )到步骤( )的操作 像练习 和练习 一样 重新创建并填充MYLIBRARY表 然后执行下面这些指令
( ) 要在MYLIBRARY表中添加一个新列 可输入下面的SQL命令
USE library;
ALTER TABLE myLibrary
ADD book_id INTEGER;
( ) 单击上方工具栏中的Execute按钮 如图 所示
( ) 注意观察下方窗格的Messages选项卡中的消息 Command(s) pleted successfully
( ) 查询MYLIBRARY表中的数据 确保新添加的BOOK_ID列出现在数据集的最后一列 该列的值为空(NULL值) 如图 所示
图
返回目录SQL实战新手入门
编辑推荐

Oracle索引技术
高性能MySQL
lishixinzhi/Article/program/SQL/201311/16478