sql查询语句基础_第1页
sql查询语句基础_第2页
sql查询语句基础_第3页
sql查询语句基础_第4页
sql查询语句基础_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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_name>FROMtable_name|view_name(optimizer_hints)<,table_name2|view_name2(optimizer_hints),table_name16|view_name16(optimizer_hints)>WHERE clouseGROUP BY clauseHAVING clauseORDER BY clauseCOMPUTE clauseFOR browse以上格式中,“括的项表示可选项,大写的词为关键字,小写的词表示不确

7、定的实体名称。除第一行外,每一行为一个子句,在SELECT中子句可以省略,但在列出时,必须按照以上顺序。简单的SQL查询只包括SELECT子句、FROM子句和WHERE子句,它们分别说明查询列、要查询的表和搜索条件。例如:SELECT keys,fields FROM keysWHERE frm in (200*a)以上SELECT语句查询keys表中frm字段为200*a的记录的keys和fields字段。其查询结果可能为:keys marc_id-王德树 0000000001 贺鸣 0000000001郭宏雨 0000000002郭宏雨 00000000024 row(s) affecte

8、d11.1.1 SELECT 条件列表1> 显示keys表中所有列的内容SELECT * FROM keys将对keys表中每个字段的值进行显示。2> 按顺序显示指定列SELECT 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 ke

9、ys执行结果为:keys 记录号-王德树 0000000001 贺鸣 0000000001郭宏雨 0000000002郭宏雨 00000000024 row(s) affected在SELECT语句中可以为选择列指定列标题,其格式为:列标题=列名或:列名 列标题4>删除重复行SELECT语句中可以使用ALL|DISTINCT选项来显示所有行ALL或删除重复的行DISTINCT,缺省为ALL,即不去重。在前面的例子中将查语句换为:SELECT DISTINCT keys,marc_id FROM keys查询结果为:keys marc_id-王德树 0000000001 贺鸣 000000

10、0001郭宏雨 00000000023 row(s) affected11.1.2 FROM子句FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定16个表或视图,它们相互之间用逗号分开,如果这些表属于不同的数据库,可用数据库.所有者名称.对象格式加以限定。在缺省情况下,FROM子句不指定数据库名称,查询的数据库为当前数据库。11.1.3 WHERE子句SELECT 语句中的WHERE子句用来指定查询条件。WHERE子句中包含各种查询条件,如下表:运算符分类 运算符 意义 比较运算符 > >= < &l

11、t;= = <> !> !< 大小比较 BETWEENAND NOT BETWEENAND IN NOT IN LIKE NOT LIKE IS NULL NOT IS NULL AND OR NOT 在DataTrans-1500效劳器的检索途径对象配置文件中,经常用到的条件运算符是:列表运算符IN和模式匹配符LIKE。列表运算符IN列表运算符的格式为:表达式 NOT IN 列表项1,列表项2,列表项3它要求查询时表达式的值不在列表内。例如

12、:SELECT keys FROM keys WHERE frm IN (200*a,201*b)表示要查询的keys来源必须在(200*a,201*b)中,即frm字段值为200*a或201*b。模式匹配符 LIKE模式匹配符NOT LIKE 常用于模糊查询,它判断列值是否与指定的字符串格式匹配。在SQL Server中可使用的匹配符有以下几种:百分号%:可匹配任意类型和长度的字符。下划线_:匹配单个任意字符。方括号:指定一个字符、字符串或范围,要求所匹配对象为它们中的任何一个。:与取值相同,但要求所匹配的对象为指定范围以外的任何一个字符。例如下面的语句利用通配符%来查找以“王开头的字符串:

13、SELECT keys FROM keys WHERE keys LIKE 赵%查询结果为:keys -赵宝山赵成和赵并林3 row(s) affected11.2 用GROUP BY子句进行统计GROUP BY 子句的语法格式为:GROUP BY ALL aggregate_free_expression, aggregate_free_expression在SELECT 语句中,GROUP BY子句和集合函数对数据库进行分组统计,在查询结果中,每一组统计出一个结果。例如:select fields as keystring, COUNT(fields) as hitcountfrom ke

14、ys where( keys like '%德' )andfrm like '200*a'GROUP BY fields执行的结果为:keystring hitcount李祖德 1桑关德 1张京德 1张冲德 1 4 row(s) affected在上面的例子中,GROUP BY子句和集合函数COUNT按照fields字段对keys表进行分组统计。集合函数COUNT对每一组的行数进行计算,分组的标准是GROUP BY中定义的字段 fields。11.3 INTO子句用查询结果创立新表SELECT语句中使用INTO选项可以将查询结果写进新表,新表结构与SE

15、LECT语句选择列表中的字段相同。例如:select fields as keystring, COUNT(fields) as hitcountinto #temp/*into*/from englishbooks.keys where( keys like '%鲁迅%' )andfrm like '24_*a'and ( marc_id >= '0000000001' and marc_id <= '9999999999' ) )GROUP BY fields通过子句into #temp SQL Server将SE

16、LECT查询结果和COUNT的统计结果写入临时表temp中,临时表temp结构包含keystring和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子句WH

17、ERE子句 GROUP BY 子句HAVING 子句查询1与查询不同之处在于查询1多了一个用来指定新表的INTO子句,通过UNION子句句查询n的结果也将写进查询中INTO运算符定义的新表中。在使用UNION子句时,应保证每个查询语句的选择列表中有相同数量的表达式,并且每个查询选择列表中的对应表达式应具有相同或可以自动转换成相同的数据类型。缺省情况下,UNION运算符将删除不同查询语句中行值相同的行,如果要保存这些相同的行,应使用ALL选项。在DataTrans-1500效劳器的检索途径对象.from文件中的每个section小节都是一个用来构造SQL查询语句的模板。而且每个小节都有一个/*i

18、nto*/,/*into*/是INTO子句的插入标志。在进行多库或多途径查询时,最后只有一个结果集,DataTrans-1500效劳器只插入了一个INTO子句。之所以为.from文件的每个section小节都加了一个/*into*/标志,是因为无法确定哪个小节首先被匹配,每个小节都有可能是第一个被匹配的。而最后的结果是,只有第一个被匹配的小节中的/*into*/标志是起作用的。要在/*into*/处插入的INTO运算符被定义在search mand文件中的union-into-phrase字段中。下面一段源文件在search mand中对titlenumber结果集的定义:<record

19、set name=titlenumberdefinition = "_TITLE varchar(255), _HITCOUNT int"union-into-phrase = "into #temp"segment-phrase = "and ( %segment("%defaultsqldb%/%keys%/%recordid%")%)"after-union = "select top 50000 keystring, SUM (hitcount) as hitnumber into %tempta

20、blename% from #temp group by keystring order by keystring drop table #temp create clustered index keyindex on %temptablename% (keystring)"statis = "select COUNT(*) as totalkey , SUM(hitnumber) as totalrec from %temptablename%"catch-key-parameter-name = "recordset,word,link,match,

21、from,fromtitle"order-phrase = "order by keystring">在DataTrans-1500效劳器中对所有库发起一次全途径检索,由search mand文件和假设干个.from文件构造的SQL查询语句如下所示。/*/* 首次检索 key + count (多检索词) */select fields as keystring, COUNT(fields) as hitcountinto #temp/*into*/from englishbooks.keys where( keys like '%' )an

22、dfrm like '24_*a'and ( marc_id >= '0000000001' and marc_id <= '9999999999' ) )GROUP BY fieldsUNION ALL/*/* 首次检索 key + count (多检索词) */select top 50000 fields as keystring, COUNT(fields) as hitcount/*into*/from 出版社.keys where( keys like '%' )andfrm = '101*a'GROUP BY fieldsUNION ALL/*/* 首次检索 key + count (多检索词) */select top 50000 fields as keystring, COUNT(fields) as hitcount/*into*/from dt1500sqldb2.keys where( keys like '%' )andfrm in ('200*a')and ( marc_id >= '0000000001' an

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论