文档详情

主题记录操作中的子查询刘志成73课件.pptx

发布:2025-06-06约1.31千字共6页下载文档
文本预览下载声明

主题:记录操作中的子查询(主讲人:刘志成)

1抽取数据到另一个表中任务一:需要将Goods表中的信息进行处理,但为了防止破坏Goods表,可以建立一个临时表Temp,将Goods表中的数据全部复制到Temp表中,然后查询Temp中所有记录SELECT*INTOTempFROMGoodsGOSELECT*FROMTemp【实现语句】该语句不需要先建立表,会自动生成一个新表自动创建的新表必须有具体的列名,即不能包括聚合函数

2INSERT语句中使用子查询任务二:求每一类商品的平均价格,并将结果保存到数据库中包含在INSERT语句中的查询(子查询)STEP01:创建保存查询结果的表CREATETABLEAvgGoods(t_IDCHAR(2),a_avgFLOAT)STEP02:插入查询结果INSERTINTOAvgGoods(t_ID,a_avg)SELECTt_ID,AVG(g_Price)FROMGoodsGROUPBYt_ID【实现语句】INSERT语句可以将子查询的结果全部插入到指定的表,语句基本格式:INSERTINTO表名[(属性列1[,属性列2...])]子查询表中的列要与查询结果的列在数量和类型上一致

3UPDATE语句中使用子查询任务三:将商品中类别名称为“家用电器”的商品折扣修改为0.8UPDATEGoodsSETg_Discount=0.8WHERE家用电器=(SELECTt_NameFROMTypesWHEREGoods.t_ID=Types.t_ID)【实现语句】(1)修改Goods表。UPDATEGoodsSETg_ID=110001WHEREg_ID=060001(2)修改OrderDetails表。UPDATEOrderDetailsSETg_ID=110001WHEREg_ID=060001【使用多条UPDATE语句保证数据库的一致性】通常使用UPDATE语句一次只能操作一个表。这样,就可能会带来一些问题:例如,商品号为“060001”的商品的类别号调整为“11”,因此对应的商品号必须修改为“110001”,由于Goods表和OrderDetails表中都包含有该商品的类别的信息,如果仅修改Goods表中的类别号,肯定会造成与OrderDetails表中的数据不一致,因此两个表都需要修改,这种修改必须通过两条UPDATE语句来完成。温馨提示

任务四:删除类别名称为“家用电器”的商品的基本信息DELETEFROMGoodsWHERE家用电器=(SELECTt_NameFROMTypesWHEREGoods.t_ID=Types.t_ID)【实现语句】4DELETE语句中使用子查询INSERT语句中使用子查询,实质上是把查询结果作为内容UPDATE、DELETE语句中使用子查询,主要是利用查询结果构造查询条件子查询在视图管理、用户存储过程等有广泛应用操作演示

谢谢大家!

显示全部
相似文档