表1.2 逻辑操作符
逻辑操作符 | 作用 |
Like | 用于查找文本字段中的字符串,其中包括两个通配符:“%”代表任意一个或多个字符;“?”代表任意一个字符 |
Not | 用查询检索指定值范围以外的记录 |
Between | 用于指定值的范围 |
In | 指定在某个准则列表中的值 |
Exists | 用于查询在指定的表中是否存在一行符合某种条件的数据 |
Unique | 用于在特定的表中搜索每一行,测试数据是否唯一 |
All | 用于将一个值和另一记录集中的每个值进行比较 |
Any | 用于将一个值和条件中所列的值的任何一个可能的值进行比较 |
SQL语言中的连接符及其作用如表1.3所示。
表1.3 连接符
连接符 | 作用 |
And | 设置SQL语句中的WHERE子句中同时满足的多个条件,相当于“与”操作 |
Or | 设置SQL语句中的WHERE子句中可能满足的多个条件,相当于“或”操作 |
3. 数据操纵语言
数据操纵语言(DML)也是SQL语言中的一部分。它允许用户在关系型数据库中进行数据的各种操作,包括向表中添加新的数据,修改已经存在的数据和删除现有的数据。实现这3种功能的DML命令分别是:INSERT、UPDATE、DELETE。
下面分别介绍这3个命令。
l INSERT命令 使用INSERT命令可以向表中插入新的数据。其基本的语法如下:
INSERT into 表名
VALUES(值1,值2,[NULL]):
在VALUES参数中包括要插入数据的表中的每一个字段的值。一个值对应一个字段,每个值之间要用逗号分开。插入到表中的值如果是字符类型或者日期类型,则要用引号括起来,而对于数字类型或者使用NULL(空值)的值则不需要。
如果希望向表中的某个指定字段中插入数据,可以使用如下的语法:
INSERT into 表名 (字段1,字段2)
VALUES(值1,值2);
在表名后的括号中指定要插入值的字段名,在VALUES后的括号中指定要插入的值。必须保证插入值的顺序和要插入值的宇段名的顺序一致才能正确实现插入功能。
用户也可以将一张表中的查询结果插入到另一张表中,这需要使用INSERT语句和SELECT语句的组合,其基本语法如下:
INSERT into 表名 [(字段1,字段2)]
SELECT [* | (字段1,字段2)]
FROM 表名
[WHERE 条件];
l UPDATE命令 UPDATE命令用来更新表中已经存在的数据。
更新表中一个单独字段值的语法如下:
UPDATE 表名
SET 字段名 = 值
[WHERE 条件 ];
如果一次更新多个字段的值,则可以使用如下结构的语法:
UPDATE 表名
SET 字段1 = 值1,
字段2 = 值2,
字段3 = 值3,……
[WHERE,条件,];
对比这两种方法可以看出,要一次更新多个字段的值,只需要将每个要更新的字段用逗号分开即可。
l DELETE命令 DELETE命令用于从表中删除整行的数据,即一条记录。所以,在使用DELETE命令的时候,一定要非常小心,否则会造成不必要的数据丢失。
要想使用DELETE命令从表中删除一条单独的记录或者是被选中的多条记录,可以使用如下结构的语法:
DELETE from 表名
[WHERE 条件];
WHERE子句用来限制要删除的记录的条件。
4. 记录集(Recordset)的概念
一般来说,不能直接对数据库进行读写的操作。所以如果要在应用程序中访问数据库中的数据,就必须通过一个临时的数据表。这个表称为“记录集”。在Dreamweaver MX中,也是通过在网页中定义记录集来实现数据库操作的。所谓记录集,实际上就是数据库中现有数据的一个子集。它是由数据库中所有符合查询条件的记录动态生成的。一般要生成一个记录集,总要先进行一个查询操作,然后根据查询的结果,将满足查询条件的记录和字段,生成一个集合,就构成了记录集。可以将记录集看成是表的一个局部。虽然记录集是根据查询结果动态生成的数据表,但不能只简单地把它看作一个临时的对象。实际上,对记录集的各种操作就等同于对数据库的操作。利用记录集,可以在庞大的数据库中,通过设置查询条件来生成满足各种需要的数据量较小的记录集,来减轻系统负担,提高工作效率。为了尽量减小记录集的容量,在构建记录集时应该遵循一个原则,就是只挑选应用程序中真正需要用到的内容来构建记录集。
此外,记录集还有一些其他的特点。例如便于构建虚拟字段等。如果希望在应用程序中操作现有表字段之外的数据,就必须通过构建记录集来完成。在ASP技术中,记录集主要是通过ADO的Recordset对象来创建的。该对象的创建方法和一般的ASP对象完全一致。其语法为:
var记录集名称 = Server.CreateObject("ADODB.Recordset");
下面简单介绍一下Recordset对象的几个属性和方法:
l EOF属性 用于判断是否到达记录集的末尾。当该属性值为True时,表明当前的记录指针已经移动到了记录集的末尾。
l BOF属性 用于判断是否到达记录集的顶部。当该属性值为True时,表明当前的记录指针已经移动到了记录集的顶部。
l MoveFirst方法 用于将记录集当前记录指针的位置移动到记录集中的第一条记录上。
l MoveLast方法 用于将记录集当前记录指针的位置移动到记录集中的最后一条记录上。
l MoveNext方法 用于将记录集当前记录指针下移一位。
l MovePrevious方法 用于将记录集当前记录指针上移一位。
在Dreamweaver MX中使用插入记录(Insert Record)、更新记录(Update Record)和删除记录(Delete Record)等服务器行为对记录进行操作时,实际上是由Dreamweaver MX自动生成了相应的动作查询的SQL语句(如INSERT、UPDATE、DELETE等),并对它们进行执行的结果。除此之外,利用Recordset对象中的相关方法,也可以完成记录的添加、更新和删除操作。
l 添加记录
在ADO中,可以直接利用Recordset对象的AddNew方法和Update方法实现对记录集的添加操作,其基本结构如下所示:
rs.AddNew()
rs.Fields.Item("字段名").值 = 字段值
//为记录集中的各字段赋值
…
rs.Update()
只有在调用了Update方法后,赋值的各个字段中的数据才真正被保存到数据库中。如果忘了调用rs.Update,那么只有当AddNew方法再次被调用,或者使用MoveFirst等方法移动了当前记录位置之后,才会保存记录。
Recordset对象中还有一个CancelUpdate方法,用于取消对记录的添加操作。它必须在调用Update方法之前被调用才能发挥作用。利用这种方法可以实现只添加符合某些条件的记录,而不添加不符合条件的记录,其基本结构如下所示:
rs.AddNew()
rs.Fields.Item("字段名").值 = 字段值
//为记录集中的各字段赋值
……
if(满足添加记录条件)
rs.Update();
else
rs.CancelUpdate();
l 更新记录
更新记录的操作和添加记录的操作类似,不过更新记录的操作可以直接修改记录集中的字段内容,而不需要调用AddNew方法。其基本结构如下所示:
rs.Fields.Item("字段名").值 = 字段值;
//为记录集中的各字段赋值……
rs.Update()
在进行更新操作之前,需要将当前记录的位置移动到要更新的记录上。同样也可以利用CancelUpdate方法取消对记录的更新。
l 删除记录
删除记录的操作最为简单,直接调用Recordset对象的Delete方法即可,其基本结构如下所示:
rs.Delete();
和更新记录的操作相同,在进行删除操作之前,需要将当前记录的位置移动到要删除的记录上。
注意 要删除的当前记录必须存在,如果不存在,就可能导致错误。 |