|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
为了建立交互站点,你需要使用数据库来存储来自访问者的信息。例如,你要建立一个职业介绍服务的站点,你就需要存储诸如个 人简历,所感爱好的工作等等这样的信息。创建动态网叶也需要使用数据库,假如你想显示符合来访者要求的最好的工作,你就需 要从数据库中取出这份工作的信息。你将会发现,在许多情况下需要使用数据库。 在这一章里,你将学会怎样使用“结构化查询语言”(SQL〕来操作数据库。SQL语言是数据库的标准语言。在Active Sever Pages 中,无论何时你要访问一个数据库,你就要使用SQL语言。因此,把握好SQL对ASP编程是异常重要的。 注重: 你可以把“SQL”读作“sequel”,也可以按单个字母的读音读作S-Q-L。 两种发音都是准确的,每种发音各有大量的支持者。 在本书里,认为“SQL”读作“sequel”。 通过这一章的学习,你将理解怎样用SQL实现数据库查询,你将学会怎样使用这种查询从数据表中取出信息,最后,你将学会怎样设 计和建立自己的数据库。 注重: 通过下面几章对SQL的介绍,你将对SQL有足够的了解,从而可以有效地使用Active Sever Pages。但是,SQL是一种复杂的语言, 本书不可能包括它的全部细节。要全面把握SQL语言,你需要学习在Microsoft SQL Sever 中使用SQL。你可以到四周的书店去买 一本Microsoft SQL Sever 6.5。 SQL介绍: 本书假设你是在SQL操作Microsoft SQL Sever 的数据库。你也可以用SQL操作许多其它类型的数据库。SQL是操作数据库的标准语 言。(事实上,关于SQL语言有一个专门的ANSI标准〕 注重: 不要在你的站点上试图用Microsoft Access代替Microsoft SQL Sever。SQL Sever可以同时服务于许多用户,假如你希望你的 站点有较高的访问率,MS Access是不能胜任的。 在学习SQL的细节之前,你需要理解它的两大特点。一个特点轻易把握,另一个把握起来有点困难。 第一个特点是所有SQL数据库中的数据都存储在表中。一个表由行和列组成。例如,下面这个简朴的表包括name 和e-mail address: Name Email Address ................................................................ Bill Gates billg@microsoft.com president Clinton president@whitehouse.com Stephen Walther swalther@somewhere.com 这个表有两列(列也称为字段,域〕:Name和Email Address。有三行,每一行包含一组数据。一行中的数据组合在一起称为一条 记录。 无论何时你向表中添加新数据,你就添加了一条新记录。一个数据表可以有几十个记录,也可以有几千甚至几十亿个记录。虽然你 也许永远不需要存储十亿个Email地址,但知道你能这样做总是好的,也许有一天你会有这样的需要。 你的数据库很有可能包含几十个表,所有存储在你数据库中的信息都被存储在这些表中。当你考虑怎样把信息存储在数据库中时, 你应该考虑怎样把它们存储在表中。 SQL的第二个特点有些难于把握。这种语言被设计为不答应你按照某种特定的顺序来取出记录,因为这样做会降低SQL Sever取记录 的效率。使用SQL,你只能按查询条件来读取记录。 当考虑如何从表中取出记录时,自然会想到按记录的位置读取它们。例如,也许你会尝试通过一个循环,逐个记录地扫描,来选出 特定的记录。在使用SQL时,你必须练习自己,不要有这种思路。 如果你想选出所有的名字是“Bill Gates”的记录,假如使用传统的编程语言,你也许会构造一个循环,逐个查看表中的记录,看 名字域是否是“Bill Gates”。 这种选择记录的方式是可行的,但是效率不高。使用SQL,你只要说,“选择所著名字域等于Bill Gates的记录”,SQL就会为你选 出所有符合条件的记录。SQL会确定实现查询的最佳方式。 建设你想取出表中的前十个记录。使用传统的编程语言,你可以做一个循环,取出前十个记录后结束循环。但使用标准的SQL查询, 这是不可能实现的。从SQL的角度来说,在一个表中不存在前十个记录这种概念。 开始时,当你知道你不能用SQL实现某些你感觉应该能实现的功能,你会受到挫折。你也许会以头撞墙甚至想写恶毒的信件给SQL的 设计者们。但后来你会熟悉到,SQL的这个特点不仅不是个限制,反而是其优点。因为SQL不根据位置来读取记录,它读取记录可以 很快。 综上所述,SQL有两个特点:所有数据存储在表中,从SQL的角度来说,表中的记录没有顺序。在下一节,你将学会怎样用SQL从表 中选择特别的记录。 使用SQL从表中取记录。 SQL的主要功能之一是实现数据库查询。假如你认识Internet 引擎,那么你已经认识查询了。你使用查询来取得满意特定条件的信 息。例如,假如你想找到有ASP信息的全部站点,你可以连接到 Yahoo!并执行一个对Active Sever Pages的搜索。在你输入这个 查询后,你会收到一个列表,表中包括所有其描述中包含搜索表达式的站点。 多数Internet 引擎答应逻辑查询。在逻辑查询中,你可以包括特别的运算符如AND、OR和NOT,你使用这些运算符来选择特定的记 录。例如,你可以用AND来限制查询结果。假如你执行一个对Active Sever Pages AND SQL的搜索。你将得到其描述中同时包含 Active Sever Pages 和SQL的记录。当你需要限制查询结果时,你可以使用AND。 假如你需要扩展查询的结果,你可以使用逻辑操作符OR。例如,假如你执行一个搜索,搜索所有的其描述中包含Active Sever Pages OR SQL的站点,你收到的列表中将包括所有其描述中同时包含两个表达式或其中任何一个表达式的站点。 假如你想从搜索结果中排除特定的站点,你可以使用NOT。例如,查询“Active Sever Pages ”AND NOT “SQL”将返回一个列 表,列表中的站点包含Active Sever Pages,但不包含SQL。当必须排除特定的记录时,你可以使用NOT。 用SQL执行的查询与用Internet搜索引擎执行的搜索异常相似。 当你执行一个SQL查询时,通过使用包括逻辑运算符的查询条件, 你可以得到一个记录列表。此时查询结果是来自一个或多个表。 SQL查询的句法异常简朴。假设有一个名为email_table 的表,包含名字和地址两个字段,要得到Bill Gates 的e_mail地址,你 可以使用下面的查询: SELECT email from email_table WHERE name="Bill Gates" 当这个查询执行时,就从名为email_table的表中读取Bill Gates的e_mail 地址。这个简朴的语句包括三部分: ■ SELECT语句的第一部分指名要选取的列。在此例中,只有email列被选取。当执行 时,只显示email列的值 billg@microsoft.com。 ■ SELECTT语句的第二部份指明要从哪个(些)表中查询数据。在此例中,要查询的表名为email_table 。 ■ 最后,SELECT语句的WHERE子句指明要选择满意什么条件的记录。在此例中,查询条件为只有name列的值为Bill Gates 的记录 才被选取。 Bill Gates很有可能拥有不止一个email地址。假如表中包含Bill Gates的多个email地址。用上述的SELECT语句可以读取他所有 的email地址。SELECT语句从表中取出所有name字段值为Bill Gates 的记录的email 字段的值。 前面说过,查询可以在查询条件中包含逻辑运算符。如果你想读取Bill Gates 或Clinton总统的所有email地址,你可以使用下面 的查询语句: SELECT email FROM email_table WHERE name="Bill Gates" OR name="president Clinton" 此例中的查询条件比前一个复杂了一点。这个语句从表email_table中选出所有name列为Bill Gates或president Clinton的记 录。假如表中含有Bill Gates或president Clinton的多个地址,所有的地址都被读取。 SELECT语句的结构看起来很直观。假如你请一个朋友从一个表中为你选择一组记录,你也许以异常相似的方法提出你的要求。在 SQL SELECT语句中,你“SELECT特定的列FROM一个表WHERE某些列满意一个特定的条件”。 下一节将介绍怎样执行SQL查询来选取记录。这将帮助你认识用SELECT语句从表中取数据的各种不同方式。 返回类别: 教程 上一教程: ASP+与JSP之间的抉择 下一教程: ASP系列讲座(四)使用脚本语言 您可以阅读与"SQL数据操作基础(初级) 1"相关的教程: · SQL数据操作基础(初级) 2 · SQL数据操作基础(初级) 5 · SQL数据操作基础(中级) 6 · SQL数据操作基础(中级) 7 · ASP中使用SQL语句操作数据库 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |