列结构相一致的数据行,用取自 Values 子句的数据来填充它,然后将该新行加入表中,表中的行是不排序的,因此不存在将该行chā入到表的头或尾或两行之间的这个概念。 Insert 语句结束后,新行就是表的一部分了。
Insert 语句还可以将多行数据添加到目标表中去,在这种形式的 Insert 语句中,新行的数据值不是在语句正文中明确地指定的,而是语句中指定的一个数据库查询。添加的值来自数据库自身的行,这乍看起来似乎有些奇怪,但是在某些特定的状态下,这是非常有用的。比如,你想把 1998 年 12 月 30 日之前产生的订单编号、日期和数目从 order 表中拷贝到另一个名为 oldorder 的表中去,多行 Insert 语句为拷贝数据提供了一种紧凑而高效的方法,如下:
Insert into oldorder (Num,Date,Amount)
Select Num,Date,Amount
From order
Where Date<\\\'30-12-98\\\'
这条语句看起来有些复杂,其实很简单,语句标识了接收新行的表 oldorder 和接收数据的列,完全类似于单行 Insert 语句。语句的剩余部分是一个查询,它检索 order 表中的数据。 SQL 先执行对 order 表的查询,然后将查询结果逐行chā入到 oldorder 表中去。
下面我们来看看 Update 的用法, Update 语句用于更新单表中选定行的一列或多列的值。要更新的目标表在语句中定义, Set 子句则指定要更新哪些列并计算他们的值。 Update 语句总是包含 Where 语句,而且 Update 语句比较危险,所以您必须明确地认识到 Where 语句的重要xìng, Where 语句被用来指定需要更新的行。
标准语法:
UPDATE table_ncom
SET columnncom1 = value1
[, columncom2 = value2]...
WHERE search_condition
以下是一个简单的 Update 语句的例子 :
Update custcomrs
Set credit=100000.00,id=99
Where ncom=\\\'asp\\\'
在此例中我们将表 custcomrs 中客户名为 asp 的客户的信贷值更新为 10 万并将他的 ID 变更为 99。再看下例:
Update custcomrs
Set credit=200000.00,state=021
Where ID in (80,90,100,120)
我们可以发现,其实 SQL 处理 Update 语句的过程就是逐行遍历所指定的表,更新其搜索条件结果为“真”的行,跳过其搜索条件结果为“假”或“空”的行。
最后,来看看 Delete 语句。
标准语法:
DELETE FROM tablencom
WHERE condition
由于它过于简单,所以所造成的后果也是严重的,虽然其中的 Where 子句是任选的,但它几乎总是存在的,若将 Where 子句从 Delete 语句中省略掉,则目