亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Oracle高級查詢

  • select e.empno,e.ename,e.sal,d.dname from emp e,dept d where e.deptno=d.deptno;

    查看全部
  • select?t1.cid,?concat(t1.sname)
    from(select?k.ci_id?cid,s.stu_name?sname
    ????from?pm_ci?k,pm_stu?s
    ????where?instr(k.stu_id,s.stu_id)<>0)?t1
    group?by?t1.cid;


    查看全部
    0 采集 收起 來源:練習

    2019-04-07

  • 提示

    1. 需要進行兩個表的連接查詢,為兩個表都取別名

    2. 使用instr(a,b)函數,該函數的含義為:如果字符串b在字符串a里面,則返回的是b在a中的位置,即返回值大于0

    3. 需要用到分組查詢

    4. 使用wm_concat(cols)函數對學生姓名用逗號拼接。

    查看全部
    0 采集 收起 來源:練習

    2019-03-31

  • SQL> select count(*) Total,

    ? 2? ? ? ? ?sum(decode(to_char(hiredate,'YYYY'),'1980',1,0)) "1980",

    ? 3? ? ? ? ?sum(decode(to_char(hiredate,'YYYY'),'1981',1,0)) "1981",

    ? 4? ? ? ? ?sum(decode(to_char(hiredate,'YYYY'),'1982',1,0)) "1982",

    ? 5? ? ? ? ?sum(decode(to_char(hiredate,'YYYY'),'1987',1,0)) "1987"

    ? 6? from emp;


    ? ? ?TOTAL? ? ? ?1980? ? ? ?1981? ? ? ?1982? ? ? ?1987

    ---------- ---------- ---------- ---------- ----------

    ? ? ? ? 14? ? ? ? ? 1? ? ? ? ?10? ? ? ? ? 1? ? ? ? ? 2


    查看全部
    0 采集 收起 來源:案例3

    2019-03-31

  • 執行計劃對比

    樣式:

    explain plan for

    select ...

    from...

    where...

    select * from table(dbms_xplan.display);【查看】

    查看全部
    0 采集 收起 來源:案例2

    2019-03-31

  • SQL> select r,empno,ename,sal

    ? 2? from (select rownum r,empno,ename,sal

    ? 3? ? ? ?from (select rownum,empno,ename,sal from emp order by sal desc) e1

    ? 4? ? ? ?where rownum<=8) e2

    ? 5? where r>=5;


    ? ? ? ? ?R? ? ? EMPNO ENAME? ? ? ? ? ? ?SAL

    ---------- ---------- ---------- ----------

    ? ? ? ? ?5? ? ? ?7698 BLAKE? ? ? ? ? ? 2850

    ? ? ? ? ?6? ? ? ?7782 CLARK? ? ? ? ? ? 2450

    ? ? ? ? ?7? ? ? ?7499 ALLEN? ? ? ? ? ? 1600

    ? ? ? ? ?8? ? ? ?7844 TURNER? ? ? ? ? ?1500


    SQL> select rownum,r,empno,ename,sal

    ? 2? from (select rownum r,empno,ename,sal

    ? 3? ? ? ?from (select rownum,empno,ename,sal from emp order by sal desc) e1

    ? 4? ? ? ?where rownum<=8) e2

    ? 5? where r>=5;


    ? ? ROWNUM? ? ? ? ? R? ? ? EMPNO ENAME? ? ? ? ? ? ?SAL

    ---------- ---------- ---------- ---------- ----------

    ? ? ? ? ?1? ? ? ? ? 5? ? ? ?7698 BLAKE? ? ? ? ? ? 2850

    ? ? ? ? ?2? ? ? ? ? 6? ? ? ?7782 CLARK? ? ? ? ? ? 2450

    ? ? ? ? ?3? ? ? ? ? 7? ? ? ?7499 ALLEN? ? ? ? ? ? 1600

    ? ? ? ? ?4? ? ? ? ? 8? ? ? ?7844 TURNER? ? ? ? ? ?1500


    SQL> select rownum,r,empno,ename,sal

    ? 2? from (select rownum r,empno,ename,sal

    ? 3? ? ? ?from (select rownum,empno,ename,sal from emp order by sal desc) e1

    ? 4? ? ? ?where rownum<=8) e2

    ? 5? where rownum>=5;


    未選定行


    查看全部
    0 采集 收起 來源:案例1

    2019-03-31

  • 行號只能使用<,<=, 而不能使用>, >=。跟Oracle數據庫的行號生成機制有關系,取了第一行才能取第二行,取了第二行才能取第三行

    查看全部
    0 采集 收起 來源:案例1

    2019-03-31

    1. ttitle?col 15 '我的報表' col 35 sql.pno

      *ttitle col 15表示空15列展示報表名稱

      *“我的報表”是報表名稱

      * sql.pno表示報表頁碼

    2. col deptno heading 部門號

    3. col job heading 職位

    4. col sum(sal) heading 工資總額

    5. break on deptno skip 1

      *把以上設置放在.sql的文件下

    6. 在終端用get語句讀取

    7. @+路徑執行腳本

    8. 執行select ?deptno, job, sum(sal) from emp group by rollup(deptno,job);

      https://img1.sycdn.imooc.com//5c9f483d00011d6009860710.jpg

    查看全部
    1. select deptno, job, sum(sal) from emp group by?deptno, job(紅色)

    2. select?deptno, sum(sal) from emp group by?deptno(藍色)

    3. select ?sum(sal) from emp (紫色)

    ===(等價于)

    select ?deptno, job, sum(sal) from emp group by rollup(deptno,job);


    https://img1.sycdn.imooc.com//5c9f43a90001304e06850381.jpg上面語句適用于做報表,下面是頁面調整相關語句:

    1. break on deptno?skip 2(相同的部門號只顯示一次,不同的部門號跳過2行)

    2. set pagesize 30(設置頁面大小,每頁展示30條)



    查看全部
  • a not in (10, 20, null ) => a!=10 and a!=20 and a!=null--這是不可能的,null不能用等不等于來衡量

    查看全部
  • select max(avg(sal)) from emp group by deptno;

    *先在部門表里分組查出個部門的平均工資,然后嵌套max函數,得到各部門平均工資的最大值


    查看全部
  • 1.select deptno,avg(sal)平均工資 from emp group by deptno?

    order?by ? 平均工資

    *平均工資是avg(sal)的別名,order by語句可以直接使用別名,默認按升序排序

    2.select?deptno,avg(sal)平均工資 from emp group by?deptno?

    order?by ? 2

    *select語句第二列是平均工資,所以order by語句后面直接寫2也是跟第一條語句執行結果一樣,是按照平均工資排序的。

    3.使用a 命令給上一語句后面加一個降序排序,那需要在a命令后面寫2個空格才能成功(2個以上)

    a ?desc



    查看全部
  • 行號永遠按默認順序生成

    行號只能使用<, <=, 不能使用>,>=

    查看全部
  • select *

    from emp

    where deptno=(select deptno

    ? ? ? ? ? ? ? from dept

    ? ? ? ? ? ? ? where dname='SALES');

    等價于:

    select e.*

    from emp e,dept d

    where e.deptno=d.deptno and d.dname='SALES';


    查看全部
  • 重點:from后面的子查詢

    示例1:查詢員工信息:員工號,姓名,月薪

    示例2:查詢員工信息:員工號,姓名,月薪,年薪

    即在已知條件基礎上增加更多可選擇條件

    查看全部

舉報

0/150
提交
取消
課程須知
小伙伴們,學習本課程前需要掌握Oracle的語法基礎,并且對Oracle的函數有所了解。如不了解這兩部分內容,請移步《Oracle數據庫開發必備利器之SQL基礎》和《Oracle數據庫開發利器之函數》兩門教程。
老師告訴你能學到什么?
1、掌握分組查詢 2、掌握多表查詢 3、掌握子查詢

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!