SQL语句速成班之进阶教程

日期: 2009-09-21 作者:Don Jones翻译:孙瑞 来源:TechTarget中国 英文

INSERT   通过SELECT的学习,你知道了如何从数据库中调出数据了,现在我们来看看如何将数据放入到数据库中。INSERT查询允许你向数据库中添加新的行。想要进行此操作,你需要指定一个表来存放数据,还有列和值。   查询语句形式如下所示:   INSERT INTO table (column,column,column) VALUES(value,value,value)   你可以省略掉列名,但从实际应用角度来说,还是不省略更加容易一些。

  值的顺序要根据列名的顺序,SQL Server会根据你列出的顺序来指定哪个值属于哪个列。你需要为每个非空值列指定列名和值。   下面是一个IN……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

INSERT

  通过SELECT的学习,你知道了如何从数据库中调出数据了,现在我们来看看如何将数据放入到数据库中。INSERT查询允许你向数据库中添加新的行。想要进行此操作,你需要指定一个表来存放数据,还有列和值。

  查询语句形式如下所示:

  INSERT INTO table (column,column,column) VALUES(value,value,value)

  你可以省略掉列名,但从实际应用角度来说,还是不省略更加容易一些。

  值的顺序要根据列名的顺序,SQL Server会根据你列出的顺序来指定哪个值属于哪个列。你需要为每个非空值列指定列名和值。

  下面是一个INSERT例子:

  INSERT INTO Orders (Invoice,Amount,ShipMethod) VALUES(10383,30.00,'Express')

  注意到日期和文本值是被单引号包含在内了,所以在一个字符中包含了单引号的话,系统就会报错,例如:

  INSERT INTO Customers (Name,ZIP) VALUES ('Tim O'Leary','89123')

  SQL Server将Tim O看成了一个值,而Leary为何在那里系统就无法识别了。

  解决这一问题的诀窍就是将所有的字面上的单引号用两个单引号来代替,如下所示:

  INSERT INTO Customers (Name,ZIP) VALUES ('Tim O''Leary','89123')

  O和Leary之间的两个单引号在SQL Server执行查询时将被解析为一个单引号。

  因此使用INSERT时,两个需要注意的问题就是:确保要每个列都指定需要值,并且把分隔符使用正确。

  UPDATE

  当你需要对已有数据进行修改时,一个UPDATE查询是最合适的。

  这一类型的查询被设计用来一次更新多行,它具备如下形式:

  UPDATE table SET column = value, column = value [WHERE criteria]

  想要在Orders表中更改每一行的完整列,输入:

  UPDATE Orders SET Completed = 1

  然而,你可能不会总是想要更改每一行,这样的话,就加一个WHERE子句:

  UPDATE Orders SET Completed = 1 WHERE DateOrdered = DATE()

  SQL Server内置的DATE()函数可以提供当前的日期,因此在这里不需要用单引号了。

  我还可以设置多个列:

  UPDATE Customers SET LastOrder = DATE(), OrderCount = OrderCount + 1, Frequent = 'Yes' WHERE CustomerID = 758392

  我再次使用了DATE()函数,而这次我还增加了OrderCount列,然后设置Frequent列中包含了字符串值Yes。

  SQL Server提供了强大的内置函数集,大部分都可以用在WHERE和SET子句中。其中很多还可以用在SELECT语句中。在Microsoft Developer Network library中你可以找到这些函数列表,SQL Server 2000中的函数都可以用在2005和2008中。

  DELETE

  最后要介绍的是DELETE查询,它可以从表中删除行。

  这个查询通常是和WHERE子句一同使用的:

  DELETE FROM Customers WHERE Inactive = 1

  没有WHERE子句,表中的每一行都将被删除,在平时的使用中一定要注意这一点.

作者

Don Jones
Don Jones

投稿作者

翻译

孙瑞
孙瑞

相关推荐