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 组件,敬请关注 。 |