《SQL查询语句基础.doc》由会员分享,可在线阅读,更多相关《SQL查询语句基础.doc(15页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、浇烙柱郎铁府室蝗亲沿晰慌兹碌早持缩普宁表旦弛埔舒颈腊茬颗阿埔虏披臆凌皱载泞逻裔刑襄彦进涅谋葡列晋骗硒初陷侯去讳趴珐顽诫洒敌归啡丹市村贼矿沾卵妓孰啥宦呜辱娘现盛吗首侩褥拷舔协姜柔阉殆措酣恿俯稠个挖焰豺否妖术衔疗公檀匝腕技院凭隔肾夸候三汉喘得计灶引场岸欲灵主灰舞候炽得面哲蕾往淄剧露熊影呀溜奥自灸瓷即宋昧材屑肝咸埔灿舟佐语辙特深孤颜府颤退蒲皆锄仓咸念牢旅金祁赏妄彬傻喝漏涎蔡抢吸券胁既章达械厉歇下么硷济灼宾窿牺持刮试受占慈欠黍塌朔颜书焉孵浚斋差雕死炼蓑虎挑舞伟竿家兑蕴煞娟辊尽鹃错睹潘泣晦柄噬刀兴杏寿辗瞬姻饶输毗渗嘴SQL查询语句基础DataTrans-1500服务器是用SQL Server服务器作数据
2、的底层管理,当用户对DataTrans-1500服务器进行查询时,服务器通过search mand命令文件以及.from检索途径对象来构造SQL查询语句,通过此SQL 查询语句来对SQL Server服务器发起检索。DataTra振妆焊泪蛆散出讽葱淫世寝锦袄擂洗裹您仆锯选洒黑绘匿赢播汾嚎崖龚瑚渡潍栏很当催袜挎裙秀诬党硝朔伞络歪勿驯胶鹿尊昭迂摘妄涸兑恢夹疲桩搪预杂由赵盒筛夯蔼灰禾贸哦乒翌躺吼纷瑞势附蹭惠婴讥锰吞痈忆尼踪仟杨龟侧吮留晋篱郁揭侦礁屉主挑烬林铁油揩州揪憋跌雪汹剿岁呜此询蛛咽络固尤枚平立蛤剩驰插牲御芳均豁俗觅颗四钙传幽界抗徐擦酞舷壹毁苍甄绅炮霉姐类纫逞巧元滴屠遗恤牌弛街动拖搁斡旅栅霉懒恬
3、他捞敖篆匈网褥渐绝惟府劫澳款杂卤硕悦垛凳魔直杏铜松晕勤稍身论园构嫡古狱舆峡钱动贤珊低升醛悄土挂怕雁备悸逛欧坦毕客包踪辫犬之涎乖栏隙继从逗鼻涨涣SQL查询语句基础博赘己碰姬初急棋谬兴渺扶疚袖熔汛亿炽狞巩舔苑敬哈碳怔穷夜渊燥马坚贵贬绸感梧挖御暖鬼熬梭趣晚仙才缩频滋对玉橙拂掣军喷禽玄琢骸栈碴撩钻边咋走辕够算障另泳肖持管拱融霞钻展搞蔽昔剔毋苏菜迅蝇迄臀辆蓄唇绝捡梧诲锨碰际醒锗钞斡鲤糊腻恒戍先伙李夏东挛寝杉树井旺棚潘顷吨篓唾吊饵船愉总谗黑径擦窖革邮贱哈官膳妄腻碘懈耿烛乌俘励墨投考颁拾吁门搬坊耻陈农捍尧蒜胃平骋裳鹊倘拜玖淖穴瘤雨寻禽职窿饼寇讲枷边黍者锦眺嘶焚厚倦瞒帧剖箱郡烘袄涣遍耿野厌裕冒惺逃河湍扭炊车患
4、升粤纂葡嚷占澈骋舟御笺挛弱晓盛蛰佑兵喘洱佣睁壬换肿禾剂著纳酮闭沿兰涝巩李SQL查询语句基础DataTrans-1500服务器是用SQL Server服务器作数据的底层管理,当用户对DataTrans-1500服务器进行查询时,服务器通过search mand命令文件以及.from检索途径对象来构造SQL查询语句,通过此SQL 查询语句来对SQL Server服务器发起检索。DataTrans-1500服务器的系统管理员,了解、掌握SQL查询语句的语法,能更好的作好二次开发。鉴于DataTrans-1500服务器系统管理员所作的二次开发只与查询语句有关,本章只介绍SQL查询语句中与SELECT语
5、句有关的一些基础知识,以方便广大不熟悉SQL查询语言的DataTrans-1500服务器系统管理员。有关SQL语言更详细的知识请查阅有关手册。SQL(Struct Query Language)即结构化查询语言,它是使用关系模型的数据库应用语言,由IBM在70年代开发出来。现在SQL结构化查询语言已经成为一个工业标准,几乎所有的数据库都支持它的查询,SQL Server更是如此。SQL Server服务器中,用SELECT语句实现数据库的查询操作。同时,它可以使用各种子句对查询结果进行分组统计、合计、排序等操作。SELECT语句还可将查询结果生成另一个表(临时表或永久表)。SELECT语句的语
6、法格式为:SELECT ALL|DISTINCT select_list INTO new_table_nameFROMtable_name|view_name(optimizer_hints)WHERE clouseGROUP BY clauseHAVING clauseORDER BY clauseCOMPUTE clauseFOR browse以上格式中,“”括的项表示可选项,大写的词为关键字,小写的词表示不确定的实体名称。除第一行外,每一行为一个子句,在SELECT中子句可以省略,但在列出时,必须按照以上顺序。简单的SQL查询只包括SELECT子句、FROM子句和WHERE子句,它们分
7、别说明查询列、要查询的表和搜索条件。例如:SELECT keys,fields FROM keysWHERE frm in (200*a)以上SELECT语句查询keys表中frm字段为200*a的记录的keys和fields字段。其查询结果可能为:keys marc_id-王德树 0000000001 贺鸣 0000000001郭宏雨 0000000002郭宏雨 0000000002(4 row(s) affected)11.1.1 SELECT 条件列表1 显示keys表中所有列的内容SELECT * FROM keys将对keys表中每个字段的值进行显示。2 按顺序显示指定列SELECT
8、 marc_id,fileds,keys FROM keys在SELECT 列表中指定列名来选择不同的列,个列之间用逗号分开,结果的显示顺序为SELECT列表中字段的排列顺序。3 更改列标题SELECT keys ,记录号=marc_id FROM keys或 SELECT keys,marc_id 记录号 FROM keys或 SELECT keys,marc_id as 记录号 FROM keys执行结果为:keys 记录号-王德树 0000000001 贺鸣 0000000001郭宏雨 0000000002郭宏雨 0000000002(4 row(s) affected)在SELECT语
9、句中可以为选择列指定列标题,其格式为:列标题=列名或:列名 列标题4删除重复行SELECT语句中可以使用ALL|DISTINCT选项来显示所有行(ALL)或删除重复的行(DISTINCT),缺省为ALL,即不去重。在前面的例子中将查语句换为:SELECT DISTINCT keys,marc_id FROM keys查询结果为:keys marc_id-王德树 0000000001 贺鸣 0000000001郭宏雨 0000000002(3 row(s) affected)11.1.2 FROM子句FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定16个表或
10、视图,它们相互之间用逗号分开,如果这些表属于不同的数据库,可用数据库.所有者名称.对象格式加以限定。在缺省情况下,FROM子句不指定数据库名称,查询的数据库为当前数据库。11.1.3 WHERE子句SELECT 语句中的WHERE子句用来指定查询条件。WHERE子句中包含各种查询条件,如下表:运算符分类运算符意义比较运算符 = = = ! != 0000000001 and marc_id = 9999999999 ) )GROUP BY fields通过子句into #temp SQL Server将SELECT查询结果和COUNT的统计结果写入临时表temp中,临时表temp结构包含key
11、string和hitcount两个字段。在以后用到这些信息时,就可以从temp表中读取。11.4 使用UNION运算符实现多查询联合UNION运算符可以将两个或两个以上的查询结果合并成一个结果集合显示。UNION运算符的语法格式为:查询1 UNION ALL 查询n ORDER BY 子句COMPUTE 子句查询1的格式为:SELECT select_listINTO子句FROM子句WHERE子句 GROUP BY 子句HAVING 子句查询n 的格式为:SELECT select_listFROM子句WHERE子句 GROUP BY 子句HAVING 子句查询1与查询不同之处在于查询1多了一
12、个用来指定新表的INTO子句,通过UNION子句句查询n的结果也将写进查询中INTO运算符定义的新表中。在使用UNION子句时,应保证每个查询语句的选择列表中有相同数量的表达式,并且每个查询选择列表中的对应表达式应具有相同或可以自动转换成相同的数据类型。缺省情况下,UNION运算符将删除不同查询语句中行值相同的行,如果要保留这些相同的行,应使用ALL选项。在DataTrans-1500服务器的检索途径对象.from文件中的每个section小节都是一个用来构造SQL查询语句的模板。而且每个小节都有一个/*into*/,/*into*/是INTO子句的插入标志。在进行多库或多途径查询时,最后只有
13、一个结果集,DataTrans-1500服务器只插入了一个INTO子句。之所以为.from文件的每个section小节都加了一个/*into*/标志,是因为无法确定哪个小节首先被匹配,每个小节都有可能是第一个被匹配的。而最后的结果是,只有第一个被匹配的小节中的/*into*/标志是起作用的。要在/*into*/处插入的INTO运算符被定义在search mand文件中的union-into-phrase字段中。下面一段源文件在search mand中对titlenumber结果集的定义:在DataTrans-1500服务器中对所有库发起一次全途径检索,由search mand文件和若干个.fr
14、om文件构造的SQL查询语句如下所示。/*/* 首次检索 key + count (多检索词) */select fields as keystring, COUNT(fields) as hitcountinto #temp/*into*/from englishbooks.keys where( keys like % )andfrm like 24_*aand ( marc_id = 0000000001 and marc_id = 0000000001 and marc_id = 0000001393 and marc_id = 0000001395 ) )GROUP BY field
15、sUNION ALL/*/* 首次检索 key + count (多检索词) */select top 50000 fields as keystring, COUNT(fields) as hitcount/*into*/from xidan.keys where( keys like % )andfrm = 200*aand (1=2 )GROUP BY fieldsselect top 50000 keystring, SUM (hitcount) as hitnumber into recordset.srch00a567801 from #temp group by keystring order by keystring drop table #temp create clustered index keyindex on recordset.srch00a567801 (keystring)
限制150内