




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,SQLSERVER数据库基础,第四章数据查询,2020/5/7,1,中国职业教育联盟课程体系,中国职业教育联盟课程体系,成就百万精英,2,回顾3-1,SQL是什么?StructuredQueryLanguage:结构化查询语言T-SQL是什么?Transact-SQL,是SQL的加强版,对功能进行了扩充:如变量说明、流程控制、功能函数T-SQL的组成DML(数据操作语言)DCL(数据控制语言)DDL(数据定义语言),3,回顾3-2,T-SQL中的运算符有哪些?包括有:=!T-SQL中的逻辑运算符有哪些?And逻辑与Not取反Or逻辑或,4,回顾3-3,代码改错1、INSERTINTOStudents(SName,SAddress,SGrade,SEmail,SSEX)VALUES(张青裁,上海松江,6,ZQCS)2、INSERTINTOStudents(SCode,SName,SAddress,SGrade,SEmail,SSEX)VALUES(100,张青裁,上海松江,6,ZQCS,0)3、INSERTINTOStudentsInfo(姓名,地址,电子邮件)SELECTSName,SAddress,SEmailFROMStudents4、UpdateStudentsSetSName=胡斐SetSSex=1WhereSName=胡非,1、INSERTINTOStudents(SName,SAddress,SGrade,SEmail,SSEX)VALUES(张青裁,上海松江,6,ZQCS,0)2、INSERTINTOStudents(SName,SAddress,SGrade,SEmail,SSEX)VALUES(张青裁,上海松江,6,ZQCS,0)3、INSERTINTOStudentsInfo(姓名,地址,电子邮件)SELECTSName,SAddress,SEmailFROMStudents4、UpdateStudentsSetSName=胡斐,SSex=1WhereSName=胡非,去掉了sCode这个自增列,去掉了100,主键,自增长,5,预习检查,SQL语句中使用最频繁的是增、删、改、查中的哪种操作?查询(query)SQL语句中,执行查询会用到的关键字是?selectSQLserver中有哪四种系统内置函数?字符串处理函数日期时间函数聚合函数数学函数,6,本章任务,使用select实现各种查询。使用系统内置函数实现一些特殊的排序。,7,理解查询的机制熟练使用Select查询数据掌握常用的SqlServer系统内置函数,本章目标,8,什么是查询?,客户程序,SQLSERVER,SELECT*FROMSALES,查询产生一个虚拟表,看到的是表形式显示的结果,但结果并不真正存储,每次执行查询只是现从数据表中提取数据,并按照表的形式显示出来,9,怎么查的?,SELECT*FROMStudentsHWHERE所在班级=S202,常用运算符,常用的逻辑运算符如:,常用运算符,常用的条件运算符如:,大多与C语言中的一样,很容易理解,12,思考,既然查询得到的“结果集”的结构类似于一张表,那么可以在“结果集”上继续进行查询吗?可以的。我们称之为嵌套查询,13,查询的基本结构,查询的基本结构,SELECTFROMWHEREORDERBYASC或DESC,14,表结构如下,表的基本结构,表名为Score表中的数据如下,15,数据查询-基础,SELECT*FROMScore,SELECTStuNameFROMScore,查询全部的行和列查询单列多列查询,SELECTStuName,course,scoreFROMScore,16,数据查询中重命名列,SELECTscoreIdas课程编号,stuNameas姓名,courseas课程,scoreas成绩Fromscore,SELECTscoreId课程编号,stuName姓名,course课程,score成绩Fromscore,SELECT课程编号=scoreId,姓名=stuName,课程=course,成绩=scoreFromscore,在查询中为列取别名方法一方法二方法三,17,数据查询-空行常量列,SELECTSNameFROMStudentsWHERESEmailISNULL,SELECT姓名=SName,地址=SAddress,河北新龙AS学校名称FROMStudents,查询值为Null的行给查询结果增加常量列,18,数据查询-限制行数,SELECTTOP5*FROMscoreWHEREScore=90,SELECTTOP20Percent*FROMscoreWHEREScore=90,限制查询结果的行数返回百分之多少行,19,小结1,基本查询。含所有列、单列、多列查询Select*from表名whereSelect列1,列2,列nfrom表名where查询时重命名列名SELECTscoreIdas课程编号,stuNameas姓名from表名SELECTscoreId课程编号,stuName姓名from表名SELECT课程编号=scoreId,姓名=stuNamefrom表名,查询为空(null)的行,以及给结果加一个常量列SELECTSNameFROMStudentsWHERESEmailISNULLSELECT姓名=SName,地址=SAddress,河北新龙AS学校名称FROMStudents查询时限制返回行数SELECTTOP5*FROMscoreSELECTTOP20Percent*FROMscore,20,条件查询,带Between的范围查询带in的范围查询,SELECT*fromscorewherescorebetween88and95,SELECT*fromscorewherescorein(88,95),21,条件查询,使用and来实现条件查询使用or来实现条件查询,SELECT*fromscorewherescore85andcourse=html,SELECT*fromscorewherescore85orcourse=html,22,Orderby子句的应用,Orderby子句主要用于实现排序功能升序排列降序排列,Select*fromscoreorderbyscoreasc,Select*fromscoreorderbyscoredesc,23,数据查询-聚合函数,24,Groupby子句的应用,第一门课6个成绩取平均值,第二门课6个成绩取平均值,第三门课5个成绩取平均值,25,分组查询GROUPBY,分组查询就是将查询的结果按照一列或一些列的值进行分组.这样就可以对每一组进行相应的操作.,Selectstuname学员姓名,course课程名称,scoreas学员成绩FromscoreGroupbystuname,score,course,26,Having子句的应用,WHERE子句从数据源中去掉不符合其搜索条件的数据GROUPBY子句搜集数据行到各个组中,统计函数为各个组计算统计值HAVING子句去掉不符合其组搜索条件的各组数据行,27,分组查询思考,将工资大于2000的员工按部门分组,将人数大于1的部门及人数列出来。,思考:分析以下T-SQL的含义,SELECT部门编号,COUNT(*)FROM员工信息表WHERE工资=2000GROUPBY部门编号HAVINGCOUNT(*)1,28,小结1,范围查询betweenandin分组查询groupbyHaving子句去掉不符合其组搜索条件的各组数据行实现结果集的升序降序Orderby字段ascorderby字段desc,29,多表联接查询,定义:当查询中需要使用的数据不在一张表中时,需要使用多表查询多表查询的分类:内联结(INNERJOIN)外联结左外联结(LEFTJOIN)右外联结(RIGHTJOIN)完整外联结(FULLJOIN)交叉联结(CROSSJOIN),30,多表联结查询,31,多表联结查询内联结,内连接关键:找出连接的表之间关系连接的结果是两个表中的公共数据使用的表数据,32,多表联结查询内联结,SELECT*FROMuserinfoasainnerjoindeptinfoasbona.deptid=b.deptid,例子,33,SQLServer中的函数,字符串函数日期函数数学函数聚合函数,34,字符串函数,35,日期函数,36,数学函数,37,案例分析1要求,某公司印了一批充值卡,卡的密码是随机生成的,现在出现这个问题:卡里面的“O和0”(哦和零)“i和1”(哎和一),用户反映说看不清楚,公司决定,把存储在数据库中的密码中所有的“哦”都改成“零”,把所有的“i”都改成“1”;请编写SQL语句实现以上要求;数据库表名:Card;密码字段名:PassWord;,38,案例分析1分析,这是更新语句,需要使用UPDATE语句;因为牵涉到字符串的替换,需要使用到SQLServer中的函数Replace;,39,案例分析1T-SQL,UpdateCardSetPassWord=Replace(PassWord,O,0)UpdateCardSetPassWord=Replace(PassWord,i,1),UpdateCardSetPassWord=Replace(Replace(PassWord,O,0),i,1),两行SQL语句,一行SQL语句,40,案例分析2要求,在数据库表中有以下字符数据,如:13-1、13-2、13-3、13-10、13-100、13-108、13-18、13-11、13-15、14-1、14-2现在希望通过SQL语句进行排序,并且首先要按照前半部分的数字进行排序,然后再按照后半部分的数字进行排需,输出要排成这样:13-1、13-2、13-3、13-10、13-11、13-15、13-18、13-100、13-108、14-1、14-2数据库表名:SellRecord;字段名:ListNumber;,41,案例分析2分析,这是查询语句,需要使用SELECT语句需要使用到ORDERBY进行排序,并且在ORDERBY的排序列中,也需要重新计算出排序的数字来前半部分的数字,可以从先找到“-”符号的位置,然后,取其左半部分,最后再使用Convert函数将其转换为数字:Convert(int,Left(ListNumber,CharIndex(-,ListNumber)-1)后半部分的数字,可以先找到“-”符号的位置,然后把从第一个位置到该位置的全部字符替换为空格,最后再使用Convert函数将其转换为数字:Convert(int,Stuff(ListNumber,1,Charindex(-,ListNumber),),42,案例分析2T-SQL,SELECTListNumberFROMSellRecordORDERBYConvert(int,Left(ListNumber,CharIndex(-,ListNumber)-1),Convert(int,Stuff(ListNumber,1,Charindex(-,ListNumber),),43,总结,本章讲解的查询语句分为几个部分?Select列名列表from表名where查询条件查询全部女同学的SQL语句怎么写?Select*fromstudentwheresex=女在学员信息表中如何查询邮件地址是空的学
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健身房私教服务合同
- 4.1 尊重他人 说课稿-部编版道德与法治八年级上册
- 第18课 汉字输入我能行教学设计-2025-2026学年小学信息技术(信息科技)3年级武汉版
- 2023九年级数学上册 第二十二章 二次函数22.3 实际问题与二次函数第2课时 实际问题与二次函数(2)说课稿(新版)新人教版
- 2025年大学消防指挥专业题库-消防指挥专业概述研究报告
- 2025-2030儿科显微器械行业发展瓶颈及解决方案研究报告
- 2025-2030二手车交易市场供需状况与投资价值评估分析研究报告
- 2025-2030中国青年公寓行业政策不确定性应对策略报告
- 2025-2030中国青年公寓行业市场细分与差异化定位报告
- 2025-2030中国青年公寓行业ESG实践与可持续发展报告
- 剧本杀门店运营项目方案
- 诉讼费承担合同协议
- 中国LTCC用玻璃陶瓷粉行业市场前景预测及投资价值评估分析报告
- 福海县集中供热基础设施节能升级建设项目环境影响报告表
- 护理职业礼仪与沟通技巧
- 高标准农田建设项目主要施工方案与技术措施
- 2025年公路路面修复劳务承包合同
- SJG 55-2019 建筑起重机械防台风安全技术规程
- 论文发表怎么隐藏作者信息
- 赣州市第一届职业技能大赛-分赛场-32-中药炮制-技术文件
- 禁毒课程课件教学课件
评论
0/150
提交评论