打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ASP学习四 数据库查询语言②
ASP学习四 数据库查询语言②
2006年11月27日 星期一 17:21
 SQL 是一种完备的数据处理语言,不仅用于数据库查询,而且用于数据库中的数据修改和更新,与支持 SQL 查询的 Select 语句的复杂性相比较,更改数据库内容的 SQL 语句就格外简单。然而对于一个 DBMS 来说,数据更新所造成的风险大大超出了数据查询。数据库管理系统必须在更改期内保护所存储的数据的一致性,确保有效的数据进入数据库,数据库必须保持一致性, DBMS 还必须协调多用户的并行更新,以确保用户和他们的更改不至于影响其他用户的作业。

     用于修改数据库内容的 SQL 语句主要有以下三个:

1、 Insert,向一个表中加入新的数据行

2、 Delete,从一个表中删除数据行

3、 Update,更改数据库中已经存在的数据

首先我们来看看 Insert 的用法:
标准语法:
   INSERT INTO table_name
   (col1, col2...)
   VALUES(value1, value2...)

下例要将书生作为一个新的销售员加入表 Salesreps 中
   Insert Into
   Salesreps (name,num,sales,hire_date,income)
   values (\\\'shusheng\\\',9,10000,\\\'23-Feb-99\\\',2000)

     在此语句中,列的名称列在括号中以逗号隔开,接下去是 Value 短语和括号中同样以逗号隔开的每列数据,应该注意的是数据和列名称的顺序是相同的,而且若是字符串型则以单引号隔开。从概念上来讲, Insert 语句建立的一个与表列结构相一致的数据行,用取自 Values 子句的数据来填充它,然后将该新行加入表中,表中的行是不排序的,因此不存在将该行插入到表的头或尾或两行之间的这个概念。 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 表的查询,然后将查询结果逐行插入到 oldorder 表中去。

     下面我们来看看 Update 的用法, Update 语句用于更新单表中选定行的一列或多列的值。要更新的目标表在语句中定义, Set 子句则指定要更新哪些列并计算他们的值。 Update 语句总是包含 Where 语句,而且 Update 语句比较危险,所以您必须明确地认识到 Where 语句的重要性, Where 语句被用来指定需要更新的行。

   标准语法:
   UPDATE table_name
   SET columnname1 = value1
   [, columname2 = value2]...
   WHERE search_condition

   以下是一个简单的 Update 语句的例子 :
   Update customers
   Set credit=100000.00,id=99
   Where name=\\\'asp\\\'

在此例中我们将表 customers 中客户名为 asp 的客户的信贷值更新为 10 万并将他的 ID 变更为 99。再看下例:
   Update customers
   Set credit=200000.00,state=021
   Where ID in (80,90,100,120)

     我们可以发现,其实 SQL 处理 Update 语句的过程就是逐行遍历所指定的表,更新其搜索条件结果为“真”的行,跳过其搜索条件结果为“假”或“空”的行。

    最后,来看看 Delete 语句。

   标准语法:
   DELETE FROM tablename
   WHERE condition
     由于它过于简单,所以所造成的后果也是严重的,虽然其中的 Where 子句是任选的,但它几乎总是存在的,若将 Where 子句从 Delete 语句中省略掉,则目标表的所有行都将被删除。看下例:
   Delete from order Where ID=99

     在文章的末尾,作者在给大家简要介绍一下数据定义语言。它是用来创建和修改数据库结构的一种语句,包括 Create 和 Drop 语句。

   1、 Create 语句
   标准语法:
   CREATE TABLE table_name
   ( field1 datatype [ NOT NULL ],
   field2 datatype [ NOT NULL ],
   field3 datatype [ NOT NULL ]...)

   如:
   CREATE TABLE BILLS
   ( NAME CHAR(30),
   AMOUNT NUMBER,
   ACCOUNT_ID NUMBER)

     尽管 Create Table 比前面介绍的语句难理解一些,但仍然很直观。它将 bills 赋予一个新表,并指定表中三列的名称和数据类型。表被建立后我们就可以添入数据了。如:

   Insert into bills(name,amout,account_id) values(\\\'gates\\\',100,1)

     如果,你觉得不再需要保存产品信息,则可用 Drop table 语句将该表及其所包含的所有数据从数据库中删除掉。

标准语法:

   DROP TABLE table_name

     至此,我们已经了解了所有常用的 SQL 语句,可别小看这些貌似英文的简单语句,它们的功能十分强大,当我们编写 asp 程序时必须使用他们对数据库进行操作。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SQLite的使用
一千行MySQL学习笔记
新手MySQL工程师必备命令速查手册
10分钟学会 SQL 语言核心知识点!
DB2 SQL 与 XQuery 教程,第 6 部分: 数据定义语言和数据控制语言 - 豆...
SQLite 触发器 | w3cschool菜鸟教程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服