SQL教学课程-高级查询.ppt

SQL教学课程-高级查询.ppt

ID:48039834

大小:1.31 MB

页数:34页

时间:2020-01-14

SQL教学课程-高级查询.ppt_第1页
SQL教学课程-高级查询.ppt_第2页
SQL教学课程-高级查询.ppt_第3页
SQL教学课程-高级查询.ppt_第4页
SQL教学课程-高级查询.ppt_第5页
资源描述:

《SQL教学课程-高级查询.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四章高级查询回顾指出下列语句的错误:CREATETABLEbank(userNameVARCHAR(10),balanceMONEY)INSERTINTObank(userName,balance)VALUES('张三',500)INSERTINTObank(userName,balance)VALUES('李四',700)DECLAREmymoneyINT(4)mymoney=0SELECTmymoney=balanceFROMbank建表语句后必须添加GO标志DECLARE@mymoneyINTSET@mymoney=0WHEREuserName='

2、张三’回顾IF@mymoney<100print'卡上目前余额不足100,请及时充值!'print'卡上余额为:'+@mymoneyprint'您的年利息为:'SELECT利息=CASEWHENbalance<100THENbalance*0.01WHENbalance>1000THENbalance*0.20WHENELSEbalance*0.10FROMbankWHEREuserName='张三‘GO多条语句添加BEGIN-END去掉WHEN缺少配对的END转换:convert(varchar(5),@mymoney)目标掌握简单子查询的用法掌握IN子

3、查询的用法掌握EXISTS子查询的用法应用T-SQL进行综合查询什么是子查询学员信息表问题:编写T-SQL语句,查看年龄比“李斯文”大的学员,要求显示这些学员的信息?分析:第一步:求出“李斯文”的年龄;第二步:利用WHERE语句,筛选年龄比“李斯文”大的学员;什么是子查询实现方法一:采用T-SQL变量实现DECLARE@ageINT--定义变量,存放李斯文的年龄SELECT@age=stuAgeFROMstuInfoWHEREstuName=‘李斯文’--求出李斯文的年龄--筛选比李斯文年龄大的学员SELECT*FROMstuInfoWHEREstuAge

4、>@ageGO什么是子查询实现方法二:采用子查询实现SELECT*FROMstuInfoWHEREstuAge>(SELECTstuAgeFROMstuInfowherestuName='李斯文')GO子查询子查询在WHERE语句中的一般用法:SELECT…FROM表1WHERE字段1>(子查询)外面的查询称为父查询,括号中嵌入的查询称为子查询UPDATE、INSERT、DELETE一起使用,语法类似于SELECT语句将子查询和比较运算符联合使用,必须保证子查询返回的值不能多于一个使用子查询替换表连接问题:查询笔试刚好通过(60分)的学员。学员信息表和成绩

5、表使用子查询替换表连接实现方法一:采用表连接SELECTstuNameFROMstuInfoINNERJOINstuMarksONstuInfo.stuNo=stuMarks.stuNoWHEREwrittenExam=60GO内连接(等值连接)使用子查询替换表连接实现方法二:采用子查询SELECTstuNameFROMstuInfoWHEREstuNo=(SELECTstuNoFROMstuMarksWHEREwrittenExam=60)GO子查询一般来说,表连接都可以用子查询替换,但有的子查询却不能用表连接替换子查询比较灵活、方便,常作为增删改查的筛

6、选条件,适合于操纵一个表的数据表连接更适合于查看多表的数据IN子查询问题:查询笔试刚好通过的学员名单。如何解决?IN子查询解决方法:采用IN子查询SELECTstuNameFROMstuInfoWHEREstuNoIN(SELECTstuNoFROMstuMarksWHEREwrittenExam=60)GO将=号改为ININ后面的子查询可以返回多条记录常用IN替换等于(=)的比较子查询IN子查询问题:查询参加考试的学员名单学员信息表和成绩表分析:判断一个学员是否参加考试其实很简单,只需要查看该学员对应的学号是否在考试成绩表stuMarks中出现即可IN子

7、查询/*--采用IN子查询参加考试的学员名单--*/SELECTstuNameFROMstuInfoWHEREstuNoIN(SELECTstuNoFROMstuMarks)GO演示:使用IN子查询参考语句NOTIN子查询问题:查询未参加考试的学员名单分析:加上否定的NOT即可EXISTS子查询例如:数据库的存在检测IFEXISTS(SELECT*FROMsysDatabasesWHEREname=’stuDB’)DROPDATABASEstuDBCREATEDATABASEstuDB…….—建库代码略EXISTS子查询IFEXISTS(子查询)语句EXI

8、STS子查询的语法:如果子查询的结果非空,即记录条数1条以上,则E

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。