资源预览内容
第1页 / 共47页
第2页 / 共47页
第3页 / 共47页
第4页 / 共47页
第5页 / 共47页
第6页 / 共47页
第7页 / 共47页
第8页 / 共47页
第9页 / 共47页
第10页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第三部分操作数据:SQL本部分内容SQL基础中级SQL高级SQL第10章SQL基础SQL本章内容介绍使用SELECT语句从表中取数据创建新表字段属性向表中添加数据删除和修改表为了建立交互站点,你需要使用数据库来存储来自访问者的信息。例如,你要建立一个职业介绍服务的站点,你就需要存储诸如个人简历,所感兴趣的工作等等这样的信息。 创建 动态网叶也需要使用数据库,如果你想显示符合来访者要求的最好的工作,你就需要从数据库中取出这份工作的信息。你将会发现,在许多情况下需要使用数据库。在这一章里,你将学会怎样使用“结构化查询语言”(SQL来操作数据库。SQL语言是数据库的标准语言。在 Active Sever Pages中,无论何时你要访问一个数据库,你就要使用SQL语言。因此,掌握好 SQL对ASP编程是非常重要的。你可以把“ SQL”读作“ sequel”,也可以按单个字母的读音读作S- Q- L。 两种发音都是正确的,每种发音各有大量的支持者。在本书里,认为“SQL读作“sequel ”通过这一章的学习,你将理解怎样用 SQL实现数据库查询,你将学会怎样使用这种查询 从数据表中取出信息,最后,你将学会怎样设计和建立自己的数据库。通过下面几章对 SQL的介绍,你将对 SQL有足够的了解,从而可以有效地使用ActiveSever 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可以同时服务于许多用户,如果你希望你的站点有较高的访问率,MSAccess是不能胜任的。在学习SQL的细节之前,你需要理解它的两大特点。一个特点容易掌握,另一个掌握起 来有点困难。第一个特点是所有SQL数据库中的数据都存储在表中。一个表由行和列组成。例如,下面这个简单的表包括 name和e-mail address :NameEmail AddressBill Gatesbillgmicrosoft.compreside nt Cli ntonpreside ntwhitehouse.comStephe n Waltherswalthersomewhere.com这个表有两列(列也称为字段,域:Name和Email Address。有三行,每一行包含一组数据。一行中的数据组合在一起称为一条记录。无论何时你向表中添加新数据,你就添加了一条新记录。一个数据表可以有几十个记录, 也可以有几千甚至几十亿个记录。虽然你也许永远不需要存储十亿个Email地址,但知道你能这样做总是好的,也许有一天你会有这样的需要。你的数据库很有可能包含几十个表,所有存储在你数据库中的信息都被存储在这些表 中。当你考虑怎样把信息存储在数据库中时,你应该考虑怎样把它们存储在表中。SQL的第二个特点有些难于掌握。这种语言被设计为不允许你按照某种特定的顺序来取 出记录,因为这样做会降低SQLSever取记录的效率。使用 SQL你只能按查询条件来读取记录。当考虑如何从表中取出记录时,自然会想到按记录的位置读取它们。例如,也许你会尝试通过一个循环,逐个记录地扫描,来选出特定的记录。在使用SQL时,你必须训练自己,不要有这种思路。假如你想选出所有的名字是“ Bill Gates ”的记录,如果使用传统的编程语言,你也许 会构造一个循环,逐个查看表中的记录,看名字域是否是“Bill Gates ”。这种选择记录的方法是可行的,但是效率不高。使用SQL你只要说,“选择所有名字域等于Bill Gates 的记录”,SQL就会为你选出所有符合条件的记录。 SQL会确定实现查询 的最佳方法。建设你想取出表中的前十个记录。 使用传统的编程语言,你可以做一个循环,取出前十 个记录后结束循环。但使用标准的 SQL查询,这是不可能实现的。从 SQL的角度来说,在一 个表中不存在前十个记录这种概念。开始时,当你知道你不能用 SQL实现某些你感觉应该能实现的功能, 你会受到挫折。你 也许会以头撞墙甚至想写恶毒的信件给 SQL的设计者们。但后来你会认识到, SQL的这个特 点不仅不是个限制,反而是其长处。因为SQL不根据位置来读取记录, 它读取记录可以很快。综上所述,SQL有两个特点:所有数据存储在表中,从SQL的角度来说,表中的记录没有顺序。在下一节,你将学会怎样用SQL从表中选择特殊的记录。使用SQL从表中取记录。SQL的主要功能之一是实现数据库查询。如果你熟悉In ternet 引擎,那么你已经熟悉查询了。你使用查询来取得满足特定条件的信息。例如,如果你想找到有ASP信息的全部站点,你可以连接到Yahoo!并执行一个对Active Sever Pages的搜索。在你输入这个查询后, 你会收到一个列表,表中包括所有其描述中包含搜索表达式的站点。多数In ternet 引擎允许逻辑查询。在逻辑查询中,你可以包括特殊的运算符如ANDOR和NOT你使用这些运算符来选择特定的记录。例如,你可以用AND来限制查询结果。如果你执行一个对 Active Sever Pages AND SQL的搜索。你将得到其描述中同时包含 Active Sever Pages和SQL的记录。当你需要限制查询结果时,你可以使用AND如果你需要扩展查询的结果,你可以使用逻辑操作符OR例如,如果你执行一个搜索,搜索所有的其描述中包含 Active Sever Pages OR SQL的站点,你收到的列表中将包括所 有其描述中同时包含两个表达式或其中任何一个表达式的站点。如果你想从搜索结果中排除特定的站点,你可以使用NOT例如,查询“ Active SeverPages ” AND NOT “SQL将返回一个列表,列表中的站点包含 Active Sever Pages ,但 不包含SQL当必须排除特定的记录时,你可以使用NOT用SQL执行的查询与用In ternet 搜索引擎执行的搜索非常相似。当你执行一个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 列的值 billgmicrosoft.com 。 SELECTT语句的第二部份指明要从哪个(些)表中查询数据。在此例中,要查询的 表名为 email_table 。 最后,SELECT语句的 WHER子句指明要选择满足什么条件的记录。在此例中,查询条件为只有name列的值为Bill Gates的记录才被选取。Bill Gates很有可能拥有不止一个 email地址。如果表中包含 Bill Gates的多个email 地址。用上述的SELECTS句可以读取他所有的 email地址。SELECTS句从表中取出所有 name 字段值为Bill Gates的记录的email字段的值。前面说过,查询可以在查询条件中包含逻辑运算符。假如你想读取Bill Gates 或Clinton 总统的所有email地址,你可以使用下面的查询语句:SELECT email FROM email_table WHERE n ame=Bill Gates ORn ame=preside nt Cli nton此例中的查询条件比前一个复杂了一点。这个语句从表email_table 中选出所有n ame列为 Bill Gates 或 preside nt Cli nton的记录。如果表中含有Bill Gates 或 preside ntCli nton 的多个地址,所有的地址都被读取。SELECT语句的结构看起来很直观。如果你请一个朋友从一个表中为你选择一组记录, 你也许以非常相似的方式提出你的要求。在SQLSELECT语句中,你“ SELECT寺定的列FROM一个表 WHER某些列满足一个特定的条件”。下一节将介绍怎样执行SQL查询来选取记录。这将帮助你熟悉用SELECT语句从表中取数据的各种不同方法。使用ISQL执行SELECT查询当你安装SQL Sever时,你同时安装了一个叫作ISQL/w的应用程序。ISQL/w允许你执行交互的SQL查询。在把查询包括到你的ASP网页中之前,用ISQL/w对其进行测试是非常有用的。在这本书的第一部份,你学习了怎样安装和配置Microsoft SQL Sever。如果没有安装SQL Sever或者SQL Sever不能运行,请参阅第三章“安装和使用SQL Sever”。选择任务上SQL Sever程序组中的ISQL_w以启动该程序。程序启动时,首先会出现一个对话框,要求输入服务器信息和登录信息(见图10.1 )。在Sever框中,输入你的 SQL服务器的名字。如果服务器正运行在本地计算机上,服务器名字就是你计算机的名字。在登录信息框中,输入一个登录帐号和密码或选择使用“可信连接”,然后单击Connect按钮。图 10。1如果你将SQLSever配置为使用完整安全或混合安全,那么你可以使用可信连接。如果 你使用标准安全,你则需要提供用户帐号和密码。要了解更多信息,参见第三章。如果一切正常,在你单击连接按钮后会出现一个查询窗口,如图10.2所示。(如果有异吊,请参考第三早)图 10.2在执行查询之前,你需要选择数据库。安装SQL Sever时你已为自己创建了一个数据库,SQL Sever还有许多系统数据库,如master, model, msdb,和tempdb。方便的是,SQLSever带有一个特殊的名为 pubs的例子数据库。库 pubs中包含供一个 虚拟的出版商使用的各个表。 文档中所有的例子程序都是针对这个库来设计的。本书中的许多例子也使用这个数据库。在查询窗口顶部的 DB下拉框中选择数据库 pubs,这样你就选择了数据库。你所有的查 询都将针对这个库中的各个表来执行。现在你可以执行你的第一个查询了。这真让人兴奋!你的第一个查询将针对一个名为autrors的表,表中包含所有为某个虚拟出版商工作的作者的相关数据。单击查询窗口并输入以下的语句:SELECT pho ne FROM authors WHERE au_n ame=R in ger输入完成后,单击执行查询按钮(一个绿色
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号