欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    (精品)SQL知识-SQL2005子句.ppt

    • 资源ID:68126095       资源大小:283.50KB        全文页数:37页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    (精品)SQL知识-SQL2005子句.ppt

    SQL内部培训内部培训第二天第二天更多信息请登陆:http:/4006343551用友软件核心合作伙伴http:/ 总体内容介绍总体内容介绍SQL 中的子句中的子句表的联合表的联合子查询:内嵌的子查询:内嵌的SQL 子句子句操作数据操作数据 SQL 中的子句中的子句WHEREWHERE子句子句SELECT Tab1.name,Tab2.id FROM Tab1,Tab2 WHERE Tab1.id*=Tab2.id From tab1 as a,tab2 as b SQL 中的子句中的子句 ORDER BY ORDER BY order_by_expressionorder_by_expression ASC|DESC ASC|DESC ,.,.n n Select Select From From Where Where Order by Order by SQL 中的子句中的子句 Group by 子句 GROUP BY ALL group_by_expression ,.n WITH CUBE|ROLLUP 查询存货明细表中仓库01中存货010201所有的入库数量USE ufdata_888_2004SELECT cwhcode,cinvcode,sum(isnull(iainquantity,0)as iquantityFROM ia_subsidiaryWHERE cwhcode=01 and cinvcode=010201GROUP BY cwhcode,cinvcode SQL 中的子句中的子句下面是结果集:下面是结果集:Cwhcode cinvcode iquantityCwhcode cinvcode iquantity-01 010201 560.0(1 row(s)affected)SQL 中的子句中的子句HAVING HAVING 子句子句HAVING 使用使用 HAVING HAVING 子句选择行子句选择行HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似。WHERE 子句搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。查询出仓库01中,所有入库金额超过1000000的存货的入库数量USE ufdata_888_2004 SELECT cwhcode,cinvcode,sum(isnull(iainquantity,0)FROM ia_subsidiary GROUP BY cwhcode,cinvcodeHAVING SUM(isnull(iainprice,0)1000000 SQL 中的子句中的子句下面是结果集:下面是结果集:Cwhcode cinvcode iquantityCwhcode cinvcode iquantity-0403011100.0040303850.00403061220.0040308700.00403091350.00403101540.00403112180.00808017000.008080214000.00808033000.0 SQL 中的子句中的子句以下是没有聚合函数的 HAVING 子句的示例。查询存货明细表中供应商编码以03开头的各存货的采购入库数USE ufdata_888_2004 select cvencode,cinvcode,sum(isnull(iainquantity,0)as iquantityfrom ia_subsidiary where cvoutype=01group by cvencode,cinvcodehaving cvencode like 03%SQL 中的子句中的子句下面是结果集:cvencode cinvcode iquantitycvencode cinvcode iquantity-030190101017000.800000000000203019010102176.42000000000002030010101033520.0030040101035216.0030050101055216.0030080101052380.0030020101078821.003006010107120.00300601010880.003015010109165.0030150101109161.0030100101128879.0030100101139021.003015010114445.00301501011575.003013010116635.003013010117365.0030130101182995.0030150301125.0 SQL 中的子句中的子句如果HAVING中包含多个条件,那么这些条件将通过AND、OR或NOT组合在一起以下显示的是存货明细表中供应商编码以03开头并且入库数量超过3000的各存货的采购入库数USE ufdata_888_2004 select cvencode,cinvcode,sum(isnull(iainquantity,0)as iquantityfrom ia_subsidiary where cvoutype=01group by cvencode,cinvcodehaving cvencode like 03%and sum(isnull(iainquantity,0)3000 SQL 中的子句中的子句ORDER BY 可以用来为查询的结果按某种顺序排序(默认为升序)下面的示例显示使用 ORDER BY 子句将查询返回中的行按日期进行降序排序:select cwhcode,cinvcode,dvoudate,sum(iainquantity)as iquantity from ia_subsidiary where cvoutype=01group by cwhcode,cinvcode,dvoudate order by dvoudate desc SQL 中的子句中的子句理解应用理解应用 WHEREWHERE、GROUP BY GROUP BY 和和 HAVING HAVING 子句的正确序列对编写高效的查询代码子句的正确序列对编写高效的查询代码会有所帮助:会有所帮助:WHERE WHERE 子句用来筛选子句用来筛选 FROM FROM 子句中指定的操作所产生的行。子句中指定的操作所产生的行。GROUP BY GROUP BY 子句用来分组子句用来分组 WHERE WHERE 子句的输出。子句的输出。HAVING HAVING 子句用来从分组的结果中筛选行。子句用来从分组的结果中筛选行。SQL 中的子句中的子句对于可以在分组操作之前应用的搜索条件,在 WHERE 子句中指定它们更有效。这样可以减少必须分组的行数。应当在 HAVING 子句中指定的搜索条件只是那些必须在执行分组操作之后应用的搜索条件。SQL Server查询优化器可处理这些条件中的大多数。如果查询优化器确定 HAVING 搜索条件可以在分组操作之前应用,那么它就会在分组之前应用。查询优化器可能无法识别所有可以在分组操作之前应用的 HAVING 搜索条件。建议将所有这些搜索条件放在 WHERE 子句中而不是 HAVING 子句中。表的联合(表的联合(JoinJoin)又时所需的资料并不是放在同一个表中,在这个时候,你就要用到Join,如我们U8中的主子表 当然Join如何将不同的数据库的资料结合,还要看你如何使用它。一共有四种不同的Join的方式:INNER JoinFULL OUTER JoinLEFT OUTER JoinRIGHT OUTER Join 表的联合(表的联合(JoinJoin)INNERINNER指定返回每对匹配的行。废弃两个表中不匹配的行。如果未指定联接类型,则这是默认设置。FULL OUTERFULL OUTER指定在结果集中包含左表或右表中不满足联接条件的行,并将对应于另一个表的输出列设为 NULL。这是对通常由 INNER JOIN 返回的所有行的补充。LEFT OUTERLEFT OUTER指定在结果集中包含左表中所有不满足联接条件的行,且在由内联接返回所有的行之外,将另外一个表的输出列设为 NULL。RIGHT OUTERRIGHT OUTER指定在结果集中包含右表中所有不满足联接条件的行,且在由内联接返回的所有行之外,将与另外一个表对应的输出列设为 NULL。表的联合(表的联合(JoinJoin)SelectFrom On例子Useufdata_888_2004Select*Fromrdrecord InnerJoinrdrecords On rdrecord.id=rdrecords.id 表的联合(表的联合(JoinJoin)OuterJoin的语法 SelectFrom OuterJoinOn 表的联合(表的联合(JoinJoin)OuterJoin是inclusive(包容性吧)不同于InnerJoin的exclusive(排他性)LeftOuterJoin的查询结果会包含所有Left资料表的资料,对应的Right表的记录用Null填写;RightOuterJoin的查询就会包含所有Right资料表的资料,对应的Left表的记录用Null填写 表的联合(表的联合(JoinJoin)LeftOuterJoin子句Select*Fromap_detail LeftOuterJoininventory On ap_detail.cinvcode=inventory.cinvcode 表的联合(表的联合(JoinJoin)RightOuterJoin子句子句Select*Frominventory RightJoinap_detail Oninventory.cinvcode=ap_detail.cinvcode 表的联合(表的联合(JoinJoin)FULL OUTER Join子句子句FULL OUTER Join指定在结果集中包含左表或右表中不满足联接条件的行,并将对应于另一个表的输出列设为 NULL。这是对通常由 INNER JOIN 返回的所有行的补充。Union运算符UNION 运算符运算符将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中的所有查询的全部行。这与使用联接组合两个表中的列不同。使用 UNION 组合两个查询的结果集的两个基本规则是:所有查询中的列数和列的顺序必须相同。数据类型必须兼容。UNION 运算符Table1 和和 Table2 具有相同的两列结构。具有相同的两列结构。UNION 运算符下面的查询在这两个表之间创建下面的查询在这两个表之间创建 UNION 运算:运算:SELECT*FROM Table1 SELECT*FROM Table1 UNION UNION SELECT*FROM Table2 SELECT*FROM Table2 UNION 运算符下面是结果集:下面是结果集:ColumnA ColumnB-abc 1 def 2 ghi 3 jkl 4 mno 5 子查询:内嵌的子查询:内嵌的SQL SQL 子句子句if exists(select*from dbo.sysobjects where id=object_id(Ndbo.PO_Podetails)and OBJECTPROPERTY(id,NIsUserTable)=1)drop table dbo.PO_PodetailsGO 子查询:内嵌的子查询:内嵌的SQL SQL 子句子句USE pubs GO SELECT DISTINCT pub_name FROM publishers WHERE EXISTS(SELECT*FROM titles WHERE pub_id=publishers.pub_id AND type=business)GO 子查询:内嵌的子查询:内嵌的SQL SQL 子句子句USE pubs USE pubs GO GO SELECT distinct pub_name SELECT distinct pub_name FROM publishers FROM publishers WHERE pub_id WHERE pub_id IN(SELECT pub_id FROM titles WHERE type=business)IN(SELECT pub_id FROM titles WHERE type=business)GO GO 子查询:内嵌的子查询:内嵌的SQL SQL 子句子句NOT EXISTSNOT EXISTSNOT EXISTS NOT EXISTS 的作用与的作用与 EXISTS EXISTS 正相反。如果子查询没有返回行,则满足正相反。如果子查询没有返回行,则满足 NOT NOT EXISTS EXISTS 中的中的 WHERE WHERE 子句。本示例查找不出版商业书籍的出版商的名称:子句。本示例查找不出版商业书籍的出版商的名称:USE pubs USE pubs GO GO SELECT pub_name SELECT pub_name FROM publishers FROM publishers WHERE WHERE NOT EXISTS(SELECT*FROM titles WHERE pub_id=NOT EXISTS(SELECT*FROM titles WHERE pub_id=publishers.pub_id AND type=business)publishers.pub_id AND type=business)ORDER BY pub_name ORDER BY pub_name GO GO 操作数据(操作数据(INSERT UPDATE DELETEINSERT UPDATE DELETE)INSERT INTOINSERT INTO子句子句INSERT INTO INSERT INTO titles(title_id,title,type,pub_id,price)titles(title_id,title,type,pub_id,price)VALUES(BU9876,Creating Web Pages,business,1389,VALUES(BU9876,Creating Web Pages,business,1389,29.99)29.99)操作数据(操作数据(INSERT UPDATE DELETEINSERT UPDATE DELETE)UPDATEUPDATE子查询子查询子查询可以嵌套在子查询可以嵌套在 UPDATEUPDATE、DELETE DELETE 和和 INSERT INSERT 语句以及语句以及 SELECT SELECT 语句中。语句中。下面的查询将下面的查询将手机主辅料仓库的出入单的记帐人标志置空手机主辅料仓库的出入单的记帐人标志置空。该查询更新。该查询更新 rdrecord rdrecord 表;其子查表;其子查询引用询引用 warehouse warehouse 表。表。UPDATE rdrecordUPDATE rdrecordSET caccounter=null SET caccounter=null WHERE cwhcode IN(SELECT cwhcode FROM warehouse WHERE cwhname=WHERE cwhcode IN(SELECT cwhcode FROM warehouse WHERE cwhname=手机主辅料手机主辅料仓库仓库)下面是使用联接的等效下面是使用联接的等效 UPDATE UPDATE 语句:语句:UPDATE rdrecordUPDATE rdrecordSET caccounter=null SET caccounter=null FROM rdrecordFROM rdrecordINNER JOIN warehouse INNER JOIN warehouse ON rdrecord.cwhcode=warehouse.cwhcode AND cwhname=ON rdrecord.cwhcode=warehouse.cwhcode AND cwhname=手机主辅料仓库手机主辅料仓库 操作数据(操作数据(INSERT UPDATE DELETEINSERT UPDATE DELETE)DELETEDELETE子句子句通过下面嵌套的查询,可以删除商业书籍的所有销售记录:通过下面嵌套的查询,可以删除商业书籍的所有销售记录:DELETE ia_subsidiaryDELETE ia_subsidiaryWHERE id WHERE id IN(SELECT autoid FROM rdrecords WHERE cinvcode=IN(SELECT autoid FROM rdrecords WHERE cinvcode=0301)0301)操作数据(操作数据(INSERT UPDATE DELETEINSERT UPDATE DELETE)Update使用注意(where后的条件一定要验证)Select*from accinformation where cid=99 and cvalue=8.60Update accinformation set cvalue=8.50where cid=99 and cvalue=8.60 操作数据(操作数据(Select IntoSelect Into)Select into 子句子句SELECT csbvcode,ddate,ccuscode,iquantity,imoney INTO NewShippersFROM salebillvouch JOIN salebillvouchs ON(salebillvouch.sbvid=salebillvouchs.sbvid)总结总结1.SQL 1.SQL 中的子句(中的子句(WHEREWHERE,ORDER BYORDER BY,GROUP BYGROUP BY,HAVINGHAVING),子查询中),子查询中EXISTEXIST如何使用如何使用2.2.表的联合(表的联合(Inner JoinInner Join;Left Out JoinLeft Out Join;Right Out Right Out JoinJoin;Full Out JoinFull Out Join)3.INSERT UPDATE 3.INSERT UPDATE 和和DELETE DELETE 来处理数据来处理数据4.Select into4.Select into语句语句 结束结束

    注意事项

    本文((精品)SQL知识-SQL2005子句.ppt)为本站会员(s****8)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开