电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Oracle在PL/SQL中使用子查詢

瀏覽:57日期:2023-03-12 15:25:08
目錄
  • 一、概述
    • 1、單行子查詢(子查詢只返回一行)
    • 2、多行單列子查詢(子查詢返回多行)
    • 3、多列子查詢
  • 二、在DDL語句中使用子查詢
    • 1、create table
    • 2、create View
    • 3、create materialized view 建立實(shí)體化視圖
  • 三、在DML語句中使用子查詢
    • 1.INSERT
    • 2.UPDATE
    • 3.DELETE
  • 四、WITH語句
    • 五、相關(guān)子查詢。

      一、概述

      在一個(gè)SQL語句中嵌套另一個(gè)SQL語句成為子查詢。包括單行子查詢,多行子查詢,多列子查詢。

      注意,當(dāng)在DDL語句中引用子查詢時(shí),可以帶有Order By子句;但是當(dāng)在where子句、Set子句中引用子查詢時(shí),不能帶有Order by 子句。子查詢具有以下一些作用:

      • 通過在insert或create table語句中使用子查詢,可以將源表數(shù)據(jù)插入目標(biāo)表中。
      • 通過在create view或create materialieed view中使用子查詢,可以定義視圖或?qū)嶓w化視圖所對(duì)應(yīng)的select語句。
      • 通過在update語句中使用子查詢可以修改一列或多列數(shù)據(jù)。
      • 通過在where、having、start with子句中使用子查詢,可以提供條件值。

      非相關(guān)(非關(guān)聯(lián))子查詢的使用:

      • FROM語句可以包含任意類型的非關(guān)聯(lián)子查詢。
      • SELECT和ORDER BY可以包含標(biāo)量子查詢。
      • GROUP BY語句不能包含子查詢。
      • SHART WITH和CONNECT BY語句可以包含子查詢。
      • WITH語句包含一個(gè)命名的非關(guān)聯(lián)子查詢,它可以被父查詢引用多次而只執(zhí)行一次。
      • MERGE的USING語句可以包含非關(guān)聯(lián)子查詢。
      • UPDATE的SET語句可以包含標(biāo)量子查詢或者單行多列子查詢
      • INSERT語句可以在VALUES的位置包含標(biāo)量子查詢。

      1、單行子查詢(子查詢只返回一行)

      又稱為標(biāo)量子查詢,因?yàn)樗慕Y(jié)果用作父查詢的標(biāo)量。通常與比較運(yùn)算符比如=、><!=、<=、>=聯(lián)合使用。

      --查詢scott用戶下的emp表中工資比scott高的員工的信息(此操作中的子查詢只返回一行記錄)
        select * from emp  where sal>(select sal from emp where ename="SCOTT");

      2、多行單列子查詢(子查詢返回多行)

      使用特定的關(guān)鍵字如IN,ANY和ALL來將外層查詢的單個(gè)值與子查詢的多行進(jìn)行比較運(yùn)算。

      (1)子查詢出現(xiàn)在where子句中的子查詢語法(內(nèi)嵌子查詢)

      --查詢scott用戶下的emp表中所有的經(jīng)理的信息(此操作子查詢會(huì)返回多行記錄)
       select * from emp  where empno in ( select mgr from emp);

      (2)子查詢出現(xiàn)在from子句中(內(nèi)嵌視圖)

      --將scott用戶下的emp表中查詢出的數(shù)據(jù)作為一個(gè)內(nèi)嵌視圖在FROM子句中使用
       select *  from (select empno,ename,job,sal from emp);

      (3)子查詢出現(xiàn)在select列表中,此時(shí)子查詢只能是一個(gè)單行子查詢。

      select (select job from emp where empno=7369)  from emp;

      (4)子查詢也可以出現(xiàn)在having字句中。

      select empno,ename, sal,deptno  from emp   group by deptno,empno,ename,sal  
           having deptno in ( select deptno from emp     where deptno=10 or deptno=20)  
           order by deptno,sal;

      3、多列子查詢

      1、where之后

      成對(duì)比較(多列子查詢)

      select ename,comm,sal form emp where (sal,nvl(comm,-1)) in (select sal,nvl(comm,-1) from emp where deptno=30);

      非成對(duì)比較

      select ename,sal,comm from emp where sal in(select sal from emp where deptno=30)  and nvl(comm,-1) in (select nvl(comm,-1) from emp where deptno=30)

      2、set之后

      update monthly_orders
      set (tot_orders, max_order_amt, min_order_amt, tot_amt) =
      (select count(*), max(sale_price), min(sale_price), sum(sale_price)  from cust_order
          where order_dt >= TO_DATE("01-JUL-2001","DD-MON-YYYY"))
      where month = 7 and year = 2001;

      二、在DDL語句中使用子查詢

      1、create table

      通過在create table中使用子查詢,可以在建立新表的同時(shí)復(fù)制表的數(shù)據(jù)。

      CREATE TABLE new_emp(id,name,sal,job,deptno) AS SELEct empno,ename,sal,job,deptno FROM emp;

      2、create View

      建立視圖時(shí),必須指定視圖所對(duì)應(yīng)的子查詢語句。

      CREATE OR REPLACE  VIEW dept_10 AS SELECT empno,ename,job,sal,deptno FROM emp WHERE deptno=10 ORDER BY empno;

      3、create materialized view 建立實(shí)體化視圖

      CREATE MATERIALIZED VIEW summary_emp AS
      SELECT deptno,job,avg(sal) avgsal,sum(sal) sumsal FROM emp GROUP BY cube(deptno,job);

      三、在DML語句中使用子查詢

      1.INSERT

      INSERT INTO employee (id,name,title,salary)
      SELECT emptno,ename,job,sal FROM emp;

      2.UPDATE

      UPDATE emp SET (sal,comm)=
      (SELECT sal,comm FROM emp WHERE ename="SMITH")
      WHERE job=(SELECT job FROM emp WHERE ename="SMITH");

      3.DELETE

      DELECT FROM emp WHERE deptno=
      (SELECT deptno FROM dept WHERE dname="SALES");

      四、WITH語句

      如果同一個(gè)非關(guān)聯(lián)子查詢?cè)谕淮尾樵冎斜皇褂枚啻?,這種情況可以使用ORACLE9I提供的WITH語句,WITH語句創(chuàng)建了命名的一個(gè)臨時(shí)的數(shù)據(jù)集。這個(gè)只產(chǎn)生一次數(shù)據(jù)集可以在整個(gè)查詢中使用多次,使用這個(gè)數(shù)據(jù)集就和使用表一樣。

      WITH avg_sal AS (SELECT AVG(salary) val FROM employee)
      SELECT e.emp_id, e.lname, e.fname,
        (SELECT ROUND(e.salary - val) FROM avg_sal) above_avg
      FROM employee e  WHERE e.salary > (SELECT val FROM avg_sal);

      五、相關(guān)子查詢。

      相關(guān)子查詢:是指需要引用主查詢表列的子查詢語句。相關(guān)子查詢是通過EXISTS謂詞來實(shí)現(xiàn)的。

      SELECT ename,job,sal,deptno FROM emp WHERE EXISTS
      (SELECT 1 FROM dept WHERE dept.deptno=emp.deptno AND dept.loc="NEW YORK");

      找出工資高于其所在部門平均工資的員工

      select enam,sal from emp t1 where t1.sal > (select avg(sal) from emp t2 where t1.Deptno = t2.Deptno)

      找出換了二次或二次以上工作的員工:

      select last_name from employees e where 2<=
        (select count(*) from job_history j where j.employee_id =e.employee_id)

      到此這篇關(guān)于Oracle在PL/SQL中使用子查詢的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持。

      標(biāo)簽: Oracle
      相關(guān)文章:
      主站蜘蛛池模板: 无菌实验室规划装修设计-一体化实验室承包-北京洁净净化工程建设施工-北京航天科恩实验室装备工程技术有限公司 | 炉门刀边腹板,焦化设备配件,焦化焦炉设备_沧州瑞创机械制造有限公司 | 东莞市踏板石餐饮管理有限公司_正宗桂林米粉_正宗桂林米粉加盟_桂林米粉加盟费-东莞市棒子桂林米粉 | 蒜肠网-动漫,二次元,COSPLAY,漫展以及收藏型模型,手办,玩具的新媒体.(原变形金刚变迷TF圈) | 液氮罐_液氮容器_自增压液氮罐_杜瓦瓶_班德液氮罐厂家 | 美甲贴片-指甲贴片-穿戴美甲-假指甲厂家--薇丝黛拉 | 健康管理师报名入口,2025年健康管理师考试时间信息网-网站首页 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | 手板-手板模型-手板厂-手板加工-生产厂家,[东莞创域模型] | 振动台-振动试验台-振动冲击台-广东剑乔试验设备有限公司 | 专注氟塑料泵_衬氟泵_磁力泵_卧龙泵阀_化工泵专业品牌 - 梭川泵阀 | 检验科改造施工_DSA手术室净化_导管室装修_成都特殊科室建设厂家_医疗净化工程公司_四川华锐 | 通风天窗,通风气楼,屋顶通风天窗,屋顶通风天窗公司 | 北京京云律师事务所| 微波消解仪器_智能微波消解仪报价_高压微波消解仪厂家_那艾 | 全屋整木定制-橱柜,家具定制-四川峨眉山龙马木业有限公司 | 玉米深加工设备|玉米加工机械|玉米加工设备|玉米深加工机械-河南成立粮油机械有限公司 | 山东led显示屏,山东led全彩显示屏,山东LED小间距屏,临沂全彩电子屏-山东亚泰视讯传媒有限公司 | 合肥制氮机_合肥空压机厂家_安徽真空泵-凯圣精机 | 恒压供水控制柜|无负压|一体化泵站控制柜|PLC远程调试|MCGS触摸屏|自动控制方案-联致自控设备 | 天津次氯酸钠酸钙溶液-天津氢氧化钠厂家-天津市辅仁化工有限公司 | 广东泵阀展|阀门展-广东国际泵管阀展览会 | 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | 无线讲解器-导游讲解器-自助讲解器-分区讲解系统 品牌生产厂家[鹰米讲解-合肥市徽马信息科技有限公司] | sfp光模块,高速万兆光模块工厂-性价比更高的光纤模块制造商-武汉恒泰通 | 低温柔性试验仪-土工布淤堵-沥青车辙试验仪-莱博特(天津)试验机有限公司 | 阁楼货架_阁楼平台_仓库仓储设备_重型货架_广州金铁牛货架厂 | 武汉高低温试验机-现货恒温恒湿试验箱-高低温湿热交变箱价格-湖北高天试验设备 | 剪刃_纵剪机刀片_分条机刀片-南京雷德机械有限公司 | 高柔性拖链电缆_卷筒电缆_耐磨耐折聚氨酯电缆-玖泰特种电缆 | 托利多电子平台秤-高精度接线盒-托利多高精度电子秤|百科 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-沼河浸过滤器 | 附着力促进剂-尼龙处理剂-PP处理剂-金属附着力处理剂-东莞市炅盛塑胶科技有限公司 | 北京印刷厂_北京印刷_北京印刷公司_北京印刷厂家_北京东爵盛世印刷有限公司 | 吨袋包装机|吨包秤|吨包机|集装袋包装机-烟台华恩科技 | 玖容气动液压设备有限公司-气液增压缸_压力机_增压机_铆接机_增压器 | 变频器维修公司_plc维修_伺服驱动器维修_工控机维修 - 夫唯科技 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | 浇钢砖,流钢砖_厂家价低-淄博恒森耐火材料有限公司 | 湖南教师资格网-湖南教师资格证考试网 | 厦门ISO认证|厦门ISO9001认证|厦门ISO14001认证|厦门ISO45001认证-艾索咨询专注ISO认证行业 | 深圳美安可自动化设备有限公司,喷码机,定制喷码机,二维码喷码机,深圳喷码机,纸箱喷码机,东莞喷码机 UV喷码机,日期喷码机,鸡蛋喷码机,管芯喷码机,管内壁喷码机,喷码机厂家 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 |