SQL数据操作基础知识8078.docx





《SQL数据操作基础知识8078.docx》由会员分享,可在线阅读,更多相关《SQL数据操作基础知识8078.docx(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、SQL数据操作基础(初级) 1 netnova 于 99-6-27 13:57:02 加贴在 数据库探讨:为了建立交互站点,你需要使用数据库来存储来自访问者的信息。例如,你要建立一个职业介绍服务的站点,你就需要存储诸如个人简历,所感兴趣的工作等等这样的信息。创建动态网叶也需要使用数据库,如果你想显示符合来访者要求的最好的工作,你就需要从数据库中取出这份工作的信息。你将会发现,在许多情况下需要使用数据库。在这一章里,你你将学会怎样样使用“结构构化查询语言言”(SQLL来操作数数据库。SQQL语言是数数据库的标准准语言。在AActivee Seveer Pagges 中,无无论何时你要要访问一个数
2、数据库,你就就要使用SQQL语言。因因此,掌握好好SQL对AASP编程是是非常重要的的。注意:你可以把“SQQL”读作“ssequell”,也可以以按单个字母母的读音读作作SQLL。 两种发发音都是正确确的,每种发发音各有大量量的支持者。在在本书里,认认为“SQLL”读作“ssequell”。通过这一章的学学习,你将理理解怎样用SSQL实现数数据库查询,你你将学会怎样样使用这种查查询从数据表表中取出信息息,最后,你你将学会怎样样设计和建立立自己的数据据库。注意:通过下面几章对对SQL的介介绍,你将对对SQL有足足够的了解,从从而可以有效效地使用Acctive Severr Pagees。但是,
3、SSQL是一种种复杂的语言言,本书不可可能包括它的的全部细节。要要全面掌握SSQL语言,你你需要学习在在Microosoft SQL SSever 中使用SQQL。你可以以到附近的书书店去买一本本Microosoft SQL SSever 6.5。SQL介绍:本书假设你是在在SQL操作作Microosoft SQL SSever 的数据库。你也可以用SQL操作许多其它类型的数据库。SQL是操作数据库的标准语言。(事实上,关于SQL语言有一个专门的ANSI标准注意:不要在你的站点点上试图用MMicrossoft AAccesss代替Miccrosofft SQLL Seveer。SQLL Sev
4、eer可以同时时服务于许多多用户,如果果你希望你的的站点有较高高的访问率,MMS Acccess是不不能胜任的。在学习SQL的的细节之前,你你需要理解它它的两大特点点。一个特点点容易掌握,另另一个掌握起起来有点困难难。第一个特点是所所有SQL数数据库中的数数据都存储在在表中。一个个表由行和列列组成。例如如,下面这个个简单的表包包括namee 和e-mmail aaddresss:Name Emmail AAddresss.Bill Gaates bbillgpresideent Cllintonn pressidenttmStephenn Waltther sswalthhersoomewhe
5、ere.coom这个表有两列(列列也称为字段段,域:NName和EEmail Addreess。有三三行,每一行行包含一组数数据。一行中中的数据组合合在一起称为为一条记录。无论何时你向表表中添加新数数据,你就添添加了一条新新记录。一个个数据表可以以有几十个记记录,也可以以有几千甚至至几十亿个记记录。虽然你你也许永远不不需要存储十十亿个Emaail地址,但但知道你能这这样做总是好好的,也许有有一天你会有有这样的需要要。你的数据库很有有可能包含几几十个表,所所有存储在你你数据库中的的信息都被存存储在这些表表中。当你考考虑怎样把信信息存储在数数据库中时,你你应该考虑怎怎样把它们存存储在表中。SQL的
6、第二个个特点有些难难于掌握。这这种语言被设设计为不允许许你按照某种种特定的顺序序来取出记录录,因为这样样做会降低SSQL Seever取记记录的效率。使使用SQL,你你只能按查询询条件来读取取记录。当考虑如何从表表中取出记录录时,自然会会想到按记录录的位置读取取它们。例如如,也许你会会尝试通过一一个循环,逐逐个记录地扫扫描,来选出出特定的记录录。在使用SSQL时,你你必须训练自自己,不要有有这种思路。假如你想选出所所有的名字是是“Billl Gatees”的记录录,如果使用用传统的编程程语言,你也也许会构造一一个循环,逐逐个查看表中中的记录,看看名字域是否否是“Billl Gattes”。这种
7、选择记录的的方法是可行行的,但是效效率不高。使使用SQL,你你只要说,“选选择所有名字字域等于Biill Gaates的记记录”,SQQL就会为你你选出所有符符合条件的记记录。SQLL会确定实现现查询的最佳佳方法。建设你想取出表表中的前十个个记录。使用用传统的编程程语言,你可可以做一个循循环,取出前前十个记录后后结束循环。但但使用标准的的SQL查询询,这是不可可能实现的。从从SQL的角角度来说,在在一个表中不不存在前十个个记录这种概概念。开始时,当你知知道你不能用用SQL实现现某些你感觉觉应该能实现现的功能,你你会受到挫折折。你也许会会以头撞墙甚甚至想写恶毒毒的信件给SSQL的设计计者们。但后
8、后来你会认识识到,SQLL的这个特点点不仅不是个个限制,反而而是其长处。因因为SQL不不根据位置来来读取记录,它它读取记录可可以很快。综上所述,SQQL有两个特特点:所有数数据存储在表表中,从SQQL的角度来来说,表中的的记录没有顺顺序。在下一一节,你将学学会怎样用SSQL从表中中选择特殊的的记录。使用SQL从表表中取记录。SQL的主要功功能之一是实实现数据库查查询。如果你你熟悉Intternett 引擎,那那么你已经熟熟悉查询了。你你使用查询来来取得满足特特定条件的信信息。例如,如如果你想找到到有ASP信信息的全部站站点,你可以以连接到 YYahoo!并执行一个个对Actiive Seeve
9、r PPages的的搜索。在你你输入这个查查询后,你会会收到一个列列表,表中包包括所有其描描述中包含搜搜索表达式的的站点。多数Interrnet 引引擎允许逻辑辑查询。在逻逻辑查询中,你你可以包括特特殊的运算符符如AND、OOR和NOTT,你使用这这些运算符来来选择特定的的记录。例如如,你可以用用AND来限限制查询结果果。如果你执执行一个对AActivee Seveer Pagges ANND SQLL的搜索。你你将得到其描描述中同时包包含Actiive Seever PPages 和SQL的的记录。当你你需要限制查查询结果时,你你可以使用AAND。如果你需要扩展展查询的结果果,你可以使使用逻
10、辑操作作符OR。例例如,如果你你执行一个搜搜索,搜索所所有的其描述述中包含Acctive Severr Pagees OR SQL的站站点,你收到到的列表中将将包括所有其其描述中同时时包含两个表表达式或其中中任何一个表表达式的站点点。如果你想从搜索索结果中排除除特定的站点点,你可以使使用NOT。例例如,查询“AActivee Seveer Pagges ”AAND NOOT “SQQL”将返回回一个列表,列列表中的站点点包含Acttive SSever Pagess,但不包含含SQL。当当必须排除特特定的记录时时,你可以使使用NOT。用SQL执行的的查询与用IInternnet搜索引引擎执行的
11、搜搜索非常相似似。 当你执执行一个SQQL查询时,通通过使用包括括逻辑运算符符的查询条件件,你可以得得到一个记录录列表。此时时查询结果是是来自一个或或多个表。SQL查询的句句法非常简单单。假设有一一个名为emmail_ttable 的表,包含含名字和地址址两个字段,要要得到Billl Gattes 的ee_maill地址,你可可以使用下面面的查询:SELECT emaill fromm emaiil_tabble WHHERE nname=Bill Gatess当这个查询执行行时,就从名名为emaiil_tabble的表中中读取Billl Gattes的e_mail 地址。这个个简单的语句句包
12、括三部分分: SELECCT语句的第第一部分指名名要选取的列列。在此例中中,只有emmail列被被选取。当执执行 时,只只显示emaail列的值值 billlgm。 SELECCTT语句的的第二部份指指明要从哪个个(些)表中中查询数据。在在此例中,要要查询的表名名为emaiil_tabble 。 最后,SEELECT语语句的WHEERE子句指指明要选择满满足什么条件件的记录。在在此例中,查查询条件为只只有namee列的值为BBill GGates 的记录才被被选取。Bill Gaates很有有可能拥有不不止一个emmail地址址。如果表中中包含Billl Gattes的多个个emaill地址。
13、用上上述的SELLECT语句句可以读取他他所有的emmail地址址。SELEECT语句从从表中取出所所有namee字段值为BBill GGates 的记录的eemail 字段的值。前面说过,查询询可以在查询询条件中包含含逻辑运算符符。假如你想想读取Billl Gattes 或CClintoon总统的所所有emaiil地址,你你可以使用下下面的查询语语句:SELECT emaill FROMM emaiil_tabble WHHERE nname=Bill Gatess OR name=ppresiddent CClintoon此例中的查询条条件比前一个个复杂了一点点。这个语句句从表emaail
14、_taable中选选出所有naame列为BBill GGates或或presiident Clintton的记录录。如果表中中含有Billl Gattes或prresideent Cllintonn的多个地址址,所有的地地址都被读取取。SELECT语语句的结构看看起来很直观观。如果你请请一个朋友从从一个表中为为你选择一组组记录,你也也许以非常相相似的方式提提出你的要求求。在SQLL SELEECT语句中中,你“SEELECT特特定的列FRROM一个表表WHEREE某些列满足足一个特定的的条件”。下一节将介绍怎怎样执行SQQL查询来选选取记录。这这将帮助你熟熟悉用SELLECT语句句从表中取数数
15、据的各种不不同方法。SQL数据操作作基础(初级级) 2 netnovaa 于 999-6-277 13:557:38 加贴在 数数据库探讨:使用ISQL执执行SELEECT查询当你安装SQLL Seveer时,你同同时安装了一一个叫作ISSQL/w的的应用程序。IISQL/ww允许你执行行交互的SQQL查询。在在把查询包括括到你的ASSP网页中之之前,用ISSQL/w对对其进行测试试是非常有用用的。注意:在这本书的第一一部份,你学学习了怎样安安装和配置MMicrossoft SSQL Seever 。如如果没有安装装SQL SSever或或者SQL Severr不能运行,请请参阅第三章章“安装
16、和使使用SQL Severr”。选择任务上SQQL Sevver程序组组中的ISQQL_w以启启动该程序。程程序启动时,首首先会出现一一个对话框,要要求输入服务务器信息和登登录信息(见见图10.11)。在Seever框中中,输入你的的SQL服务务器的名字。如如果服务器正正运行在本地地计算机上,服服务器名字就就是你计算机机的名字。在在登录信息框框中,输入一一个登录帐号号和密码或选选择使用“可可信连接”,然然后单击Coonnectt按钮。 图10。1注意:如果你将SQLL Seveer配置为使使用完整安全全或混合安全全,那么你可可以使用可信信连接。如果果你使用标准准安全,你则则需要提供用用户帐号和
17、密密码。要了解解更多信息,参参见第三章。如果一切正常,在在你单击连接接按钮后会出出现一个查询询窗口,如图图10.2所所示。(如果果有异常,请请参考第三章章) 图10.2在执行查询之前前,你需要选选择数据库。安安装 SQLL Seveer时你已为为自己创建了了一个数据库库,SQL Severr还有许多系系统数据库,如如masteer,moddel,mssdb,和ttempdbb。方便的是,SQQL Sevver带有一一个特殊的名名为pubss的例子数据据库。库 ppubs中包包含供一个虚虚拟的出版商商使用的各个个表。文档中中所有的例子子程序都是针针对这个库来来设计的。本本书中的许多多例子也使用用
18、这个数据库库。在查询窗口顶部部的DB下拉拉框中选择数数据库pubbs,这样你你就选择了数数据库。你所所有的查询都都将针对这个个库中的各个个表来执行。现现在你可以执执行你的第一一个查询了。这这真让人兴奋奋!你的第一个查询询将针对一个个名为auttrors的的表,表中包包含所有为某某个虚拟出版版商工作的作作者的相关数数据。单击查查询窗口并输输入以下的语语句:SELECT phonee FROMM authhors WWHERE au_naame=RRingerr输入完成后,单单击执行查询询按钮(一个个绿色三角形形,看起来像像VCR播放放键)。单击击此按钮后,任任何出现在查查询窗口中的的语句均会被被
19、执行。查询询窗口会自动动变成结果显显示窗口,你你可以看到查查询的结果(见见图10.33)。你看到的查询结结果也许与图图10.3所所示的不同。在在SQL SSever的的不同版本中中,库pubbs中的数据据会有所不同同。对SQLL Seveer 6.55来说,将会会找到两条记记录。结果显显示窗口中应应显示如下内内容:phone.801 8266_07522801 8266_07522(2 row(s) afffecteed)图10.3你所执行的SEELECT语语句从表auuthorss中取出所有有名字为Riinger的的作者的电话话号码。你通通过在WHEERE子句中中使用特殊的的选择条件来来限制
20、查询的的结果。你也也可以忽略选选择条件,从从表中取出所所有作者的电电话号码。要要做到这一点点,单击Quuery标签签,返回到查查询窗口,输输入以下的SSELECTT语句:SELECT Phonee FROMM authhors这个查询执行后后,会取出表表authoors中的所所有电话号码码(没有特定定的顺序)。如如果表autthors中中包含一百个个电话号码,会会有一百个记记录被取出,如如果表中有十十亿个电话号号码,这十亿亿条记录都会会被取出(这这也许需要一一些时间)。表authrss的字段包括括姓,名字,电电话号码,地地址,城市,州州和邮政编码码。通过在SSELECTT语句的第一一部份指定它
21、它们,你可以以从表中取出出任何一个字字段。你可以以在一个SEELECT语语句中一次取取出多个字段段,比如:SELECT au_fnname ,au_lnname, phonee FROMM authhors这个SELECCT语句执行行后,将取出出这三个列的的所有值。下下面是这个查查询的结果的的一个示例(为为了节省纸张张,只显示查查询结果的一一部分,其余余记录用省略略号代替):au_fnamme au_lnamee phonne .Johnsonn Whitte 4088 496_7223Marjoriie Greeen 4115 9866_70200Cheryl Carsoon 4155 54
22、8_7723Michaell OLeeary 4408 2886_24228 (23 roww(s) aaffectted)在SELECTT语句中,你你需要列出多多少个字段,你你就可以列出出多少。不要要忘了把字段段名用逗号隔隔开。你也可可以用星号(*)从一个表表中取出所有有的字段。这这里有一个使使用星号的例例子:SELECT * FROOM autthors这个SELECCT语句执行行后,表中的的所有字段的的值都被取出出。你会发现现你将在SQQL查询中频频繁使用星号号。技巧:你可以使用星号号来查看一个个表的所有列列的名字。要要做到这一点点,只需要在在执行完SEELECT语语句后看一下下查询结果
23、的的列标题。操作多个表到现在为止,你你只尝试了用用一句SQLL查询从一个个表中取出数数据。你也可可以用一个SSELECTT语句同时从从多个表中取取出数据,只只需在SELLECT语句句的FROMM从句中列出出要从中取出出数据的表名名称即可:SELECT au_lnname ,titlee FROMM authhors, titlees 这个SELECCT语句执行行时,同时从从表authhors和表表titlees中取出数数据。从表aauthorrs中取出所所有的作者名名字,从表ttitless中取出所有有的书名。在在ISQL/w程序中执执行这个查询询,看一下查查询结果。你你会发现一些些奇怪的出乎
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 数据 操作 基础知识 8078

限制150内