MYSQL教程之SQL数据操纵基本(低级)2
与其他数据库相比,MySQL易学易用。数据利用ISQL实行SELECT查询当你安装SQLSever时,你同时安装了一个叫作ISQL/w的使用程序。ISQL/w同意你实行交互的SQL查询。在把查询包含到你的ASP网页中之前,用ISQL/w对其举行测试长短常有效的。
注重:
在这本书的第一部分,你进修了如何安装和设置MicrosoftSQLSever。假如没有安装SQLSever大概SQLSever不克不及运转,请参阅第三章“安装和利用SQLSever”。
选择义务上SQLSever程序组中的ISQL_w以启动该程序。程序启动时,起首会呈现一个对话框,请求输出服务器信息和登录信息(见0.1)。在Sever框中,输出你的SQL服务器的名字。假如服务器正运转在当地盘算机上,服务器名字就是你盘算机的名字。
在登录信息框中,输出一个登录帐号和暗码或选择利用“可托毗连”,然后单击Connect按钮。
0。1
注重:
假如你将SQLSever设置为利用完全平安或夹杂平安,那末你可使用可托毗连。假如你利用尺度平安,你则必要供应用户帐号和
暗码。要懂得更多信息,拜见第三章。
假如统统一般,在你单击毗连按钮后会呈现一个查询窗口,如0.2所示。(假如有非常,请参考第三章)
0.2
在实行查询之前,你必要选择数据库。安装SQLSever时你已为本人创立了一个数据库,SQLSever另有很多体系数据库,如master,model,msdb,和tempdb。
便利的是,SQLSever带有一个特别的名为pubs的例子数据库。库pubs中包括供一个假造的出书商利用的各个表。文档中一切的例子程序都是针对这个库来计划的。本书中的很多例子也利用这个数据库。
在查询窗口顶部的DB下拉框当选择数据库pubs,如许你就选择了数据库。你一切的查询都将针对这个库中的各个表来实行。如今你能够实行你的第一个查询了。这真让人镇静!
你的第一个查询将针对一个名为autrors的表,表中包括一切为某个假造出书商事情的作者的相干数据。单击查询窗口并输出以下的语句:
SELECTphoneFROMauthorsWHEREau_name="Ringer"
输出完成后,单击实行查询按钮(一个绿色三角形,看起来像VCR播放键)。单击此按钮后,任何呈现在查询窗口中的语句均会被执
行。查询窗口会主动酿成了局显现窗口,你能够看到查询的了局(见0.3)。
你看到的查询了局大概与0.3所示的分歧。在SQLSever的分歧版本中,库pubs中的数据会有所分歧。对SQLSever6.5来讲,
将会找到两笔记录。了局显现窗口中应显现以下内容:
phone
……………….
801826_0752
801826_0752
(2row(s)affected)
0.3
你所实行的SELECT语句从表authors中掏出一切名字为Ringer的作者的德律风号码。你经由过程在WHERE子句中利用特别的选择前提来限
制查询的了局。你也能够疏忽选择前提,从表中掏出一切作者的德律风号码。要做到这一点,单击Query标签,前往到查询窗口,输
进以下的SELECT语句:
SELECTPhoneFROMauthors
这个查询实行后,会掏出表authors中的一切德律风号码(没有特定的按次)。假如表authors中包括一百个德律风号码,会有一百个记
录被掏出,假如表中有十亿个德律风号码,这十亿笔记录城市被掏出(这大概必要一些工夫)。
表authrs的字段包含姓,名字,德律风号码,地点,乡村,州和邮政编码。经由过程在SELECT语句的第一部分指定它们,你能够从表中取
出任何一个字段。你能够在一个SELECT语句中一次掏出多个字段,好比:
SELECTau_fname,au_lname,phoneFROMauthors
这个SELECT语句实行后,将掏出这三个列的一切值。上面是这个查询的了局的一个示例(为了节俭纸张,只显现查询了局的一部
分,其他纪录用省略号取代):
au_fnameau_lnamephone
………………………………………………………………………….
JohnsonWhite408496_7223
MarjorieGreen415986_7020
CherylCarson415548_7723
MichaelO’Leary408286_2428
…
(23row(s)affected)
在SELECT语句中,你必要列出几个字段,你就能够列出几。不要忘了把字段名用逗号离隔。你也能够用星号(*)从一个表中
掏出一切的字段。这里有一个利用星号的例子:
SELECT*FROMauthors
这个SELECT语句实行后,表中的一切字段的值都被掏出。你会发明你将在SQL查询中频仍利用星号。
技能:
你可使用星号来检察一个表的一切列的名字。要做到这一点,只必要在实行完SELECT语句后看一下查询了局的列题目。
操纵多个表
到如今为止,你只实验了用一句SQL查询从一个表中掏出数据。你也能够用一个SELECT语句同时从多个表中掏出数据,只需在
SELECT语句的FROM从句中列出要从中掏出数据的表称号便可:
SELECTau_lname,titleFROMauthors,titles
这个SELECT语句实行时,同时从表authors和表titles中掏出数据。从表authors中掏出一切的作者名字,从表titles中掏出一切
的书名。在ISQL/w程序中实行这个查询,看一下查询了局。你会发明一些奇异的出人意料的情形:作者的名字并没有和它们所著的
书相婚配,而是呈现了作者名字和书名的一切大概的组合,这大概不是你所但愿见到的。
出了甚么不对?成绩在于你没有指明这两个表之间的干系。你没有经由过程任何体例告知SQL怎样把表和表联系关系在一同。因为不晓得怎样
联系关系两个表,服务器只能复杂地前往取自两个表中的纪录的一切大概组合。
要从两个表当选出成心义的纪录组合,你必要经由过程创建两表中字段的干系来联系关系两个表。要做到这一点的路子之一是创立第三个
表,专门用来形貌别的两个表的字段之间的干系。
表authors有一个名为au_id的字段,包括有每一个作者的独一标识。表titles有一个名为title_id的字段,包括每一个书名的独一标
识。假如你能在字段au_id和字段title_id之间创建一个干系,你就能够联系关系这两个表。数据库pubs中有一个名为titleauthor的
表,恰是用来完成这个事情。表中的每一个纪录包含两个字段,用来把表titles和表authors联系关系在一同。上面的SELECT语句利用了
这三个表以失掉准确的了局:
SELECTau_name,titleFROMauthors,titles,titleauthor
WHEREauthors.au_id=titleauthor.au_id
ANDtitles.title_id=titleauthor.title_id
当这个SELECT语句实行时,每一个作者都将与准确的书名相婚配。表titleauthor指了然表authors和表titles的干系,它经由过程包括
分离来自两个表的各一个字段完成这一点。第三个表的独一目标是在别的两个表的字段之间创建干系。它自己不包括任何附加数
据。
注重在这个例子中字段名是怎样誊写的。为了区分表authors和表titles中不异的字段名au_id,每一个字段名后面都加上了表名前
缀和一个句号。名为author.au_id的字段属于表authors,名为titleauthor.au_id的字段属于表titleauthor,二者不会混
淆。
经由过程利用第三个表,你能够在两个表的字段之间创建各类范例的干系。比方,一个作者大概写了很多分歧的书,大概一本书大概由
很多分歧的作者配合完成。当两个表的字段之间有这类“多对多”的干系时,你必要利用第三个表来指明这类干系。
可是,在很多情形下,两个表之间的干系其实不庞大。好比你必要指明表titles和表publishers之间的干系。由于一个书名不成能与
多个出书商相婚配,你不必要经由过程第三个表来指明这两个表之间的干系。要指明表titles和表publishers之间的干系,你只需让这
两个表有一个大众的字段就能够了。在数据库pubs中,表titles和表publishers都有一个名为pub_id的字段。假如你想失掉书名
及其出书商的一个列表,你可使用以下的语句:
SELECTtitle,pub_nameFROMtitles,publishers
WHEREtitles.pub_id=publishers.pub_id
固然,假如一本书是由两个出书商团结出书的,那末你必要第三个表来代表这类干系。
一般,当你予先晓得两个表的字段间存在“多对多”干系时,就利用第三个表来联系关系这两个表。反之,假如两个表的字段间只要“一对一”或“一对多”干系,你可使用大众字段来联系关系它门。
一个相关的问题是第三方支持的资格问题,尽管直接来自厂商的支持和服务可以一定程度上减缓这个问题,但是,对于有的企业来说,通过强有力的本地化支持显然更有吸引力。 至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。 至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。 SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上. SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。 只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。 但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。 比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。
页:
[1]