ASP基础入门:数据库查询语言(2)


  在本篇的开头,我要 感激一些朋友来信给我指出了前几篇文章中的 舛误 。不知大家是不是记得在第八篇中我举了一个 方便的利用

  Application

  制作的页面 拜访计数器?有位朋友来信问我,为什么当他转变计数器起始变量

  NumVisits

  的值后对最终的记数 后果没有任何作用?起初我也 百思不解,让我们来回顾一下这段源程序,如下:   

  < %

  Dim NumVisits

  NumVisits=0

  Application.Lock

  Application("NumVisits") = Application("NumVisits") + 1

  Application.Unlock

  %>

   欢送 光临本网页,你是本页的第 < %= Application("NumVisits")

  %> 位访客 !

  在这段程序中,假如你试图通过转变变量 NumVisits

  的值来转变记数器 后果,是绝对办不到的 。由于用变量的值去转变

  Application

  的值是不 可以的,这两者是不 有关的 。所以这里对变量的定义和赋值都是多余的 。那么我们 毕竟应该如何来给

  Application("NumVisits")

  定义一个初始值呢?请看以下 修改后程序:

  < %

  If Application("NumVisits")< 999 then

  Application("NumVisits")=999

  End If

  Application.Lock

  Application("NumVisits")=Application("NumVisits")+1

  Application.Unlock

  %>

   欢送 光临本网页,你是本页的第 < %= Application("NumVisits")

  %> 位访客 !

  这里的 999

  便是你要设定的计数器初始值,如此一来问题就迎刃而解了 。我十分 感激这位姓康的朋友给我指出了这个 舛误, 固然这只不过一个很小的 漏洞,但我们在一起学程序写程序的过程中十分需求这种 谨严 详尽的 风格, 盼望今后朋友们们一旦发现文中的 舛误即刻来信告知,我也能及时纠正,谢谢 。

  SQL

  语言 可以分为两大 部分:数据定义语言和数据控制语言,继上一篇我们学习了数据控制语言中的

  Select 语句后,今日作者要 接续给大家简要介绍其余的 SQL 语句 。

  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

  程序时必须 使用他们对数据库进行操作 。从下一篇开始,作者将给大家介绍

  ASP 的内建 ActiveX 组件,敬请关注 。