成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Oracle在PL/SQL中使用子查詢

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

      一、概述

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

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

      • 通過在insert或create table語句中使用子查詢,可以將源表數據插入目標表中。
      • 通過在create view或create materialieed view中使用子查詢,可以定義視圖或實體化視圖所對應的select語句。
      • 通過在update語句中使用子查詢可以修改一列或多列數據。
      • 通過在where、having、start with子句中使用子查詢,可以提供條件值。

      非相關(非關聯)子查詢的使用:

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

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

      又稱為標量子查詢,因為它的結果用作父查詢的標量。通常與比較運算符比如=><!=<=>=聯合使用。

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

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

      使用特定的關鍵字如IN,ANY和ALL來將外層查詢的單個值與子查詢的多行進行比較運算。

      (1)子查詢出現在where子句中的子查詢語法(內嵌子查詢)

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

      (2)子查詢出現在from子句中(內嵌視圖)

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

      (3)子查詢出現在select列表中,此時子查詢只能是一個單行子查詢。

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

      (4)子查詢也可以出現在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之后

      成對比較(多列子查詢)

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

      非成對比較

      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中使用子查詢,可以在建立新表的同時復制表的數據。

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

      2、create View

      建立視圖時,必須指定視圖所對應的子查詢語句。

      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 建立實體化視圖

      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語句

      如果同一個非關聯子查詢在同一次查詢中被使用多次,這種情況可以使用ORACLE9I提供的WITH語句,WITH語句創建了命名的一個臨時的數據集。這個只產生一次數據集可以在整個查詢中使用多次,使用這個數據集就和使用表一樣。

      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);

      五、相關子查詢。

      相關子查詢:是指需要引用主查詢表列的子查詢語句。相關子查詢是通過EXISTS謂詞來實現的。

      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)

      到此這篇關于Oracle在PL/SQL中使用子查詢的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持。

      標簽: Oracle
      相關文章:
      成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
      美国三级日本三级久久99| 日韩精品综合一本久道在线视频| 在线这里只有精品| 亚洲亚洲精品在线观看| 国色天香一区二区| 欧美激情一区二区在线| fc2成人免费人成在线观看播放 | 欧美裸体一区二区三区| 日本亚洲电影天堂| 色一情一伦一子一伦一区| 亚洲成人综合网站| av不卡免费看| 亚洲人午夜精品天堂一二香蕉| 欧美日韩一区二区三区四区在线观看 | 久久久亚洲一区| 亚洲最快最全在线视频| 国产欧美日韩一区| 亚洲国产一区二区在线播放| 一本一本久久| 亚洲综合精品自拍| 久久久水蜜桃| 蜜臀va亚洲va欧美va天堂| 久久婷婷影院| 免费黄网站欧美| 精品视频全国免费看| 久久99精品国产麻豆婷婷| 亚洲日韩视频| 亚洲综合免费观看高清完整版在线 | 国产麻豆成人精品| 欧美日韩国产美| 国产一区二区精品久久| 欧美一区二区三区视频免费| 波多野洁衣一区| 国产午夜精品一区二区三区嫩草| 欧美午夜精彩| 亚洲精品伦理在线| 香蕉久久夜色精品国产| 日韩成人午夜电影| 欧美日韩精品二区第二页| 成人小视频在线观看| 日本一区二区三区在线不卡| 91久久亚洲| 日韩不卡一区二区| 6080午夜不卡| 97久久精品人人做人人爽50路 | 欧美日韩一区二区三区四区| 国内成人自拍视频| 久久综合999| 伊人久久成人| 日韩中文字幕一区二区三区| 538在线一区二区精品国产| av电影天堂一区二区在线| 国产精品久久久久影院老司 | 欧美成人一区二免费视频软件| 国产精品久线观看视频| 亚洲一区中文| 国产一区欧美一区| 国产区在线观看成人精品 | 日韩精品专区在线影院观看| 欧美激情1区| 亚洲国产一区二区三区| 免费看黄裸体一级大秀欧美| 捆绑变态av一区二区三区| 精品入口麻豆88视频| 亚洲精一区二区三区| 乱中年女人伦av一区二区| 日韩免费成人网| 国产精品红桃| 亚洲va中文字幕| 日韩一本二本av| 国产精品v欧美精品∨日韩| 五月天国产精品| 精品三级在线看| 亚洲国产99| 精品在线亚洲视频| 久久看人人爽人人| 亚洲中字黄色| 国产成人午夜电影网| 综合分类小说区另类春色亚洲小说欧美| 色综合久久久久| 成人激情小说网站| 亚洲自拍偷拍图区| 91麻豆精品国产综合久久久久久| 欧美性色综合| 日本va欧美va瓶| 久久亚洲综合av| 蜜桃视频一区| 91亚洲精品乱码久久久久久蜜桃| 亚洲线精品一区二区三区八戒| 欧美一级爆毛片| 亚洲欧美视频一区二区三区| 99久久久久免费精品国产| 五月婷婷综合在线| 国产视频911| 欧美色涩在线第一页| 好看的日韩av电影| 国产成人午夜高潮毛片| 亚洲一区二区三区精品在线| 日韩欧美一二三| 久久天堂国产精品| 午夜精品一区二区三区四区| 久久国产婷婷国产香蕉| 国产精品久久久久永久免费观看| 欧美日韩和欧美的一区二区| 伊人成人在线视频| 大白屁股一区二区视频| 亚洲6080在线| 中文在线一区二区| 欧美成人综合网站| 在线观看av一区| 99热在线精品观看| 9色porny自拍视频一区二区| 国产精品夫妻自拍| 日韩欧美的一区二区| 色国产综合视频| 亚洲国产国产亚洲一二三 | 色成人在线视频| 亚洲一级一区| 99国产欧美另类久久久精品| 久久精品久久久精品美女| 亚洲毛片av在线| xnxx国产精品| 欧美在线免费视屏| 在线播放豆国产99亚洲| 波多野结衣亚洲| 精品影视av免费| 亚洲综合激情小说| 国产精品视频第一区| 日韩精品一区在线| 欧亚一区二区三区| 国产三区精品| 在线成人黄色| 午夜欧美精品久久久久久久| 国产一区二区精品久久| 日本欧美肥老太交大片| 亚洲乱码国产乱码精品精小说| 中文字幕免费不卡| 2021中文字幕一区亚洲| 日韩一区二区在线观看视频 | 91精品国产色综合久久不卡蜜臀| 久久九九国产| 一区二区三区福利| 国产综合激情| 欧美一区二区| 99久久99久久精品国产片果冻| 国产乱码精品一区二区三区五月婷| 日韩vs国产vs欧美| 婷婷激情综合网| 亚洲电影中文字幕在线观看| 亚洲日本在线看| 日韩一区在线看| 国产欧美日韩在线看| 精品国产a毛片| 欧美电视剧免费全集观看| 欧美日韩亚州综合| 色婷婷av一区二区三区软件| 一区二区三区av| 亚洲欧洲日夜超级视频| 国内久久视频| 国产中文一区| 欧美三区在线| 欧美成人有码| 午夜精品国产| 97久久超碰精品国产| 国产丶欧美丶日本不卡视频| 国产精品99久久久久久宅男| 激情综合网天天干| 另类中文字幕网| 久久99这里只有精品| 另类人妖一区二区av| 免费在线观看一区二区三区| 热久久久久久久| 六月丁香综合在线视频| 极品少妇xxxx精品少妇| 国产精品亚洲专一区二区三区| 国产露脸91国语对白| 国产精品自拍一区| 成人激情电影免费在线观看| 不卡av免费在线观看| 91小宝寻花一区二区三区| 欧美 日韩 国产在线| 激情久久一区| 国产精品区免费视频| 久久亚洲欧洲| 欧美天堂一区二区三区| 欧美精品tushy高清| 日韩午夜av电影| 久久综合九色综合97_久久久 | 中文字幕视频一区| 一区二区在线观看免费视频播放| 亚洲另类在线制服丝袜| 亚洲一二三四久久| 日韩中文欧美在线| 九九视频精品免费| 国产河南妇女毛片精品久久久 | 一区二区中文字幕在线| 亚洲欧美国产高清| 亚洲电影激情视频网站| 麻豆国产精品777777在线| 国产黄色91视频|