数据查询与更新课件.ppt
《数据查询与更新课件.ppt》由会员分享,可在线阅读,更多相关《数据查询与更新课件.ppt(79页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、SQL SERVER 2005 SQL SERVER 2005 案例教程案例教程关于数据查询与更新第1页,此课件共79页哦5.1 简单数据查询lSELECT语句的组成语句的组成子句解释SELECT后跟一组列的列表,或者一个星号表示想要返回所有的列FROM后跟一个表或者视图的名字,或者带有连接表达式的多个表WHERE后跟过滤规则ORDER BY后跟一组列的列表进行排序第2页,此课件共79页哦5.1.1 SELECT和FROM子句1、指定返回列名、指定返回列名【例例 5.1】返回返回XS表中所有的记录的表中所有的记录的XH(学号)(学号)、XM(姓名姓名)、CSRQ(出生日期出生日期)列。列。SE
2、LECT XH,XM,CSRQ FROM XS第3页,此课件共79页哦5.1.1 SELECT和FROM子句 2、返回所有列、返回所有列SELECT*FROM XS第4页,此课件共79页哦5.1.1 SELECT和FROM子句3、在、在SELECT子句后加入计算列子句后加入计算列(1)SELECT XH,XM+(+XB+),CSRQ FROM XS(2)SELECT XH,XM,GETDATE(),10,CSRQ FROM XS第5页,此课件共79页哦5.1.2 列别名和表别名1、原始列名原始列名 AS 别名。别名。SELECT XH AS 学号学号,XM+(+XB+)AS 姓名性别姓名性别,
3、CSRQ AS 出生日期出生日期FROM XS第6页,此课件共79页哦5.1.2 列别名和表别名2、原始列名原始列名 别名别名 SELECT XH 学号学号,XM 姓名姓名,CSRQ 出生出生日期日期 FROM XS3、别名别名=原始列名原始列名SELECT学号学号=XH,姓名姓名=XM,出生日期出生日期=CSRQ FROM XS第7页,此课件共79页哦5.1.2 列别名和表别名l表别名:表别名:1、“始表名始表名 AS 别名别名”SELECT XH,XM,CSRQSELECT XH,XM,CSRQFROM XS aFROM XS a 2、“原始表名原始表名 别名别名”SELECT XH,XM
4、,CSRQ SELECT XH,XM,CSRQ FROM XS AS aFROM XS AS a第8页,此课件共79页哦5.1.3 WHERE子句例:从例:从XS表中查找姓名为表中查找姓名为“曹敏曹敏”的同学的学的同学的学号,姓名,性别。号,姓名,性别。SELECT XH,XM,XB SELECT XH,XM,XB FROM XS FROM XS WHERE XM=WHERE XM=曹敏曹敏 第9页,此课件共79页哦5.1.3 WHERE子句lNULL值参与的比较:值参与的比较:当字段未设置值或变量未设值时,其值为当字段未设置值或变量未设值时,其值为NULL,即不包含任何值即不包含任何值(1)
5、、当)、当ANSI_NULLS为为OFF时时(默认默认),任何,任何与与NULL值的运算结果都为值的运算结果都为NULL,任何与任何与NULL的比较结果都为的比较结果都为UNKNOW(不确定不确定)。(2)当)当ANSI_NULLS为为ON时,除了时,除了=和和!=或或者者比较运算符外,其他比较运算符和比较运算符外,其他比较运算符和NULL比较也会得到比较也会得到UNKNOWN值。值。第10页,此课件共79页哦5.1.3 WHERE子句l例例1:SELECT*SELECT*FROM XS FROM XS WHERE SFZ=NULL OR SFZ!=NULLWHERE SFZ=NULL OR
6、SFZ!=NULL结果:空结果:空例例2 2:SELECT*SELECT*FROM XS FROM XS WHERE SFZ is NULLWHERE SFZ is NULL第11页,此课件共79页哦5.1.3 WHERE子句l例例3:SET ANSI_NULLS OFFSELECT*FROM XS WHERE SFZ=NULL第12页,此课件共79页哦5.1.4 ORDER BY子句1、单个字段排序、单个字段排序SELECT*FROM XS ORDER BY XH -按学号进行排序按学号进行排序NULL排最前面第13页,此课件共79页哦5.1.4 ORDER BY子句2、多字段排序、多字段排
7、序lORDER BY后面可以指定多个排序字段,字后面可以指定多个排序字段,字段之间以段之间以“,”分隔。分隔。l在指定了多列情况下,首先按第一列排序,在指定了多列情况下,首先按第一列排序,在第一列相同的情况下按第二列排序,以此在第一列相同的情况下按第二列排序,以此类推。类推。第14页,此课件共79页哦5.1.4 ORDER BY子句例:例:SELECT XH,XM,XB,DATEDIFF(DAY,CSRQ,GETDATE()/365 AS NL FROM XS ORDER BY XM,NL注意:汉字按拼音首字母排序注意:汉字按拼音首字母排序此处有空格第15页,此课件共79页哦5.1.4 ORD
8、ER BY子句降序排序:降序排序:如果没有特别说明,值是以升序序列进行排序的。你也可以如果没有特别说明,值是以升序序列进行排序的。你也可以选择使用选择使用ASC关键字指定升序排序。关键字指定升序排序。如果你希望以降序排列,则在如果你希望以降序排列,则在ORDER BY后面使用后面使用DESC关键字。关键字。例:例:SELECT*FROM XS ORDER BY CSRQ DESC 第16页,此课件共79页哦5.1.5 TOP子句lTOP子句用来返回排在前面特定数量的记录,而不管子句用来返回排在前面特定数量的记录,而不管符合条件的行是多少。有两种方式用来指定返回的行:符合条件的行是多少。有两种方
9、式用来指定返回的行:指定排在前面的绝对记录数,如:指定排在前面的绝对记录数,如:SELECT TOP(5)*SELECT TOP(5)*FROM XS FROM XS ORDER BY CSRQ DESCORDER BY CSRQ DESC指定排在前面的记录数占总行数的百分比指定排在前面的记录数占总行数的百分比SELECT TOP(0.1)PERCENT*SELECT TOP(0.1)PERCENT*FROM XS FROM XS ORDER BY CSRQ DESCORDER BY CSRQ DESC第17页,此课件共79页哦5.1.5 TOP子句lWITH TIES子句子句WITH TIE
10、S子句用来解决在使用子句用来解决在使用TOP子句按子句按百分比返回后,与最后一名数据相同的记录百分比返回后,与最后一名数据相同的记录不能出现在结果集中的问题。不能出现在结果集中的问题。例:例:SELECT TOP(5)WITH TIES *FROM XS ORDER BY CSRQ DESC第18页,此课件共79页哦5.1.6 DISTINCT5.1.6 DISTINCT关键字关键字DISTINCT用来从结果集中去除重复的记录。用来从结果集中去除重复的记录。例:统计学生共来自于哪些民族。例:统计学生共来自于哪些民族。语句语句1:SELCET MZ FROM XS语句语句2:SELCET DIS
11、TINCT MZ FROM XS第19页,此课件共79页哦5.2 5.2 分组查询分组查询l5.2.1 聚合函数聚合函数特点:作用在多条记录上。换句话说,函数的返回值建立在特点:作用在多条记录上。换句话说,函数的返回值建立在对多条记录进行统计的基础上。对多条记录进行统计的基础上。常用聚合函数:常用聚合函数:SUM,COUNT,MAX,MIN,AVG1、计算总分、计算总分SELECT SUM(FS)SELECT SUM(FS)FROM CJ FROM CJ WHERE XQDM=21 AND XSDM=20WHERE XQDM=21 AND XSDM=20第20页,此课件共79页哦5.2.1 聚
12、合函数2、计算最高分、最低分和平均分:、计算最高分、最低分和平均分:SELECT MAX(FS)最高分最高分,MIN(FS)最低分最低分,AVG(FS)平均分平均分 FROM CJ WHERE XQDM=5 AND XSDM=163483、统计班级人数、统计班级人数SELECT COUNT(*)FROM XS WHERE BJDM=30第21页,此课件共79页哦5.2.2 GROUP BY 子句lGROUP BY 子句子句将查询结果按某一列或多列值分组输出,值相等的为一组。l对查询结果分组的目的是使集函数作用于每一个组,即每一个组都有一个函数值。第22页,此课件共79页哦5.2.2 GROUP
13、 BY 子句例:查询每个同学的最高分、最低分和平均分。例:查询每个同学的最高分、最低分和平均分。SELECT XSDM,MAX(FS)最高分最高分,MIN(FS)最最低分低分,AVG(FS)平均分平均分 FROM CJ GROUP BY XSDM第23页,此课件共79页哦5.2.2 GROUP BY 子句例:每个同学在不同学期的最高分、最低分、例:每个同学在不同学期的最高分、最低分、平均分:平均分:SELECT XSDM,XQDM,MAX(FS)最高分最高分,MIN(FS)最低分最低分,AVG(FS)平均分平均分FROM CJ GROUP BY XSDM,XQDM第24页,此课件共79页哦5.
14、2.2 GROUP BY 子句注意:注意:l出现在出现在GROUP BY 子句后面的字段列表应该也出现在子句后面的字段列表应该也出现在SELECT子句中,否则获得的数据可能没有意义。如:子句中,否则获得的数据可能没有意义。如:SELECT MAX(FS)SELECT MAX(FS)最高分最高分,MIN(FS),MIN(FS)最低分最低分,AVG(FS),AVG(FS)平均分平均分 FROM CJ FROM CJ GROUP BY XSDMGROUP BY XSDM上述语句执行后的结果集中你将无法确定成绩属于哪位上述语句执行后的结果集中你将无法确定成绩属于哪位学生学生第25页,此课件共79页哦5
15、.2.2 GROUP BY 子句l出现在出现在SELECT子句中的字段列表除了聚合子句中的字段列表除了聚合函数外,都必须出现在函数外,都必须出现在GROUP BY 子句后面。子句后面。例如,下面的语句将会报错:例如,下面的语句将会报错:SELECT XSDM,SELECT XSDM,XQDMXQDM,MAX(FS),MAX(FS)最高分最高分,MIN(FS),MIN(FS)最低最低分分,AVG(FS),AVG(FS)平均分平均分FROM CJ FROM CJ GROUP BY XSDMGROUP BY XSDM第26页,此课件共79页哦5.2.3 HAVING子句lHAVING子句用来对分组后
16、的数据进行筛选子句用来对分组后的数据进行筛选例:例:查询平均成绩大于查询平均成绩大于65分的学生的最高分、分的学生的最高分、最低分和平均成绩。最低分和平均成绩。SELECT XSDM,MAX(FS)最高分最高分,MIN(FS)最最低分低分,AVG(FS)平均分平均分FROM CJ GROUP BY XSDM HAVING AVG(FS)65第27页,此课件共79页哦5.2.3 HAVING子句lHAVING子句和子句和WHERE子句很相似,均用于子句很相似,均用于设置数据筛选条件。设置数据筛选条件。lWHERE子句对分组前的数据进行筛选,条件子句对分组前的数据进行筛选,条件中不能包含聚合函数;
17、中不能包含聚合函数;lHAVING子句对分组过后的数据进行筛选,子句对分组过后的数据进行筛选,条件中经常包含聚合函数。条件中经常包含聚合函数。l HAVING子句必须和子句必须和GROUP BY子句联合使子句联合使用用第28页,此课件共79页哦5.3 联接查询l当返回的数据集中需要包含位于多个表中的当返回的数据集中需要包含位于多个表中的数据时,需要用到联接查询。及联接查询用数据时,需要用到联接查询。及联接查询用于在一个查询语句中同时返回多个表中的数于在一个查询语句中同时返回多个表中的数据据第29页,此课件共79页哦5.3.1 5.3.1 交叉联接交叉联接(CROSS JOIN)(CROSS J
18、OIN)l交叉联接返回两个表的笛卡尔积。即:返回的数据集为一个表中的每一笛卡尔积。即:返回的数据集为一个表中的每一行与另一个表中每一行的组合。行与另一个表中每一行的组合。例:简单交叉联接例:简单交叉联接SELECT*FROM KC CROSS JOIN XQ返回的记录数量为两个表记录数的乘积返回的记录数量为两个表记录数的乘积上面语句可以省略上面语句可以省略CROSS JOIN关键字关键字,用用“,”将两个表连接起来,将两个表连接起来,即:即:SELECT*FROM KC,XQ该返回结果和交叉联接是基本是一致的,只是没有重复的字段。该返回结果和交叉联接是基本是一致的,只是没有重复的字段。第30页
19、,此课件共79页哦5.3.2 内联接(INNER JOIN)l内联接是联接两个表最常用的方法,使用比较运算符进行内联接是联接两个表最常用的方法,使用比较运算符进行表间某表间某(些些)列数据的比较操作,并列出这些表中与联接条件列数据的比较操作,并列出这些表中与联接条件相匹配的数据行。相匹配的数据行。l内联接可以理解为从两个表的笛卡尔积中筛选出完全内联接可以理解为从两个表的笛卡尔积中筛选出完全符合联接条件的记录符合联接条件的记录例:例:显示成绩表中的所有数据,要求包含学生学号和姓名。显示成绩表中的所有数据,要求包含学生学号和姓名。SELECT XS.XH 学号学号,XS.XM 姓名姓名,KCDM
20、课程代码课程代码,FS 分分数数,CJ.XSDM,XS.XSDM FROM XS INNER JOIN CJ ON CJ.XSDM=XS.XSDM 第31页,此课件共79页哦5.3.3 外联接l外联接分为三种:外联接分为三种:左外联接左外联接(LEFT OUTER JOIN(LEFT OUTER JOIN或或LEFT JOIN)LEFT JOIN)右外联接右外联接(RIGHT OUTER JOIN(RIGHT OUTER JOIN或或RIGHT JOIN)RIGHT JOIN)全外联接全外联接(FULL OUTER JOIN(FULL OUTER JOIN或或FULL JOIN)FULL JO
21、IN)l与内联接不同,外联接不仅列出与联接条件与内联接不同,外联接不仅列出与联接条件相匹配的行,还会显示左表相匹配的行,还会显示左表(左外联接时左外联接时)、右、右表表(右外联接时右外联接时)或两个表或两个表(全外联接时全外联接时)中所有中所有符合搜索条件的记录。符合搜索条件的记录。第32页,此课件共79页哦5.3.3 外联接l1、左外联接、左外联接左边表中的行都会出现在结果数据集中,如果左边表中的某一行在右边左边表中的行都会出现在结果数据集中,如果左边表中的某一行在右边表中没有匹配的行(不满足联接条件),则以空值取代右边表中的值。表中没有匹配的行(不满足联接条件),则以空值取代右边表中的值。
22、l例:查看每个专业有哪些班级。例:查看每个专业有哪些班级。使用外联接:使用外联接:SELECT a.ZYDM,a.ZYMC,b.BJDM,b.ZYDM AS Expr1,b.BJMCFROM ZY AS a LEFT JOIN BJ AS b ON a.ZYDM=b.ZYDM使用内联接:使用内联接:SELECT a.ZYDM,a.ZYMC,b.BJDM,b.ZYDM AS Expr1,b.BJMCFROM ZY AS a JOIN BJ AS b ON a.ZYDM=b.ZYDM第33页,此课件共79页哦5.3.3 外联接l2、右外联接、右外联接右外联接和左外联接类似,不同的是把右边的表作为外
23、部右外联接和左外联接类似,不同的是把右边的表作为外部表表(所有右边表中的行包含在结果数据集中所有右边表中的行包含在结果数据集中)。例:查看。例:查看每个专业有哪些班级。每个专业有哪些班级。lSELECT a.ZYDM,a.ZYMC,b.BJDM,b.ZYDM AS Expr1,b.BJMClFROM ZY AS a RIGHT JOINl BJ AS b ON a.ZYDM=b.ZYDM第34页,此课件共79页哦5.3.3 外联接l3、全外联接、全外联接l在全外联接中,位于在全外联接中,位于FULL JOIN两边的表中两边的表中的行都会包含在结果数据集中。的行都会包含在结果数据集中。第35页,
24、此课件共79页哦5.3.4 5.3.4 自联接自联接列名列名说明说明YGDMYGDM员工代码员工代码YGXM员工姓名员工姓名SJLD该员工上级领导代码该员工上级领导代码员工表自联接所联接的两个表在物理上为同一张表,但在逻辑上可看作两个表,用不同的表别名加以区分第36页,此课件共79页哦5.3.4 5.3.4 自联接自联接例:查询每位员工上级领导例:查询每位员工上级领导SELECT A.*,B.YGXM FROM YG A LEFT JOIN YG B ON A.SJLD=B.YGDM第37页,此课件共79页哦5.3.5 多表联接l例例:显示学生信息,包括学生所在班级名称、:显示学生信息,包括学
25、生所在班级名称、专业名称和和系部名称专业名称和和系部名称SELECT XB.XBMC,ZY.ZYMC,BJ.BJMC,XS.*SELECT XB.XBMC,ZY.ZYMC,BJ.BJMC,XS.*FROM XS INNER JOINFROM XS INNER JOIN BJ ON BJ.BJDM=BJ ON BJ.BJDM=XS.BJDM INNER JOINXS.BJDM INNER JOIN ZY ON BJ.ZYDM=ZY ON BJ.ZYDM=ZY.ZYDM INNER JOINZY.ZYDM INNER JOIN XB ON ZY.XBDM=XB.XBDM XB ON ZY.XBDM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 查询 更新 课件
限制150内