日期:2011-05-02 15:21:00 来源:本站整理
SQL数据操作底子(初级)2[MSSQL防范]
本文“SQL数据操作底子(初级)2[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
利用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按钮.
注意:
假如你将SQL Sever配置为利用完好安全或混合安全,那么你可以利用可托衔接.假如你利用尺度安全,你则需求供利用户帐号和
密码.要理解更多信息,拜见第三章.
假如一切正常,在你单击衔接按钮后会呈现一个查询窗口,如图10.2所示.(假若有非常,请参考第三章)
在履行查询之前,你需求挑选数据库.安装 SQL Sever时你已为自己成立了一个数据库,SQL Sever还有很多系统数据库,如master,model,msdb,和tempdb.
便利的是,SQL Sever带有一个特别的名为pubs的例子数据库.库 pubs中包含供一个虚拟的出版商利用的各个表.文档中全部的例子程序都是针对这个库来计划的.本书中的很多例子也利用这个数据库.
在查询窗口顶部的DB下拉框中挑选数据库pubs,这样你就挑选了数据库.你全部的查询都将针对这个库中的各个表来履行.目前你可以履行你的第一个查询了.这真让人高兴!
你的第一个查询将针对一个名为autrors的表,表中包含全部为某个虚拟出版商工作的作者的相关数据.单击查询窗口并输入以下的语句:
SELECT phone FROM authors WHERE au_
输入完成后,单击履行查询按钮(一个绿色三角形,看起来像VCR播放键).单击此按钮后,任何呈目前查询窗口中的语句均会被执
行.查询窗口会自动变成后果显示窗口,你可以看到查询的后果(见图10.3).
你看到的查询后果大概与图10.3所示的差别.在SQL Sever的差别版本中,库pubs中的数据会有所差别.对SQL Sever 6.5来说,
将会找到两条记录.后果显示窗口中应显示以下内容:
phone
……………….
801 826_0752
801 826_0752
(2 row(s) affected)
你所履行的SELECT语句从表authors中取出全部名字为Ringer的作者的电话号码.你通过在WHERE子句中利用特别的挑选条件来限
制查询的后果.你也可以忽视挑选条件,从表中取出全部作者的电话号码.要做到这一点,单击Query标签,返回到查询窗口,输
入以下的SELECT语句:
SELECT Phone FROM authors
这个查询履行后,会取出表authors中的全部电话号码(没有特定的次序).假如表authors中包含一百个电话号码,会有一百个记
录被取出,假如表中有十亿个电话号码,这十亿条记录城市被取出(这大概需求一些时间).
表authrs的字段包含姓,名字,电话号码,地址,城市,州和邮政编码.通过在SELECT语句的第一部份指定它们,你可以从表中取
出任何一个字段.你可以在一个SELECT语句中一次取出多个字段,比方:
SELECT au_fname ,au_lname, phone FROM authors
这个SELECT语句履行后,将取出这三个列的全部值.下面是这个查询的后果的一个示例(为了节俭纸张,只显示查询后果的一部
分,别的记录用省略号替换):
au_fname au_lname phone
………………………………………………………………………….
Johnson White 408 496_7223
Marjorie Green 415 986_7020
Cheryl Carson 415 548_7723
Michael O’Leary 408 286_2428
…
(23 row(s) affected)
在SELECT语句中,你需求列出多少个字段,你便可以列出多少.不要忘了把字段名用逗号离隔.你也可以用星号(*)从一个表中
取出全部的字段.这里有一个利用星号的例子:
SELECT * FROM authors
这个SELECT语句履行后,表中的全部字段的值都被取出.你会发现你将在SQL查询中频繁利用星号.
本领:
你可以利用星号来查看一个表的全部列的名字.要做到这一点,只需求在履行完SELECT语句后看一下查询后果的列标题.
操作多个表
到目前为止,你只尝试了用一句SQL查询从一个表中取出数据.你也可以用一个SELECT语句同时从多个表中取出数据,只需在
SELECT语句的FROM从句中列出要从中取出数据的表名称便可:
SELECT au_lname ,title FROM authors, titles
这个SELECT语句履行时,同时从表authors和表titles中取出数据.从表authors中取出全部的作者名字,从表titles中取出全部
的书名.在ISQL/w程序中履行这个查询,看一下查询后果.你会发现一些奇特的出其不意的情形:作者的名字并没有和它们所著的
书相匹配,而是呈现了作者名字和书名的全部大概的组合,这大概不是你所但愿见到的.
出了什么不对?问题在于你没有指明这两个表之间的关系.你没有通过任何方法奉告SQL若何把表和表关联在一同.由于不知道若何
关联两个表,服务器只能简单地返回取自两个表中的记录的全部大概组合.
要从两个表中选出有意义的记录组合,你需求通过成立两表中字段的关系来关联两个表.要做到这一点的途径之一是成立第三个
表,专门用来描写别的两个表的字段之间的关系.
表authors有一个名为au_id的字段,包含有每个作者的唯一标识.表titles有一个名为title_id的字段,包含每个书名的唯一标
识.假如你能在字段au_id和字段title_id 之间成立一个关系,你便可以关联这两个表.数据库pubs中有一个名为titleauthor的
表,恰是用来完成这个工作.表中的每个记录包含两个字段,用来把表titles和表authors关联在一同.下面的SELECT语句利用了
这三个表以得到精确的后果:
SELECT au_name,title FROM authors,titles,titleauthor
WHERE authors.au_id=titleauthor.au_id
AND titles.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的字段.假如你想得到书名
及其出版商的一个列表,你可以利用以下的语句:
SELECT title,pub_name FROM titles,publishers
WHERE titles.pub_id=publishers.pub_id
当然,假如一本书是由两个出版商结合出版的,那么你需求第三个表来代表这种关系.
普通,当你予先知道两个表的字段间存在"多对多"关系时,就利用第三个表来关联这两个表.反之,假如两个表的字段间只有"一对一"或"一对多"关系,你可以利用大众字段来关联它门.
以上是“SQL数据操作底子(初级)2[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论