项目四:查询数据表课件.pptx

上传人:春哥&#****71; 文档编号:14914635 上传时间:2022-05-09 格式:PPTX 页数:37 大小:6.17MB
返回 下载 相关 举报
项目四:查询数据表课件.pptx_第1页
第1页 / 共37页
项目四:查询数据表课件.pptx_第2页
第2页 / 共37页
点击查看更多>>
资源描述

《项目四:查询数据表课件.pptx》由会员分享,可在线阅读,更多相关《项目四:查询数据表课件.pptx(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、M y S Q LM y S Q L 数 据 库数 据 库项目教程项目教程本章学习目标:1.会使用SELECT语句查询数据列2.会根据条件筛选指定的数据行3.会使用聚合函数分组统计数据4.会使用内连接、外连接和交叉连接及联合条件连接查询多表数据5.会使用比较运算符及IN、ANY、EXISTS等关键字查询多表数据项目四 查询数据表重点: 1、各种运算符的应用2、各种条件查询语句的应用3、子查询和多表查询难点: 1.计算列值2.过滤重复数据3.数据分组统计4.多行子查询和多表查询任务1 part掌握运算符所谓算术运算符就是进行数学运算的,它主要包括加法.减法、乘法、除法、取余数等运算符。1.1算术

2、运算符运算符说 明+对两个操作数做加法运算,返回和-对两个操作数做减法运算,返回差*对两个操作数做乘法运算,返回积/对两个操作数做除法运算,返回商%对两个操作数做取余运算,返回余数1.2 比 较 运 算 符运算符运算符作用作用=等于安全的等于 或者 !=不等于=大于等于大于IS NULL 或者 ISNULL判断一个值是否为空IS NOT NULL判断一个值是否不为空BETWEEN AND判断一个值是否落在两个值之间1.3 逻 辑 运 算 符运算符运算符作用作用NOT 或者 !逻辑非AND 或者 &逻辑与OR 和 |逻辑或XOR逻辑异或1.4 位 运 算 符运算符运算符说明说明使用形式使用形式举

3、例举例|位或a | b5 | 8&位与a & b5 & 8位异或a b5 8位取反a5位左移a b5 位右移a b5 2,表示整数 5 按位右移 2 位1.5 IN和NOT IN运算符IN 和 NOT IN 的语法格式如下:expr IN ( value1, value2, value3 . valueN )expr NOT IN ( value1, value2, value3 . valueN )1.6运 算 符 的 优 先 级优先级由低到高排列优先级由低到高排列运算符运算符1=(赋值运算)2II、OR3XOR4&、AND5NOT6BETWEEN、CASE、WHEN、THEN、ELSE7=

4、(比较运算)、=、=、!=、IS、LIKE、REGEXP、IN8|9&1011-(减号)、+12*、/、%1314-(负号)、(位反转)15!任务2 part查询单表数据2.1 SELECT 语句MySQL使用SELECT语句实现对数据表进行按列、行及连接等方式进行数据查询,SELECT语句的基本语法格式如下。SELECT ALL | DISTINCT * | 列名1,列名2,列名nFROM 表名WHERE条件表达式GROUP BY 列名 ASC | DESC HAVING 条件表达式ORDER BY 列名ASC | DESC , .LIMIT OFFSET, 记录数;1.查询所有列在SELE

5、CT子句中,查询所有列是指查询表中所有字段的数据。MySQL提供了以下2种方式查询表中的所有字段:一是使用“*”通配符查询所有字段;二是列出表的所有字段。查询结果集中的排列顺序与源表中列的顺序相同。2.查询指定列使用SELECT语句选择表中的指定列,列名与列名间用逗号隔开,列的顺序可以根据用户数据呈现需要进行更改。2.2 查询列在使用SELECT进行查询时,可以使用表达式作为查询的结果列。【例4.18】为了促进商品销量,公司决定对所有商品打九折优惠。查询商品信息表中所有商品打折后的商品名称和价格。执行语句如下。SELECT name ,price*0.9 FROM goodsinfo;2.3计

6、 算 列 值为表或者指定别名的基本语法格式为: AS AS 其中各子句的含义如下:数据库中存储的数据表的名称。:数据表的列名。:查询时指定的表或者列的新名称。AS关键字可以省略,省略后需要将表名和别名用空格隔开。当指定的列标题中包含空格时,需要使用单引号将列名括起来。2.4为表名和列名设置别名LIMIT是MySQL中的一个特殊关键字,用于指定查询结果从哪条记录开始显示,一共显示多少条记录。LIMIT关键字有3种使用方式,即指定初始位置、不指定初始位置以及与 OFFSET组合使用。LIMIT使用的基本语法格式分别如下:LIMIT 初始位置, 记录数;LIMIT 记录数;LIMIT 记录数 OFF

7、SET 初始位置;2.5限制查询结果的条数DISTINCT 关键字的语法格式为:SELECT DISTINCT FROM ;其中,“字段名”为需要消除重复记录的字段名称,多个字段时用逗号隔开,所有字段可以用“*”表示。使用DISTINCT关键字时需要注意以下几点:DISTINCT关键字只能在SELECT语句中使用。在对一个或多个字段去重时,DISTINCT关键字必须在所有字段的最前面。如果 DISTINCT 关键字后有多个字段,则会对多个字段进行组合去重,也就是说,只有多个字段组合起来完全是一样的情况下才会被去重。2.6DISTINCT过滤重复数据ORDER BY关键字主要用来将查询结果中的数

8、据按照一定的顺序进行排序。其语法格式如下:ORDER BY ASC|DESC其中,列名:表示需要排序的字段名称,多个字段时用逗号隔开;ASC表示字段按升序排序;DESC表示字段按降序排序。其中ASC为默认值。使用 ORDER BY 关键字应该注意以下几个方面:ORDER BY 关键字后可以跟子查询(关于子查询后面教程会详细讲解,这里了解即可)。当排序的字段中存在空值时,ORDER BY 会将该空值作为最小值来对待。ORDER BY 指定多个字段进行排序时,MySQL 会按照字段的顺序从左到右依次进行排序。2.7对查询结果进行排序使用 WHERE 关键字的语法格式如下:WHERE 查询条件其中查

9、询条件可以是以下几种:(1)带比较运算符和逻辑运算符的查询条件;(2)带 BETWEEN AND 关键字的查询条件;(3)带 IS NULL 关键字的查询条件;(4)带 IN 关键字的查询条件;(5)带 LIKE 关键字的查询条件。多个查询条件时用逻辑运算符 AND(&)、OR(|)或 XOR 隔开。AND:记录满足所有查询条件时,才会被查询出来。OR:记录满足任意一个查询条件时,才会被查询出来。XOR:记录满足其中一个条件,并且不满足另一个条件时,才会被查询出来。2.8条 件 查 询 数 据在MySQL数据库中,聚合函数主要包括求最大值的函数MAX,求最小值的函数MIN,求平均值的函数AVG

10、,求和函数SUM以及求记录的行数COUNT。2.9使用聚合函数函 数 名说 明MAX返回表达式中的最大值MIN返回表达式中的最小值SUM返回表达式中所有值的和AVG返回组中各值的平均值COUNT返回组中的项数GROUP_CONCAT返回一个字符串结果,该结果由分组中的值连接组合而成在 MySQL 中,可以使用 HAVING关键字对分组后的数据进行过滤。使用 HAVING 关键字的语法格式如下:HAVING HAVING 关键字和 WHERE 关键字都可以用来过滤数据,且 HAVING 支持 WHERE 关键字中所有的操作符和语法。但是 WHERE 和 HAVING 关键字也存在以下几点差异:(

11、1)一般情况下,WHERE 用于过滤数据行,而 HAVING 用于过滤分组。(2)WHERE 查询条件中不可以使用聚合函数,而 HAVING 查询条件中可以使用聚合函数。(3)WHERE 在数据分组前进行过滤,而 HAVING 在数据分组后进行过滤 。(4)WHERE 针对数据库文件进行过滤,而 HAVING 针对查询结果进行过滤。也就是说,WHERE 根据数据表中的字段直接进行过滤,而 HAVING 是根据前面已经查询出的字段进行过滤。(5)WHERE 查询条件中不可以使用字段别名,而 HAVING 查询条件中可以使用字段别名。2.10过 滤 分 组使用 GROUP BY 关键字的语法格式如

12、下:GROUP BY WITH ROLLUP HAVING 条件表达式1. 单独使用GROUP BY分组2. GROUP BY和聚合函数使用3. GROUP BY和GROUP CONCAT一起使用4. GROUP BY和WITH ROLLUP一起使用5. GROUP BY和HAVING一起使用2.11数据分组统计任务3part子查询多表数据3.1子 查 询 简 介 子查询又称为嵌套查询,子查询也是一个SELECT命令语句,它可以嵌套在一个SELECT语句、INSERT语句、UPDATE语句或DELETE语句中。包含子查询的SELECT命令称为外层查询或父查询。子查询可以把一个复杂的查询分解成一

13、系列的逻辑步骤,通过使用单个查询命令来解决复杂的查询问题。 在子查询中通常要使用比较运算符、IN、 ANY及EXISTS等关键字。3.2单列子查询【例4.39】查询报名一级考试的学生姓名和所在的学校。根据题目要求,首先要查询出一级考试的等级编号,然后再根据等级编号查询学生的姓名和学校,查询语法如下:SELECT name, schoolFROM reginfoWHERE levelid= (SELECT id FROM levelinfo WHERE name= 一级)3.3多行子查询【例4.40】查询报名等级为一级或二级的学生姓名和所在学校。根据题目要求,具体的语法如下:SELECT * F

14、ROM reginfoWHERE levelid IN (SELECT id FROM levelinfo WHERE name=一级 OR name=二级);【例4.41】查询报名一级并且年龄比二级学生小的学生信息。根据题目要求,具体语法如下:SELECT* FROM reginfoWHERE levelid= 1 AND age ANY(SELECT age FROM reginfo WHERE levelid=2 );3.4聚合函数在分组查询中的应用分组查询使用GROUP BY子句完成,具体的语法如下:SELECT column_name1, column_name2,FROM tabl

15、e_name1WHERE conditionsGROUP BY column_name1, column_name2HAVING conditionsORDER BY column_name1, column_name2;3.5使 用 条 件 的 分 组 查 询【例4.43】分别使用 WHERE和HAVING子句进行分组查询。按等级编号进行分组并查询出“第一小学”的每个等级的报考人数。(1)使用WHERE语句作为条件判断。SELECT levelid AS 报考级别,COUNT(*) AS 人数 FROM reginfo WHERE school =第一小学GROUP BY levelid;(

16、2)使用HAVING子句作为条件判断。SELECT levelid AS报考级别,count(*) AS人数 FROM reginfoGROUP BY levelid,schoolHAVING school=第一小学;3.6分 组 查 询 的 排 序【例4.44】使用ORDER BY子句进行查询。查询每个考试等级的报名人数,并按照报名人数升序排列。根据题目要求,具体的语法如下:SELECTlevelid AS 报考级别, COUNT(*) AS 人数 FROM reginfo GROUP BY levelid ORDER BY COUNT(*);任务4part连接查询多表数据4.1笛 卡 尔

17、积【例4.45】不使用任何条件查询报名信息表和计算机等级信息表中的全部数据。从题目要求看,该查询语旬只需要在SELECT语句中用“*”代替所有列,并在FROM后面列出两张表的名字即可,查询语法如下: SELECT * FROM reginfo, levelinfo;4.2自 连 接【例4.46】使用自连接查询。 查询报名编号和报名等级编号相同的考生姓名和学校。根据题目要求,具体的语法如下:SELECTa.name, a.school FROM reginfo a,reginfo b WHEREa.levelid = b.id AND a.id = b.id4.3外 连 接先看外连接查询的基本语

18、法。SELECT column_namel, column_name2,FROM tablel LEFT| RIGHT OUTER JOIN table2ON conditions;其中,tablel是数据表1,通常在外连接中被称为左表;table2是数据表2,通常在外连接中被称为右表;ON是设置外连接的条件,与WHERE子句后面的写法一样。LEFT OUTER JOIN:左外连接,使用左外连接得到的查询结果除了符合条件的部分,还要加上左表中余下的数据。RIGHT OUTER JOIN:右外连接,使用右外连接得到的查询结果除了符合条件的部分,还要加上右表中余下的数据。 4.4内 连 接内连接的

19、语法形式与外连接很相似。具体的语法如下:SELECT column_namel, column_name2,FROM tablel INNER JOIN table2ON conditions;其中,INNER JOIN是内连接的关键字;ON是设置内连接中的条件。与外连接中的ON关键字是一样的。4.5使用UNION关键字合并结果集UNION关键字就是用于合并多个结果集的,具体的语法如下:SELECT column_name1, column_name2, FROM table_name1UNION ALLSELECT column_name1, column_name2 , FROM table_name2;UNIONORDER BY column_name其中,UNION是合并结果集的关键字,结果中会去掉相同的行;UNION ALL与UNION类似,但是在结果中不会去掉重复的行;ORDER BY是对结果集进行排序。在对结果集进行排序时,是对第一个查询中的字段进行排序的。4.6排序合并查询结果集【例4.50】将例4.49的结果按照id列进行降序排列。降序排列使用的是DESC关键字,查询语法如下:SELECT id,name FROM reginfoUNION SELECT id,name FROM levelinfoORDER BY id DESC;本章课后作业见教材

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

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

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