文档详情

《MySQL数据库应用与管理项目化教程》课件_项目5-4子查询.pptx

发布:2025-03-01约6.32千字共41页下载文档
文本预览下载声明

项目五-4子查询

任务目标任务一认识子查询任务二使用比较运算符的子查询任务三使用[NOT]IN列表运算符的子查询任务四使用[NOT]EXISTS测试存在性的子查询任务五 合并查询

任务一认识子查询

认识子查询主要内容:子查询的概念子查询应用场合重点难点:子查询应用场合

子查询查阅语法:官网文档:/doc/refman/8.0/en/subqueries.html语法:SELECT[ALL|DISTINCT]select_expr[,select_expr...]FROMtable_referencesWHERE{operandcomparison_operatorANY(subquery)|operandIN(subquery)|operandcomparison_operatorSOME(subquery)}comparison_operatorisoneoftheseoperators:===!=

子查询的概念子查询(嵌套查询)如果一个SELECT语句能够返回一个单值或一列值并嵌套在另一个SELECT、INSERT、UPDATE或DELETE语句中,则称之为子查询或内层查询。包含一个或多个子查询的语句称为主查询或外层查询。

子查询应用场合子查询作为条件表达式部分SELECT*FROMtb_name1WHEREcol_name=(SELECTcol_nameFROMtb_name2)例:mysqlUSEdb_shop;mysqlSELECT*FROMstaffer WHEREdept_id=(SELECTdept_idFROMdepartment WHEREdept_name=销售部);

子查询应用场合子查询做为表:应用一:用在FROM子句SELECT*FROM(SELECT*FROMtb_name)[AS]tb_alias;例:mysqlUSEdb_shop;mysqlSELECT*FROM(SELECT*FROMstafferWHEREsex=F)ASA WHEREdept_id=002;

子查询应用场合应用二:用在JOIN子句UPDATEtb_nameAINNERJOIN(SELECT*|select_expr)BONA.col_name=B.col_nameSETA.col_name=select_expr;例:mysqlUSEdb_shop;mysqlUPDATEordersAinnerjoin(SELECTorder_id,SUM(total_price)ASsum_total_priceFROMitemGROUPBYorder_id)BONA.order_id=B.order_idSETorder_total_price=sum_total_price;

子查询应用场合子查询做为值:应用一:UPDATEtb_name1SETcol_name=(SELECTcol_nameFROMtb_name2)WHEREwhere_condition例:mysqlUSEdb_shop;mysqlUPDATEdepartment_bak2SETdept_phone=(SELECTdept_phoneFROMdepartmentWHEREdept_id=002)WHEREdept_id=002

子查询应用场合应用二:SELECT*FROMtb_name1BETWEEN初始值AND(SELECTcol_nameFROMtb_name2)例:mysqlUSEdb_shop;mysqlSELECT*FROMgoodsWHEREunit_priceBETWEEN3and(SELECTMAX(unit_price)FROMgoods);

考考你1、请列出子查询可以用在SELECT语句的应用;2、请列出子查询可以用在UPDATE语句的应用;3、请列出子查询可以用在DELETE语句的应用;4、请列出子查询可以用在INSERT语句的应用;

任务二使用比较运算符的子查询

用于比较运算符的子查询主要内容:使用比较运算符的子查询语法使用比较运算符的子查询规则比较运算符的子查询应用重点难点:ANY与ALL的应用场合

用于比较运算符的子查询使用比较运算符的子查询SELECT字段列表FROM表名WHERE测试表达式比较运算符[ANY|ALL](子查

显示全部
相似文档