欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    MySQL数据库开发与应用04-检索表记录课件.ppt

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

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

    MySQL数据库开发与应用04-检索表记录课件.ppt

    MySQL数据库基础与实践,MySQL数据库基础与实践,4,检索表记录,第,章,4检索表记录第章,本章内容,4.1 SELECT基本查询,4.2 条件查询,4.3 分组查询,4.4 表的连接,4.5 子查询,4.6 联合查询,4.7 案例:网上书店系统综合查询,本章内容4.1 SELECT基本查询4.2 条件查询4.3,4.1 SELECT基本查询,4.1.1 SELECTFROM查询语句4.1.2 查询指定字段信息4.1.3 关键字DISTINCT的使用4.1.4 ORDER BY子句的使用4.1.5 LIMIT子句的使用,4.1 SELECT基本查询4.1.1 SELECTFRO,4.1 SELECT基本查询,查询数据是使用数据库的最基本也是最重要的方式。基本查询也称为简单查询,是指在查询的过程中只涉及到一个表的查询。,4.1 SELECT基本查询查询数据是使用数据库的最基本也是,4.1.1 SELECTFROM查询语句,SELECT语句的一般格式为:SELECT ALL | DISTINCT ,FROM ,WHERE GROUP BY HAVING ORDER BY ASC | DESCLIMIT start, count,4.1.1 SELECTFROM查询语句SELECT语句的,4.1.1 SELECTFROM查询语句,在SELECT语句的结构中,除了SELECT子句是必不可少的之外,其他子句都是可选的。【例4-1】计算25的平方根并输出MySQL的版本号。SELECT SQRT(25),VERSION();,4.1.1 SELECTFROM查询语句在SELECT语句,4.1.2 查询指定字段信息,在SELECT子句后面直接列出要显示的字段的列名,列名之间必须以逗号分隔。【例4-2】检索Users表,查询所有会员的名称、性别和电话号码。SELECT U_Name,U_Sex,U_Phone FROM Users;,4.1.2 查询指定字段信息在SELECT子句后面直接列出要,4.1.2 查询指定字段信息,如果在查询的过程中,要检索表或视图中的所有字段信息,可以在SELECT子句中使用通配符“*”。【例4-3】检索Users表,查询所有会员的基本资料。SELECT * FROM Users;,4.1.2 查询指定字段信息如果在查询的过程中,要检索表或视,4.1.2 查询指定字段信息,定义别名可用以下方法:通过“列名 列标题”形式;通过“列名 AS 列标题”形式。例4-1的语句可修改如下:SELECT SQRT(25) 平方根,VERSION() as 版本号;,4.1.2 查询指定字段信息定义别名可用以下方法:,4.1.3 关键字DISTINCT的使用,ALL关键字表示将会显示所有检索的数据行,包括重复的数据行;(默认)DISTINCT关键字表示仅仅显示不重复的数据行,对于重复的数据行,则只显示一次。【例4-4】检索Orders表,查询订购了书籍的会员号。SELECT U_ID FROM Orders;,4.1.3 关键字DISTINCT的使用ALL关键字表示将会,4.1.3 关键字DISTINCT的使用,如果希望在显示结果的时候去掉重复行,可以使用DISTINCT关键字。SELECT DISTINCT U_ID FROM Orders;,4.1.3 关键字DISTINCT的使用如果希望在显示结果的,4.1.4 ORDER BY子句的使用,ORDER BY子句是根据查询结果中的一个字段或多个字段对查询结果进行排序。默认的情况下按升序排列。【例4-5】检索BookInfo表,按图书出版的日期进行排序。SELECT B_ID,B_Name, B_Date FROM BookInfo ORDER BY B_Date DESC;,4.1.4 ORDER BY子句的使用ORDER BY子句是,4.1.4 ORDER BY子句的使用,【例4-6】检索BookInfo表,按图书类别的升序及图书出版日期的降序进行排序。SELECT BT_ID,B_Name, B_Date FROM BookInfo ORDER BY BT_ID,B_Date DESC;,4.1.4 ORDER BY子句的使用【例4-6】检索Boo,4.1.5 LIMIT子句的使用,LIMIT子句的用途是从结果集中进一步选取指定数量的数据行,其基本语法格式如下:LIMIT start, count例如,LIMIT 5表示返回结果集中的前5行记录,LIMIT 10,20表示从结果集的第11行记录开始返回20行记录。注意:在结果集中,第一行记录的start值为0,而不是1。,4.1.5 LIMIT子句的使用LIMIT子句的用途是从结果,4.1.4 ORDER BY子句的使用,【例4-7】检索BookInfo表,按图书编号查询前5本图书的信息。SELECT B_ID,B_Name FROM BookInfo ORDER BY B_ID LIMIT 5;,4.1.4 ORDER BY子句的使用【例4-7】检索Boo,4.1.4 ORDER BY子句的使用,【例4-8】检索BookInfo表,按图书编号检索从第3条记录开始的2条记录的信息。SELECT B_ID,B_Name FROM BookInfo ORDER BY B_ID LIMIT 2,2;,4.1.4 ORDER BY子句的使用【例4-8】检索Boo,4.2 条件查询,4.2.1 使用关系表达式查询4.2.2 使用逻辑表达式查询4.2.3 设置取值范围的查询4.2.4 空值查询4.2.5 模糊查询,4.2 条件查询4.2.1 使用关系表达式查询,4.2.1 使用关系表达式查询,关系表达式是指在表达式中含有关系运算符。常见的关系运算符有:=(等于)、(大于)、=(大于等于)、(不等于)。如果在WHERE子句中含有关系表达式,则只有满足关系表达式的数据行才会被显示到结果集中。,4.2.1 使用关系表达式查询关系表达式是指在表达式中含有关,4.2.1 使用关系表达式查询,【例4-9】检索BookInfo表,查询会员价大于40元的图书信息。SELECT B_ID,B_Name, B_SalePrice FROM BookInfoWHERE B_SalePrice40;,4.2.1 使用关系表达式查询【例4-9】检索BookInf,4.2.2 使用逻辑表达式查询,常用的逻辑运算符有AND、OR和NOT。当一个WHERE子句同时包括若干个逻辑运算符时,其优先级从高到低依次为NOT、AND、OR。如果想改变优先级,可以使用括号。,4.2.2 使用逻辑表达式查询常用的逻辑运算符有AND、OR,4.2.2 使用逻辑表达式查询,【例4-10】检索BookInfo表,查询“清华大学出版社”出版的书名为“ASP.NET网站开发项目化教程”的图书的基本信息。SELECT B_Name,B_Author,B_PublisherFROM BookInfoWHERE B_Name=ASP.NET网站开发项目化教程 AND B_Publisher=清华大学出版社;,4.2.2 使用逻辑表达式查询【例4-10】检索BookIn,4.2.2 使用逻辑表达式查询,【例4-11】检索BookInfo表,查询图书的会员价格在20元到40元之间的图书信息。SELECT B_ID,B_Name, B_SalePriceFROM BookInfoWHERE B_SalePrice=20 AND B_SalePrice=40;,4.2.2 使用逻辑表达式查询【例4-11】检索BookIn,4.2.3 设置取值范围的查询,谓词BETWEENAND和NOT BETWEENAND可以用来设置查询条件。其中,BETWEEN后面是范围的下限,AND后是范围的上限。例4-11使用BETWEENAND语句来完成。SELECT B_ID,B_Name, B_SalePriceFROM BookInfoWHERE B_SalePrice BETWEEN 20 AND 40;,4.2.3 设置取值范围的查询谓词BETWEENAND和N,4.2.4 空值查询,NULL是特殊的值,代表“无值”,与0、空字符串或仅仅包含空格都不相同。在涉及空值的查询中,可以使用IS NULL或者IS NOT NULL来设置这种查询条件。,4.2.4 空值查询NULL是特殊的值,代表“无值”,与0、,4.2.4 空值查询,【例4-12】在Users表中新增一条记录,只输入会员名baip和密码654321,然后检索Users表,查询电话号码为空的会员编号和会员名称。SELECT U_ID,U_NameFROM UsersWHERE U_Phone IS NULL;,4.2.4 空值查询【例4-12】在Users表中新增一条记,4.2.5 模糊查询,通常在查询字符数据时,提供的查询条件并不是十分的精确。查询条件仅仅是包含或类似某种样式的字符,这种查询称为模糊查询。,4.2.5 模糊查询通常在查询字符数据时,提供的查询条件并不,4.2.5 模糊查询,要实现模糊查询,必须使用通配符,利用通配符可以创建和特定字符串进行比较的搜索模式。SQL支持如下通配符:%:代表任意多个字符。_(下划线):代表任意的一个字符。,4.2.5 模糊查询要实现模糊查询,必须使用通配符,利用通配,4.2.5 模糊查询,如果查询条件中使用了通配符,则操作符必须使用LIKE关键字。LIKE关键字用于搜索与特定字符串相匹配的字符数据,其基本的语法形式为:NOT LIKE ,4.2.5 模糊查询如果查询条件中使用了通配符,则操作符必须,4.2.5 模糊查询,【例4-13】检索BookInfo表,查询所有MySQL相关书籍的名称、出版社和会员价格。SELECT B_Name,B_Publisher,B_SalePrice FROM BookInfoWHERE B_Name LIKE %MySQL%;,4.2.5 模糊查询【例4-13】检索BookInfo表,查,4.2.5 模糊查询,【例4-14】检索BookInfo表,查询所有的第2个字为“国”的作者所写图书的书名、作者和出版社信息。SELECT B_Name,B_Author,B_Publisher FROM BookInfoWHERE B_Author LIKE _国%;,4.2.5 模糊查询【例4-14】检索BookInfo表,查,4.2.5 模糊查询,如果要查询的字符串本身就含有通配符,此时就需要用ESCAPE关键字,对通配符进行转义。例如,在Users表中添加一条记录:会员名为yiyi_2016,密码为123456。现要查询会员名中含有“_”的会员信息,可以使用如下的语句:SELECT * FROM Users WHERE U_Name LIKE %/_% ESCAPE /;,4.2.5 模糊查询如果要查询的字符串本身就含有通配符,此时,4.2.5 模糊查询,如果要查询的字符串本身就含有通配符,此时就需要用ESCAPE关键字,对通配符进行转义。例如,在Users表中添加一条记录:会员名为yiyi_2016,密码为123456。现要查询会员名中含有“_”的会员信息,可以使用如下的语句:SELECT * FROM Users WHERE U_Name LIKE %/_% ESCAPE /;,4.2.5 模糊查询如果要查询的字符串本身就含有通配符,此时,4.3 分组查询,4.3.1 GROUP BY子句4.3.2 HAVING子句,4.3 分组查询4.3.1 GROUP BY子句,4.3 分组查询,如果要在数据检索时对表中数据按照一定条件进行分组汇总或求平均值,就要在SELECT语句中与GROUP BY子句一起使用聚合函数。,4.3 分组查询如果要在数据检索时对表中数据按照一定条件进,4.3 分组查询,常用的聚合函数,4.3 分组查询常用的聚合函数,4.3 分组查询,例如,要统计Users表中会员的数量,可以使用COUNT(*),计算出来的结果就是查询所选取到的行数,相关语句如下:SELECT COUNT(*) FROM Users;只统计填写电话号码的会员个数:SELECT COUNT(U_Phone) FROM Users;注意:聚合函数忽略列值为NULL的行。,4.3 分组查询例如,要统计Users表中会员的数量,可以,4.3.1 GROUP BY子句,分组是通过GROUP BY子句来实现的,其基本语法格式如下:GROUP BY ,4.3.1 GROUP BY子句分组是通过GROUP BY子,4.3.1 GROUP BY子句,【例4-15】检索BookInfo表,查询每个出版社出版的图书的数量。SELECT B_Publisher ,COUNT(*) AS 总数 FROM BookInfo GROUP BY B_Publisher;,4.3.1 GROUP BY子句【例4-15】检索BookI,4.3.1 GROUP BY子句,【例4-16】检索BookInfo表,查询每个出版社图书的最高价格和最低价格。SELECT B_Publisher,MAX(B_MarketPrice) AS 最高价格,MIN(B_MarketPrice) AS 最低价格FROM BookInfoGROUP BY B_Publisher;,4.3.1 GROUP BY子句【例4-16】检索BookI,4.3.2 HAVING子句,如果分组以后要求按一定条件对这些组进行筛选,则需要使用HAVING子句指定筛选条件。HAVING子句必须和GROUP BY子句同时使用。,4.3.2 HAVING子句如果分组以后要求按一定条件对这些,4.3.2 HAVING子句,【例4-17】检索BookInfo表,查询出版图书在2本及2本以上的出版社信息。SELECT B_Publisher ,COUNT(*) AS 总数 FROM BookInfo GROUP BY B_PublisherHAVING COUNT(*)=2;,4.3.2 HAVING子句【例4-17】检索BookInf,4.3.2 HAVING子句,【例4-18】检索BookInfo表,查询出版了2本及2本以上并且价格大于等于50元的图书信息。SELECT B_Publisher ,COUNT(*) AS 总数 FROM BookInfo WHERE B_MarketPrice=50GROUP BY B_PublisherHAVING COUNT(*)=2;,4.3.2 HAVING子句【例4-18】检索BookInf,4.3.2 HAVING子句,HAVING子句和WHERE子句都是设置查询条件,但两个子句的作用对象不同。WHERE子句作用的对象是基本表或视图,从中选出满足条件的记录;而HAVING子句的作用对象是组,从中选出满足条件的分组。WHERE在数据分组之前进行过滤,而HAVING在数据分组之后进行过滤。,4.3.2 HAVING子句HAVING子句和WHERE子句,4.4表的连接,4.4.1 内连接4.4.2 外连接4.4.3 自连接4.4.4 交叉连接,4.4表的连接4.4.1 内连接,4.4表的连接,多表连接的语法格式如下:SELECT FROM 连接类型 JOIN ON WHERE 其中,连接类型有3种:内连接(INNER JOIN)、外连接(OUTER JOIN)和交叉连接(CROSS JOIN)。,4.4表的连接多表连接的语法格式如下:,4.4表的连接,用来连接两个表的条件称为连接条件,通常是通过匹配多个表中的公共字段来实现的。,4.4表的连接用来连接两个表的条件称为连接条件,通常是通过,4.4.1 内连接,内连接是从两个或两个以上的表的组合中,挑选出符合连接条件的数据。内连接是最常用的连接类型,也是默认的连接类型。在FROM子句中使用INNER JOIN(INNER关键字可以省略)来实现内连接。,4.4.1 内连接内连接是从两个或两个以上的表的组合中,挑选,4.4.1 内连接,【例4-19】检索BookInfo和BookType表,查询每本图书所属的图书类别。SELECT B_Name, BookInfo.BT_ID, BT_NameFROM BookInfo INNER JOIN BookType ON BookInfo.BT_ID= BookType.BT_IDORDER BY BT_ID;,4.4.1 内连接【例4-19】检索BookInfo和Boo,4.4.1 内连接,【例4-20】检索Users和Orders表,查询订单总价超过100元的会员名、下单时间及订单总价。SELECT U.U_Name,O.O_ID, O.O_Time, O.O_TotalPriceFROM Users U INNER JOIN Orders OON U.U_ID = O.U_IDWHERE O_TotalPrice100;,4.4.1 内连接【例4-20】检索Users和Orders,4.4.1 内连接,【例4-21】检索OrderDetails、Orders和BookInfo表,查询订单的下单时间及所购图书名。SELECT OD.OD_ID,O.O_Time,BI.B_Name FROM OrderDetails OD INNER JOIN Orders O INNER JOIN BookInfo BION OD.O_ID = O.O_ID AND OD.B_ID=BI.B_ID;,4.4.1 内连接【例4-21】检索OrderDetails,4.4.2 外连接,使用外连接时,以主表中每行的数据去匹配从表中的数据行,如果符合连接条件则返回到结果集中;如果没有找到匹配行,则主表的行仍然保留,并且返回到结果集中,相应的从表中的数据行被填上NULL值后也返回到结果集中。,4.4.2 外连接使用外连接时,以主表中每行的数据去匹配从表,4.4.2 外连接,外连接有3种类型,分别是左外连接(LEFT OUTER JOIN)、右外连接(RIGHT OUTER JOIN)和全外连接(FULL OUTER JOIN)。MySQL暂不支持全外连接。,4.4.2 外连接外连接有3种类型,分别是左外连接(LEFT,4.4.2 外连接,1.左外连接左外连接的结果集中包含左表(JOIN关键字左边的表)中所有的记录,如果右表中没有满足连接条件的记录,则结果集中右表中的相应行数据填充为NULL。,4.4.2 外连接1.左外连接,4.4.2 外连接,【例4-22】以左外连接方式查询所有会员的订书情况,在结果集中显示会员编号、会员名称、订单产生时间及订单总价,并按会员编号排序。SELECT U.U_ID,U.U_Name, O.O_Time,O.O_TotalPriceFROM Users U LEFT OUTER JOIN Orders O ON U.U_ID = O.U_IDORDER BY U_ID;,4.4.2 外连接【例4-22】以左外连接方式查询所有会员的,4.4.2 外连接,2.右外连接右外连接的结果集中包含满足连接条件的所有数据和右表(JOIN关键字右边的表)中不满足条件的数据,左表中的相应行数据为NULL。,4.4.2 外连接2.右外连接,4.4.2 外连接,【例4-23】以右外连接方式查询所有订单的详细情况,在结果集中显示订单详情号、订单产生时间、订单总价及图书名。SELECT OD.OD_ID,OD_Number,BI.B_ID,BI.B_Name FROM OrderDetails OD RIGHT OUTER JOIN BookInfo BI ON OD.B_ID = BI.B_ID;,4.4.2 外连接【例4-23】以右外连接方式查询所有订单的,4.4.3 自连接,在同一个表中进行的连接被称为自连接。对一个表使用自连接时,可以看作是这张表的两个副本之间进行的连接,必须为该表指定两个别名。,4.4.3 自连接在同一个表中进行的连接被称为自连接。,4.4.3 自连接,【例4-24】在图书类别表BookType中,查询每种图书类别和它的子类别。 SELECT BT1.BT_Name,BT2. BT_NameFROM BookType BT1 INNER JOIN BookType BT2 ON BT1.BT_ID=BT2.BT_FatherID;,4.4.3 自连接【例4-24】在图书类别表BookType,4.4.3 自连接,【例4-25】要查询BookInfo表中高于“C#基础与案例开发详解”会员价格的图书号、图书名称和图书会员价格,查询后的结果集要求按会员价格降序排列。SELECT B2.B_ID,B2.B_Name,B2.B_SalePriceFROM BookInfo B1 INNER JOIN BookInfo B2 ON B1.B_Name=C#基础与案例开发详解 AND B1.B_SalePriceB2.B_SalePriceORDER BY B2.B_SalePrice DESC;,4.4.3 自连接【例4-25】要查询BookInfo表中高,4.4.4 交叉连接,使用交叉连接查询,如果不带WHERE子句时,则返回的结果是被连接的两个表的笛卡尔积;如果交叉连接带有WHERE子句时,则返回结果为连接两个表的笛卡尔积减去WHERE子句所限定而省略的行数。交叉连接使用CROSS JOIN关键字。,4.4.4 交叉连接使用交叉连接查询,如果不带WHERE子句,4.4.4 交叉连接,【例4-26】在Orders表和OrderDetails表中使用交叉连接。SELECT O.O_ID,OD.OD_IDFROM Orders O CROSS JOIN OrderDetails OD;,4.4.4 交叉连接【例4-26】在Orders表和Orde,4.5 子查询,4.5.1 返回单行的子查询4.5.2 返回多行的子查询4.5.3 子查询与数据更新,4.5 子查询4.5.1 返回单行的子查询,4.5 子查询,子查询是指在一个外层查询中包含另一个内层查询,即在一个SELECT语句中的WHERE子句中,包含有另一个SELECT语句。外层的SELECT语句称为主查询,WHERE子句中包含的SELECT语句称为子查询。一般将子查询的查询结果作为主查询的查询条件。,4.5 子查询子查询是指在一个外层查询中包含另一个内层查询,4.5.1 返回单行的子查询,返回单行的子查询是指子查询的查询结果只返回一个值,并将这个返回值作为父查询的条件,在父查询中进一步查询。在WHERE子句中可以使用比较运算符来连接子查询。,4.5.1 返回单行的子查询返回单行的子查询是指子查询的查询,4.5.1 返回单行的子查询,【例4-27】查询订购了“ASP.NET网站开发项目化教程”图书的订单详情号、订购数量及图书总价。SELECT OD_ID,OD_Number,OD_PriceFROM OrderDetailsWHERE B_ID=(SELECT B_ID FROM BookInfo WHERE B_Name=ASP.NET网站开发项目化教程);,4.5.1 返回单行的子查询【例4-27】查询订购了“ASP,4.5.2 返回多行的子查询,返回多行的子查询就是子查询的查询结果中包含多行数据。返回多行的子查询经常与IN、EXIST、ALL、ANY和SOME关键字一起使用。,4.5.2 返回多行的子查询返回多行的子查询就是子查询的查询,4.5.2 返回多行的子查询,1.使用IN关键字其语法格式为:WHERE NOT IN (),4.5.2 返回多行的子查询1.使用IN关键字,4.5.2 返回多行的子查询,【例4-28】查询订单总价小于50元的会员信息。SELECT U_ID,U_Name,U_PhoneFROM UsersWHERE U_ID IN(SELECT U_ID FROM Orders WHERE O_TotalPrice50);,4.5.2 返回多行的子查询【例4-28】查询订单总价小于5,4.5.2 返回多行的子查询,2.使用EXISTS关键字其语法格式为:WHERE NOT EXISTS()使用EXISTS关键字的子查询并不返回任何数据,只返回逻辑真值和逻辑假值。在使用EXISTS时,子查询通常将“*”作为输出列表。,4.5.2 返回多行的子查询2.使用EXISTS关键字,4.5.2 返回多行的子查询,【例4-29】查询订购了图书的会员信息。SELECT U.U_ID,U.U_Name,U.U_SexFROM Users UWHERE EXISTS(SELECT * FROM Orders O WHERE O.U_ID=U.U_ID);,4.5.2 返回多行的子查询【例4-29】查询订购了图书的会,4.5.2 返回多行的子查询,3. 使用ALL、ANY和SOME关键字其语法格式为:WHERE ALL| ANY|SOME()ANY关键字表示任何一个(其中之一),只要与子查询中一个值相符合即可;ALL关键字表示所有(全部),要求与子查询中的所有值相符合;SOME同ANY是同义词。,4.5.2 返回多行的子查询3. 使用ALL、ANY和SOM,4.5.2 返回多行的子查询,【例4-30】查询订购了图书编号大于3的订单编号及收货人的姓名、地址、邮编。SELECT O_ID,O_UserName,O_Address,O_PostCode FROM Orders WHERE O_ID ANY(SELECT O_ID FROM OrderDetails WHERE B_ID3);,4.5.2 返回多行的子查询【例4-30】查询订购了图书编号,4.5.3 子查询与数据更新,1.子查询与INSERT语句其语法格式为:INSERT INTO 要插入数据的表必须已经存在;要插入数据的表结构必须和子查询语句的结果集结构相兼容。,4.5.3 子查询与数据更新1.子查询与INSERT语句,4.5.3 子查询与数据更新,【例4-31】查询每一类图书会员价格的平均价格,并将结果保存到新表AvgPrice中。(1)创建新表AvgPrice。CREATE TABLE AvgPrice(B_ID int,Avg_Price float);(2)将查询结果插入新表AvgPrice中。INSERT INTO AvgPriceSELECT BT_ID,AVG(B_SalePrice)FROM BookInfo GROUP BY BT_ID ;(3)查看AvgPrice表中记录。SELECT * FROM AvgPrice;,4.5.3 子查询与数据更新【例4-31】查询每一类图书会员,4.5.3 子查询与数据更新,2.子查询与UPDATE语句【例4-32】将BookInfo表中“MySQL”类别图书的会员价格修改为市场价格的70%。UPDATE BookInfo SET B_SalePrice=B_MarketPrice*0.7WHERE MySQL=(SELECT BT_Name FROM BookType WHERE BookInfo.BT_ID=BookType.BT_ID);,4.5.3 子查询与数据更新2.子查询与UPDATE语句,4.5.3 子查询与数据更新,3.子查询与DELETE语句【例4-33】删除BookInfo表中“Java”类别图书基本信息。DELETE FROM BookInfo WHERE Java=(SELECT BT_Name FROM BookType WHERE BookInfo.BT_ID=BookType.BT_ID);,4.5.3 子查询与数据更新3.子查询与DELETE语句,4.6 联合查询,联合查询是指合并两个或多个查询语句的结果集。其语法格式为:SELECT语句1UNION ALLSELECT语句2ALL选项表示保留结果集中的重复记录,默认时系统自动删除重复记录。,4.6 联合查询联合查询是指合并两个或多个查询语句的结果集。,4.6 联合查询,【例4-34】查询会员表中会员联系方式及订单表中的会员联系方式。SELECT U_Name,U_PhoneFROM UsersUNION ALLSELECT O_UserName,O_PhoneFROM Orders;,4.6 联合查询【例4-34】查询会员表中会员联系方式及订单,4.7 案例:网上书店系统综合查询,【例4-35】查询会员表中会员编号、会员名称及电话号码,要求列名以汉字标题显示。SELECT U_ID 会员编号,U_Name 会员名称,U_Phone 电话号码 FROM Users;,4.7 案例:网上书店系统综合查询【例4-35】查询会员表中,4.7 案例:网上书店系统综合查询,【例4-36】查询价格最高的图书信息。SELECT B_ID,B_Name,B_MarketPriceFROM BookInfoORDER BY B_MarketPrice DESCLIMIT 1;,4.7 案例:网上书店系统综合查询【例4-36】查询价格最高,4.7 案例:网上书店系统综合查询,【例4-37】统计每本图书的销量信息。SELECT BI.B_ID,BI.B_Name,SUM(OD.OD_Number) 销量FROM BookInfo BI LEFT JOIN OrderDetails ODON BI.B_ID=OD.B_IDGROUP BY OD.B_IDORDER BY B_ID;,4.7 案例:网上书店系统综合查询【例4-37】统计每本图书,4.7 案例:网上书店系统综合查询,【例4-38】查询销量为0的图书信息。SELECT B_ID,B_NameFROM BookInfo BIWHERE NOT EXISTS(SELECT * FROM OrderDetails OD WHERE OD.B_ID=BI.B_ID);,4.7 案例:网上书店系统综合查询【例4-38】查询销量为0,4.7 案例:网上书店系统综合查询,【例4-39】查询linli所购图书的信息。SELECT BI.B_ID,BI.B_NameFROM BookInfo BI INNER JOIN OrderDetails ODON BI.B_ID=OD.B_IDWHERE OD.O_ID IN(SELECT O.O_ID FROM Orders O INNER JOIN Users UON O.U_ID=U.U_IDWHERE U.U_Name=linli);,4.7 案例:网上书店系统综合查询【例4-39】查询linl,本章总结,本章主要介绍了MySQL中T-SQL语言的各种查询功能和用法。使用SQL查询语句可以完成大部分的数据查询操作,包括基本的数据查询、条件查询、分组查询、连接查询、子查询、集合查询等,为学习数据库编程和数据库操作打下基础。,本章总结本章主要介绍了MySQL中T-SQL语言的各种查询功,实践与练习,一、选择题1. 在SELECT子句中,关键字_用于消除重复项。AASB. DISTINCT C. LIMITD. LIKE2. 要使用模糊查询来从数据库中查找与某一数据相关的信息,可以使用关键字_。A. ANDB. ORC. ALLD. LIKE3. 在SELECT语句中,分组时使用_子句。A. ORDER BYB. GROUP BYC.FROMD. WHERE,实践与练习一、选择题,实践与练习,4. 在SELECT语句中,下列_子句用于对分组统计进一步设置条件A. ORDER BYB. GROUP BYC. HAVINGD. WHERE5. 在WHERE子句中,如果出现了“age BETWEEN 30 AND 40”,这个表达式等同于_。A. age=30 AND age=30 OR age30 AND age30 OR age406. 在WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是_。A. *B. %C. -D. ?,实践与练习4. 在SELECT语句中,下列_子,实践与练习,二、操作题 结合网上书店数据库,完成下列操作。1. 查询书名中含有“C#”字样的图书详细信息。2. 查询清华大学出版社在2014年07月01日以后出版的图书详细信息。3. 对BookInfo表按市场价格降序排序,市场价格相同的按出版日期升序排序。4. 统计Orders表中每个会员的订单总额。5. 统计Orders表中每天的订单总额,并按照订单总额进行降序排序。6. 查询会员“lijuan”所购图书详细信息。7. 将Orders表中会员“linli”的订单的订单状态(O_Status)全部修改为2。,实践与练习二、操作题,实验指导,题目1 学生选课系统数据库的简单查询1 任务描述 掌握SELECT语句的简单查询。2 任务要求(1)会使用SELECT语句进行单表的查询。(2)熟练应用条件语句、排序语句及分组语句。3 具体任务(1)检索student表中所有学生的学号及姓名信息。(2)检索course表中“MySQL数据库设计”课程的信息。(3)检索course表中课程名中含有“数据库”字样的课程。(4)统计student表中的学生人数。(5)将sc表中的记录按成绩降序排序。,实验指导题目1 学生选课系统数据库的简单查询,实验指导,题目2 学生选课系统数据库的连接查询1 任务描述 掌握SELECT语句的中的多表连接查询。2 任务要求(1)会使用SELECT语句进行多表的查询。(2)掌握内连接、外连接、自连接及交叉连接。3 具体任务(1)检索sc表及student表中,“MySQL数据库设计”课程不及格学生的学号及姓名。(2)检索“李四”所选课程及课程成绩信息。(3)统计每个学生所选课程的数量、最高分、最低分、总分及平均分成绩。(4)检索平均成绩高于70分的学生信息及平均成绩,结果按平均分降序排序。(5)检索选修了“MySQL数据库设计”课程的学生信息及成绩。,实验指导题目2 学生选课系统数据库的连接查询,实验指导,题目3 学生选课系统数据库的子查询1 任务描述 掌握SELECT语句的中的子查询。2 任务要求(1)会使用SELECT语句进行子查询。(2)掌握子查询的相关关键词的使用及子查询与数据更新操作的联合使用。3 具体任务(1)应用子查询,检索成绩在90分(含)以上的学生的学号和姓名。(2)应用子查询,检索没有学生选修的课程号和课程名。(3)应用子查询,将每个学生的平均成绩保存到新表AvgGrade中。(4)应用子查询,将选修“MySQL数据库设计”课程的成绩增加5分。(5)应用子查询,删除选修“计算机组成原理”课程的选课记录。,实验指导题目3 学生选课系统数据库的子查询,谢谢!,谢谢!,

    注意事项

    本文(MySQL数据库开发与应用04-检索表记录课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开