Bo's Oracle Station

查看: 1185|回复: 0

第51次:2014-10-21 051的第5章和第6章

[复制链接]

75

主题

115

帖子

2772

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2772
发表于 2014-10-22 09:50:24 | 显示全部楼层 |阅读模式
2014-10-21-A.txt
  1. [root@station90 ~]# su - oracle
  2. [oracle@station90 ~]$ sqlplus /nolog

  3. SQL*Plus: Release 11.2.0.3.0 Production on Tue Oct 21 19:25:20 2014

  4. Copyright (c) 1982, 2011, Oracle.  All rights reserved.

  5. SQL> conn hr/oracle_4U
  6. Connected.
  7. SQL> select  count(*)  from employees;

  8.   COUNT(*)
  9. ----------
  10.        107

  11. SQL> select  count(manager_id)  from employees;

  12. COUNT(MANAGER_ID)
  13. -----------------
  14.               106

  15. SQL> select  count(employee_id)  from employees;

  16. COUNT(EMPLOYEE_ID)
  17. ------------------
  18.                107

  19. SQL> select  count(commission_pct)  from employees;

  20. COUNT(COMMISSION_PCT)
  21. ---------------------
  22.                    35

  23. SELECT AVG(NVL(commission_pct, 0))
  24. FROM
  25.   3  employees;

  26. AVG(NVL(COMMISSION_PCT,0))
  27. --------------------------
  28.                 .072897196

  29. SQL> select sum(commission_pct)/count(*)  from employees;

  30. SUM(COMMISSION_PCT)/COUNT(*)
  31. ----------------------------
  32.                   .072897196

  33. SQL> select sum(commission_pct)/count(commission_pct)  from employees;

  34. SUM(COMMISSION_PCT)/COUNT(COMMISSION_PCT)
  35. -----------------------------------------
  36.                                .222857143

  37. SQL> select avg(commission_pct) from employees;

  38. AVG(COMMISSION_PCT)
  39. -------------------
  40.          .222857143

  41. SELECT
  42.   2  department_id, AVG(salary)
  43. FROM
  44. employees
  45.   5  GROUP BY department_id ;

  46. DEPARTMENT_ID AVG(SALARY)
  47. ------------- -----------
  48.           100  8601.33333
  49.            30             4150
  50.                      7000
  51.            20             9500
  52.            70            10000
  53.            90  19333.3333
  54.           110            10154
  55.            50  3475.55556
  56.            40             6500
  57.            80  8955.88235
  58.            10             4400

  59. DEPARTMENT_ID AVG(SALARY)
  60. ------------- -----------
  61.            60             5760

  62. 12 rows selected.

  63. SQL> ed
  64. Wrote file afiedt.buf

  65.   1  SELECT
  66.   2   salary,  department_id, AVG(salary)
  67.   3  FROM
  68.   4  employees
  69.   5* GROUP BY department_id
  70. SQL> /
  71. salary,  department_id, AVG(salary)
  72. *
  73. ERROR at line 2:
  74. ORA-00979: not a GROUP BY expression


  75. SQL> ed
  76. Wrote file afiedt.buf

  77.   1  SELECT
  78.   2    department_id, max(salary)
  79.   3  FROM
  80.   4  employees
  81.   5* GROUP BY department_id
  82. SQL> /

  83. DEPARTMENT_ID MAX(SALARY)
  84. ------------- -----------
  85.           100            12008
  86.            30            11000
  87.                      7000
  88.            20            13000
  89.            70            10000
  90.            90            24000
  91.           110            12008
  92.            50             8200
  93.            40             6500
  94.            80            14000
  95.            10             4400

  96. DEPARTMENT_ID MAX(SALARY)
  97. ------------- -----------
  98.            60             9000

  99. 12 rows selected.

  100. SQL> ed
  101. Wrote file afiedt.buf

  102.   1  SELECT
  103.   2  last_name,  department_id, max(salary)
  104.   3  FROM
  105.   4  employees
  106.   5* GROUP BY department_id
  107. SQL> /
  108. SQL> /
  109. last_name,  department_id, max(salary)
  110. *
  111. ERROR at line 2:
  112. ORA-00979: not a GROUP BY expression


  113. SQL> ed
  114. Wrote file afiedt.buf

  115.   1  select last_name, a.maxsalary,  a.department_id
  116.   2  from  employees e ,
  117.   3  (SELECT
  118.   4    department_id, max(salary)  maxsalary
  119.   5  FROM
  120.   6  employees
  121.   7  GROUP BY department_id )  a
  122.   8* where e.department_id=a.department_id  and e.salary=a.maxsalary
  123.   9  /

  124. LAST_NAME                   MAXSALARY DEPARTMENT_ID
  125. ------------------------- ---------- -------------
  126. Greenberg                       12008               100
  127. Raphaely                       11000                30
  128. Hartstein                       13000                20
  129. Baer                               10000                70
  130. King                               24000                90
  131. Higgins                        12008               110
  132. Fripp                                8200                50
  133. Mavris                                6500                40
  134. Russell                        14000                80
  135. Whalen                                4400                10
  136. Hunold                                9000                60

  137. 11 rows selected.

  138. SQL>
复制代码

2014-10-21-B.txt
  1.            80 SA_REP               51900
  2.            80                       51900
  3.            80 SA_REP               43000
  4.            80                       43000
  5.            80                      304500
  6.            90 AD_PRES               24000
  7.            90                       24000
  8.            90 AD_VP               34000
  9.            90                       34000
  10.            90                       58000

  11. DEPARTMENT_ID JOB_ID         SUM(SALARY)
  12. ------------- ---------- -----------
  13.           100 FI_MGR               12008
  14.           100                       12008
  15.           100 FI_ACCOUNT       39600
  16.           100                       39600
  17.           100                       51608
  18.           110 AC_MGR               12008
  19.           110                       12008
  20.           110 AC_ACCOUNT        8300
  21.           110                        8300
  22.           110                       20308
  23.                               629616

  24. 55 rows selected.

  25. SQL> ed
  26. Wrote file afiedt.buf

  27.   1  SELECT department_id, manager_id, job_id, SUM(salary)
  28.   2  FROM employees
  29.   3  WHERE department_id > 40
  30.   4* GROUP BY rollup (department_id,manager_id, job_id)
  31. SQL> /

  32. DEPARTMENT_ID MANAGER_ID JOB_ID     SUM(SALARY)
  33. ------------- ---------- ---------- -----------
  34.            50             100 ST_MAN           36400
  35.            50             100                  36400
  36.            50             120 SH_CLERK          11600
  37.            50             120 ST_CLERK          10500
  38.            50             120                  22100
  39.            50             121 SH_CLERK          14700
  40.            50             121 ST_CLERK          10700
  41.            50             121                  25400
  42.            50             122 SH_CLERK          12800
  43.            50             122 ST_CLERK          10800
  44.            50             122                  23600

  45. DEPARTMENT_ID MANAGER_ID JOB_ID     SUM(SALARY)
  46. ------------- ---------- ---------- -----------
  47.            50             123 SH_CLERK          13900
  48.            50             123 ST_CLERK          12000
  49.            50             123                  25900
  50.            50             124 SH_CLERK          11300
  51.            50             124 ST_CLERK          11700
  52.            50             124                  23000
  53.            50                                 156400
  54.            60             102 IT_PROG           9000
  55.            60             102                   9000
  56.            60             103 IT_PROG          19800
  57.            60             103                  19800

  58. DEPARTMENT_ID MANAGER_ID JOB_ID     SUM(SALARY)
  59. ------------- ---------- ---------- -----------
  60.            60                                  28800
  61.            70             101 PR_REP           10000
  62.            70             101                  10000
  63.            70                                  10000
  64.            80             100 SA_MAN           61000
  65.            80             100                  61000
  66.            80             145 SA_REP           51000
  67.            80             145                  51000
  68.            80             146 SA_REP           51000
  69.            80             146                  51000
  70.            80             147 SA_REP           46600

  71. DEPARTMENT_ID MANAGER_ID JOB_ID     SUM(SALARY)
  72. ------------- ---------- ---------- -----------
  73.            80             147                  46600
  74.            80             148 SA_REP           51900
  75.            80             148                  51900
  76.            80             149 SA_REP           43000
  77.            80             149                  43000
  78.            80                                 304500
  79.            90                 AD_PRES          24000
  80.            90                                  24000
  81.            90             100 AD_VP                  34000
  82.            90             100                  34000
  83.            90                                  58000

  84. DEPARTMENT_ID MANAGER_ID JOB_ID     SUM(SALARY)
  85. ------------- ---------- ---------- -----------
  86.           100             101 FI_MGR           12008
  87.           100             101                  12008
  88.           100             108 FI_ACCOUNT          39600
  89.           100             108                  39600
  90.           100                                  51608
  91.           110             101 AC_MGR           12008
  92.           110             101                  12008
  93.           110             205 AC_ACCOUNT           8300
  94.           110             205                   8300
  95.           110                                  20308
  96.                                          629616

  97. 55 rows selected.

  98. SQL> ed
  99. Wrote file afiedt.buf

  100.   1  SELECT department_id, manager_id, job_id, SUM(salary)
  101.   2  FROM employees
  102.   3  WHERE department_id > 40
  103.   4* GROUP BY rollup (department_id,manager_id, job_id)
  104. SQL> null
  105. SP2-0042: unknown command "null" - rest of line ignored.
  106. SQL> department_id
  107. SP2-0734: unknown command beginning "department..." - rest of line ignored.
  108. SQL> department_id,manager_id,
  109. SP2-0734: unknown command beginning "department..." - rest of line ignored.
  110. SQL> ed
  111. Wrote file afiedt.buf

  112.   1  SELECT department_id,  job_id, SUM(salary)
  113.   2  FROM employees
  114.   3  WHERE department_id > 40
  115.   4* GROUP BY cube (department_id, job_id)
  116. SQL> /

  117. DEPARTMENT_ID JOB_ID         SUM(SALARY)
  118. ------------- ---------- -----------
  119.                               629616
  120.               AD_VP               34000
  121.               AC_MGR               12008
  122.               FI_MGR               12008
  123.               PR_REP               10000
  124.               SA_MAN               61000
  125.               SA_REP              243500
  126.               ST_MAN               36400
  127.               AD_PRES               24000
  128.               IT_PROG               28800
  129.               SH_CLERK               64300

  130. DEPARTMENT_ID JOB_ID         SUM(SALARY)
  131. ------------- ---------- -----------
  132.               ST_CLERK               55700
  133.               AC_ACCOUNT        8300
  134.               FI_ACCOUNT       39600
  135.            50                      156400
  136.            50 ST_MAN               36400
  137.            50 SH_CLERK               64300
  138.            50 ST_CLERK               55700
  139.            60                       28800
  140.            60 IT_PROG               28800
  141.            70                       10000
  142.            70 PR_REP               10000

  143. DEPARTMENT_ID JOB_ID         SUM(SALARY)
  144. ------------- ---------- -----------
  145.            80                      304500
  146.            80 SA_MAN               61000
  147.            80 SA_REP              243500
  148.            90                       58000
  149.            90 AD_VP               34000
  150.            90 AD_PRES               24000
  151.           100                       51608
  152.           100 FI_MGR               12008
  153.           100 FI_ACCOUNT       39600
  154.           110                       20308
  155.           110 AC_MGR               12008

  156. DEPARTMENT_ID JOB_ID         SUM(SALARY)
  157. ------------- ---------- -----------
  158.           110 AC_ACCOUNT        8300

  159. 34 rows selected.

  160. SQL> create table  t05105( a number , b number , c number ) ;

  161. Table created.

  162. SQL> insert into t05105  vaues ( 1, 10, 100) ;
  163. insert into t05105  vaues ( 1, 10, 100)
  164.                             *
  165. ERROR at line 1:
  166. ORA-00928: missing SELECT keyword


  167. SQL> insert into t05105  values ( 1, 10, 100) ;

  168. 1 row created.

  169. SQL> insert into t05105  values ( 2, 20, 200) ;

  170. 1 row created.

  171. SQL> commit;

  172. Commit complete.

  173. SQL> alter table t05105 add ( d  number ) ;

  174. Table altered.

  175. SQL> update t05105  set d=1000 where a=1;

  176. 1 row updated.

  177. SQL> commit;

  178. Commit complete.

  179. SQL> update t05105  set d=2000 where a=2;

  180. 1 row updated.

  181. SQL> commit;

  182. Commit complete.

  183. SQL> select  * from t05105;

  184.          A            B               C          D
  185. ---------- ---------- ---------- ----------
  186.          1           10             100       1000
  187.          2           20             200       2000

  188. SQL> ed
  189. Wrote file afiedt.buf

  190.   1  select   a,b, c ,sum( d)  from t05105
  191.   2* group by  cube ( a , b ,c )
  192.   3  /

  193.          A            B               C     SUM(D)
  194. ---------- ---------- ---------- ----------
  195.                                        3000
  196.                              100       1000
  197.                              200       2000
  198.                    10                       1000
  199.                    10             100       1000
  200.                    20                       2000
  201.                    20             200       2000
  202.          1                               1000
  203.          1                     100       1000
  204.          1           10                       1000
  205.          1           10             100       1000

  206.          A            B               C     SUM(D)
  207. ---------- ---------- ---------- ----------
  208.          2                               2000
  209.          2                     200       2000
  210.          2           20                       2000
  211.          2           20             200       2000

  212. 15 rows selected.

  213. SQL> ed
  214. Wrote file afiedt.buf

  215.   1  select   a,b, c ,sum( d)  from t05105
  216.   2* group by  rollup  ( a , b ,c )
  217.   3  /

  218.          A            B               C     SUM(D)
  219. ---------- ---------- ---------- ----------
  220.          1           10             100       1000
  221.          1           10                       1000
  222.          1                               1000
  223.          2           20             200       2000
  224.          2           20                       2000
  225.          2                               2000
  226.                                        3000

  227. 7 rows selected.

  228. SQL> ed
  229. Wrote file afiedt.buf

  230.   1  select   a,b, c ,sum( d)  from t05105
  231.   2  group by  cube  ( a , b ,c )
  232.   3  minus
  233.   4  select   a,b, c ,sum( d)  from t05105
  234.   5* group by  rollup  ( a , b ,c )
  235. SQL> /

  236.          A            B               C     SUM(D)
  237. ---------- ---------- ---------- ----------
  238.          1                     100       1000
  239.          2                     200       2000
  240.                    10             100       1000
  241.                    10                       1000
  242.                    20             200       2000
  243.                    20                       2000
  244.                              100       1000
  245.                              200       2000

  246. 8 rows selected.

  247. SQL> ed
  248. Wrote file afiedt.buf

  249.   1  select   a,b, c ,sum( d),          grouping ( a)  ga , grouping(b) gb  , grouping (c) gc  from t05105
  250.   2  group by  cube  ( a , b ,c )
  251.   3  minus
  252.   4  select   a,b, c ,sum( d)  from t05105
  253.   5* group by  rollup  ( a , b ,c )
  254. SQL> /
  255. select         a,b, c ,sum( d),    grouping ( a)  ga , grouping(b) gb  , grouping (c) gc  from t05105
  256. *
  257. ERROR at line 1:
  258. ORA-01789: query block has incorrect number of result columns


  259. SQL> ed
  260. Wrote file afiedt.buf

  261.   1  select   a,b, c ,sum( d),          grouping(a)  ga , grouping(b)  gb  , grouping(c)  gc        from t05105
  262.   2* group by  cube  ( a , b ,c )
  263. SQL> /

  264.          A            B               C     SUM(D)            GA               GB          GC
  265. ---------- ---------- ---------- ---------- ---------- ---------- ----------
  266.                                        3000             1                1           1
  267.                              100       1000             1                1           0
  268.                              200       2000             1                1           0
  269.                    10                       1000             1                0           1
  270.                    10             100       1000             1                0           0
  271.                    20                       2000             1                0           1
  272.                    20             200       2000             1                0           0
  273.          1                               1000             0                1           1
  274.          1                     100       1000             0                1           0
  275.          1           10                       1000             0                0           1
  276.          1           10             100       1000             0                0           0

  277.          A            B               C     SUM(D)            GA               GB          GC
  278. ---------- ---------- ---------- ---------- ---------- ---------- ----------
  279.          2                               2000             0                1           1
  280.          2                     200       2000             0                1           0
  281.          2           20                       2000             0                0           1
  282.          2           20             200       2000             0                0           0

  283. 15 rows selected.

  284. SQL> ed
  285. Wrote file afiedt.buf

  286.   1  select   a,b, c ,sum( d),          grouping(a)  ga , grouping(b)  gb  , grouping(c)  gc        from t05105
  287.   2* group by        a , b ,c
  288. SQL> /

  289.          A            B               C     SUM(D)            GA               GB          GC
  290. ---------- ---------- ---------- ---------- ---------- ---------- ----------
  291.          2           20             200       2000             0                0           0
  292.          1           10             100       1000             0                0           0

  293. SQL> ed
  294. Wrote file afiedt.buf

  295.   1  select   a,b, c ,sum( d),          grouping(a)  ga , grouping(b)  gb  , grouping(c)  gc        from t05105
  296.   2* group by        rollup(a , b ,c)
  297. SQL> /

  298.          A            B               C     SUM(D)            GA               GB          GC
  299. ---------- ---------- ---------- ---------- ---------- ---------- ----------
  300.          1           10             100       1000             0                0           0
  301.          1           10                       1000             0                0           1
  302.          1                               1000             0                1           1
  303.          2           20             200       2000             0                0           0
  304.          2           20                       2000             0                0           1
  305.          2                               2000             0                1           1
  306.                                        3000             1                1           1

  307. 7 rows selected.

  308. SELECT
  309. MAX(AVG(salary))
  310. FROM
  311. employees
  312.   5  GROUP BY department_id;

  313. MAX(AVG(SALARY))
  314. ----------------
  315.       19333.3333

  316. SQL> ed
  317. Wrote file afiedt.buf

  318.   1  SELECT
  319.   2  MAX(AVG(salary))
  320.   3  FROM
  321.   4* employees
  322.   5  /
  323. MAX(AVG(salary))
  324.     *
  325. ERROR at line 2:
  326. ORA-00978: nested group function without GROUP BY


  327. SQL> ed
  328. Wrote file afiedt.buf

  329.   1  SELECT
  330.   2  AVG(salary)
  331.   3  FROM
  332.   4* employees
  333. SQL> /

  334. AVG(SALARY)
  335. -----------
  336. 6461.83178

  337. SQL> select department_id  did  , sum(salary)
  338.   2   from employees
  339.   3   group by did;
  340. group by did
  341.           *
  342. ERROR at line 3:
  343. ORA-00904: "DID": invalid identifier


  344. SQL> ed
  345. Wrote file afiedt.buf

  346.   1  select department_id  did        , sum(salary)
  347.   2   from employees
  348.   3   group by department_id
  349.   4*  order by did
  350. SQL> /

  351.        DID SUM(SALARY)
  352. ---------- -----------
  353.         10          4400
  354.         20         19000
  355.         30         24900
  356.         40          6500
  357.         50        156400
  358.         60         28800
  359.         70         10000
  360.         80        304500
  361.         90         58000
  362.        100         51608
  363.        110         20308

  364.        DID SUM(SALARY)
  365. ---------- -----------
  366.                   7000

  367. 12 rows selected.

  368. SQL> ed
  369. Wrote file afiedt.buf

  370.   1  select department_id  did        , sum(salary)
  371.   2   from employees
  372.   3   group by department_id
  373.   4*  order by did desc
  374. SQL> /

  375.        DID SUM(SALARY)
  376. ---------- -----------
  377.                   7000
  378.        110         20308
  379.        100         51608
  380.         90         58000
  381.         80        304500
  382.         70         10000
  383.         60         28800
  384.         50        156400
  385.         40          6500
  386.         30         24900
  387.         20         19000

  388.        DID SUM(SALARY)
  389. ---------- -----------
  390.         10          4400

  391. 12 rows selected.

  392. SQL> ed
  393. Wrote file afiedt.buf

  394.   1  select  sum(salary)
  395.   2   from employees
  396.   3   group by department_id
  397.   4*  order by        department_id desc
  398. SQL> /

  399. SUM(SALARY)
  400. -----------
  401.        7000
  402.       20308
  403.       51608
  404.       58000
  405.      304500
  406.       10000
  407.       28800
  408.      156400
  409.        6500
  410.       24900
  411.       19000

  412. SUM(SALARY)
  413. -----------
  414.        4400

  415. 12 rows selected.

  416. SQL>

复制代码

2014-10-21-C.txt
  1.         169 Bloom                      Sales
  2.         168 Ozer                      Sales
  3.         167 Banda                      Sales
  4.         166 Ande                      Sales
  5.         165 Lee                       Sales
  6.         164 Marvins                      Sales

  7. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  8. ----------- ------------------------- ------------------------------
  9.         163 Greene                      Sales
  10.         162 Vishney                      Sales
  11.         161 Sewall                      Sales
  12.         160 Doran                      Sales
  13.         159 Smith                      Sales
  14.         158 McEwen                      Sales
  15.         157 Sully                      Sales
  16.         156 King                      Sales
  17.         155 Tuvault                      Sales
  18.         154 Cambrault                      Sales
  19.         153 Olsen                      Sales

  20. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  21. ----------- ------------------------- ------------------------------
  22.         152 Hall                      Sales
  23.         151 Bernstein                      Sales
  24.         150 Tucker                      Sales
  25.         149 Zlotkey                      Sales
  26.         148 Cambrault                      Sales
  27.         147 Errazuriz                      Sales
  28.         146 Partners                      Sales
  29.         145 Russell                      Sales
  30.         102 De Haan                      Executive
  31.         101 Kochhar                      Executive
  32.         100 King                      Executive

  33. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  34. ----------- ------------------------- ------------------------------
  35.         113 Popp                      Finance
  36.         112 Urman                      Finance
  37.         111 Sciarra                      Finance
  38.         110 Chen                      Finance
  39.         109 Faviet                      Finance
  40.         108 Greenberg                      Finance
  41.         206 Gietz                      Accounting
  42.         205 Higgins                      Accounting
  43.         178 Grant

  44. 229 rows selected.


  45. Execution Plan
  46. ----------------------------------------------------------
  47. Plan hash value: 4128141029

  48. ---------------------------------------------------------------------------------------------
  49. | Id  | Operation                      | Name            | Rows  | Bytes | Cost (%CPU)| Time     |
  50. ---------------------------------------------------------------------------------------------
  51. |   0 | SELECT STATEMENT              |             |        213 |  6603 |         13  (62)| 00:00:01 |
  52. |   1 |  UNION-ALL                      |             |            |            |                 |            |
  53. |   2 |   MERGE JOIN OUTER              |             |        106 |  3286 |          6  (17)| 00:00:01 |
  54. |   3 |    TABLE ACCESS BY INDEX ROWID| DEPARTMENTS |         27 |        432 |          2   (0)| 00:00:01 |
  55. |   4 |     INDEX FULL SCAN              | DEPT_ID_PK  |         27 |            |          1   (0)| 00:00:01 |
  56. |*  5 |    SORT JOIN                      |             |        107 |  1605 |          4  (25)| 00:00:01 |
  57. |   6 |     TABLE ACCESS FULL              | EMPLOYEES   |        107 |  1605 |          3   (0)| 00:00:01 |
  58. |*  7 |   HASH JOIN OUTER              |             |        107 |  3317 |          7  (15)| 00:00:01 |
  59. |   8 |    TABLE ACCESS FULL              | EMPLOYEES   |        107 |  1605 |          3   (0)| 00:00:01 |
  60. |   9 |    TABLE ACCESS FULL              | DEPARTMENTS |         27 |        432 |          3   (0)| 00:00:01 |
  61. ---------------------------------------------------------------------------------------------

  62. Predicate Information (identified by operation id):
  63. ---------------------------------------------------

  64.    5 - access("E"."DEPARTMENT_ID"(+)="D"."DEPARTMENT_ID")
  65.        filter("E"."DEPARTMENT_ID"(+)="D"."DEPARTMENT_ID")
  66.    7 - access("E"."DEPARTMENT_ID"="D"."DEPARTMENT_ID"(+))


  67. Statistics
  68. ----------------------------------------------------------
  69.           1  recursive calls
  70.           0  db block gets
  71.          36  consistent gets
  72.           0  physical reads
  73.           0  redo size
  74.        7382  bytes sent via SQL*Net to client
  75.         685  bytes received via SQL*Net from client
  76.          17  SQL*Net roundtrips to/from client
  77.           1  sorts (memory)
  78.           0  sorts (disk)
  79.         229  rows processed

  80. SQL> ed
  81. Wrote file afiedt.buf

  82.   1  select  employee_id, last_name   , department_name
  83.   2   from employees e , departments d
  84.   3   where e.department_id(+)=d.department_id
  85.   4  union
  86.   5  select  employee_id, last_name   , department_name
  87.   6   from employees e , departments d
  88.   7*  where e.department_id=d.department_id(+)
  89. SQL> /

  90. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  91. ----------- ------------------------- ------------------------------
  92.         100 King                      Executive
  93.         101 Kochhar                      Executive
  94.         102 De Haan                      Executive
  95.         103 Hunold                      IT
  96.         104 Ernst                      IT
  97.         105 Austin                      IT
  98.         106 Pataballa                      IT
  99.         107 Lorentz                      IT
  100.         108 Greenberg                      Finance
  101.         109 Faviet                      Finance
  102.         110 Chen                      Finance

  103. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  104. ----------- ------------------------- ------------------------------
  105.         111 Sciarra                      Finance
  106.         112 Urman                      Finance
  107.         113 Popp                      Finance
  108.         114 Raphaely                      Purchasing
  109.         115 Khoo                      Purchasing
  110.         116 Baida                      Purchasing
  111.         117 Tobias                      Purchasing
  112.         118 Himuro                      Purchasing
  113.         119 Colmenares                      Purchasing
  114.         120 Weiss                      Shipping
  115.         121 Fripp                      Shipping

  116. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  117. ----------- ------------------------- ------------------------------
  118.         122 Kaufling                      Shipping
  119.         123 Vollman                      Shipping
  120.         124 Mourgos                      Shipping
  121.         125 Nayer                      Shipping
  122.         126 Mikkilineni               Shipping
  123.         127 Landry                      Shipping
  124.         128 Markle                      Shipping
  125.         129 Bissot                      Shipping
  126.         130 Atkinson                      Shipping
  127.         131 Marlow                      Shipping
  128.         132 Olson                      Shipping

  129. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  130. ----------- ------------------------- ------------------------------
  131.         133 Mallin                      Shipping
  132.         134 Rogers                      Shipping
  133.         135 Gee                       Shipping
  134.         136 Philtanker                      Shipping
  135.         137 Ladwig                      Shipping
  136.         138 Stiles                      Shipping
  137.         139 Seo                       Shipping
  138.         140 Patel                      Shipping
  139.         141 Rajs                      Shipping
  140.         142 Davies                      Shipping
  141.         143 Matos                      Shipping

  142. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  143. ----------- ------------------------- ------------------------------
  144.         144 Vargas                      Shipping
  145.         145 Russell                      Sales
  146.         146 Partners                      Sales
  147.         147 Errazuriz                      Sales
  148.         148 Cambrault                      Sales
  149.         149 Zlotkey                      Sales
  150.         150 Tucker                      Sales
  151.         151 Bernstein                      Sales
  152.         152 Hall                      Sales
  153.         153 Olsen                      Sales
  154.         154 Cambrault                      Sales

  155. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  156. ----------- ------------------------- ------------------------------
  157.         155 Tuvault                      Sales
  158.         156 King                      Sales
  159.         157 Sully                      Sales
  160.         158 McEwen                      Sales
  161.         159 Smith                      Sales
  162.         160 Doran                      Sales
  163.         161 Sewall                      Sales
  164.         162 Vishney                      Sales
  165.         163 Greene                      Sales
  166.         164 Marvins                      Sales
  167.         165 Lee                       Sales

  168. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  169. ----------- ------------------------- ------------------------------
  170.         166 Ande                      Sales
  171.         167 Banda                      Sales
  172.         168 Ozer                      Sales
  173.         169 Bloom                      Sales
  174.         170 Fox                       Sales
  175.         171 Smith                      Sales
  176.         172 Bates                      Sales
  177.         173 Kumar                      Sales
  178.         174 Abel                      Sales
  179.         175 Hutton                      Sales
  180.         176 Taylor                      Sales

  181. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  182. ----------- ------------------------- ------------------------------
  183.         177 Livingston                      Sales
  184.         178 Grant
  185.         179 Johnson                      Sales
  186.         180 Taylor                      Shipping
  187.         181 Fleaur                      Shipping
  188.         182 Sullivan                      Shipping
  189.         183 Geoni                      Shipping
  190.         184 Sarchand                      Shipping
  191.         185 Bull                      Shipping
  192.         186 Dellinger                      Shipping
  193.         187 Cabrio                      Shipping

  194. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  195. ----------- ------------------------- ------------------------------
  196.         188 Chung                      Shipping
  197.         189 Dilly                      Shipping
  198.         190 Gates                      Shipping
  199.         191 Perkins                      Shipping
  200.         192 Bell                      Shipping
  201.         193 Everett                      Shipping
  202.         194 McCain                      Shipping
  203.         195 Jones                      Shipping
  204.         196 Walsh                      Shipping
  205.         197 Feeney                      Shipping
  206.         198 OConnell                      Shipping

  207. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  208. ----------- ------------------------- ------------------------------
  209.         199 Grant                      Shipping
  210.         200 Whalen                      Administration
  211.         201 Hartstein                      Marketing
  212.         202 Fay                       Marketing
  213.         203 Mavris                      Human Resources
  214.         204 Baer                      Public Relations
  215.         205 Higgins                      Accounting
  216.         206 Gietz                      Accounting
  217.                                       Benefits
  218.                                       Construction
  219.                                       Contracting

  220. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  221. ----------- ------------------------- ------------------------------
  222.                                       Control And Credit
  223.                                       Corporate Tax
  224.                                       Government Sales
  225.                                       IT Helpdesk
  226.                                       IT Support
  227.                                       Manufacturing
  228.                                       NOC
  229.                                       Operations
  230.                                       Payroll
  231.                                       Recruiting
  232.                                       Retail Sales

  233. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  234. ----------- ------------------------- ------------------------------
  235.                                       Shareholder Services
  236.                                       Treasury

  237. 123 rows selected.


  238. Execution Plan
  239. ----------------------------------------------------------
  240. Plan hash value: 3656339828

  241. ----------------------------------------------------------------------------------------------
  242. | Id  | Operation                       | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
  243. ----------------------------------------------------------------------------------------------
  244. |   0 | SELECT STATEMENT               |             |         213 |        6603 |          15  (67)| 00:00:01 |
  245. |   1 |  SORT UNIQUE                       |             |         213 |        6603 |          15  (67)| 00:00:01 |
  246. |   2 |   UNION-ALL                       |             |             |             |                  |             |
  247. |   3 |    MERGE JOIN OUTER               |             |         106 |        3286 |           6  (17)| 00:00:01 |
  248. |   4 |     TABLE ACCESS BY INDEX ROWID| DEPARTMENTS |          27 |         432 |           2   (0)| 00:00:01 |
  249. |   5 |      INDEX FULL SCAN               | DEPT_ID_PK  |          27 |             |           1   (0)| 00:00:01 |
  250. |*  6 |     SORT JOIN                       |             |         107 |        1605 |           4  (25)| 00:00:01 |
  251. |   7 |      TABLE ACCESS FULL               | EMPLOYEES   |         107 |        1605 |           3   (0)| 00:00:01 |
  252. |*  8 |    HASH JOIN OUTER               |             |         107 |        3317 |           7  (15)| 00:00:01 |
  253. |   9 |     TABLE ACCESS FULL               | EMPLOYEES   |         107 |        1605 |           3   (0)| 00:00:01 |
  254. |  10 |     TABLE ACCESS FULL               | DEPARTMENTS |          27 |         432 |           3   (0)| 00:00:01 |
  255. ----------------------------------------------------------------------------------------------

  256. Predicate Information (identified by operation id):
  257. ---------------------------------------------------

  258.    6 - access("E"."DEPARTMENT_ID"(+)="D"."DEPARTMENT_ID")
  259.        filter("E"."DEPARTMENT_ID"(+)="D"."DEPARTMENT_ID")
  260.    8 - access("E"."DEPARTMENT_ID"="D"."DEPARTMENT_ID"(+))


  261. Statistics
  262. ----------------------------------------------------------
  263.           1  recursive calls
  264.           0  db block gets
  265.          20  consistent gets
  266.           0  physical reads
  267.           0  redo size
  268.        4313  bytes sent via SQL*Net to client
  269.         608  bytes received via SQL*Net from client
  270.          10  SQL*Net roundtrips to/from client
  271.           2  sorts (memory)
  272.           0  sorts (disk)
  273.         123  rows processed

  274. SQL> ed
  275. Wrote file afiedt.buf

  276.   1  select  employee_id, last_name   , department_name
  277.   2   from employees e        full outer join  departments d
  278.   3*  on e.department_id=d.department_id
  279. SQL> /

  280. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  281. ----------- ------------------------- ------------------------------
  282.         198 OConnell                      Shipping
  283.         199 Grant                      Shipping
  284.         200 Whalen                      Administration
  285.         201 Hartstein                      Marketing
  286.         202 Fay                       Marketing
  287.         203 Mavris                      Human Resources
  288.         204 Baer                      Public Relations
  289.         205 Higgins                      Accounting
  290.         206 Gietz                      Accounting
  291.         100 King                      Executive
  292.         101 Kochhar                      Executive

  293. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  294. ----------- ------------------------- ------------------------------
  295.         102 De Haan                      Executive
  296.         103 Hunold                      IT
  297.         104 Ernst                      IT
  298.         105 Austin                      IT
  299.         106 Pataballa                      IT
  300.         107 Lorentz                      IT
  301.         108 Greenberg                      Finance
  302.         109 Faviet                      Finance
  303.         110 Chen                      Finance
  304.         111 Sciarra                      Finance
  305.         112 Urman                      Finance

  306. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  307. ----------- ------------------------- ------------------------------
  308.         113 Popp                      Finance
  309.         114 Raphaely                      Purchasing
  310.         115 Khoo                      Purchasing
  311.         116 Baida                      Purchasing
  312.         117 Tobias                      Purchasing
  313.         118 Himuro                      Purchasing
  314.         119 Colmenares                      Purchasing
  315.         120 Weiss                      Shipping
  316.         121 Fripp                      Shipping
  317.         122 Kaufling                      Shipping
  318.         123 Vollman                      Shipping

  319. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  320. ----------- ------------------------- ------------------------------
  321.         124 Mourgos                      Shipping
  322.         125 Nayer                      Shipping
  323.         126 Mikkilineni               Shipping
  324.         127 Landry                      Shipping
  325.         128 Markle                      Shipping
  326.         129 Bissot                      Shipping
  327.         130 Atkinson                      Shipping
  328.         131 Marlow                      Shipping
  329.         132 Olson                      Shipping
  330.         133 Mallin                      Shipping
  331.         134 Rogers                      Shipping

  332. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  333. ----------- ------------------------- ------------------------------
  334.         135 Gee                       Shipping
  335.         136 Philtanker                      Shipping
  336.         137 Ladwig                      Shipping
  337.         138 Stiles                      Shipping
  338.         139 Seo                       Shipping
  339.         140 Patel                      Shipping
  340.         141 Rajs                      Shipping
  341.         142 Davies                      Shipping
  342.         143 Matos                      Shipping
  343.         144 Vargas                      Shipping
  344.         145 Russell                      Sales

  345. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  346. ----------- ------------------------- ------------------------------
  347.         146 Partners                      Sales
  348.         147 Errazuriz                      Sales
  349.         148 Cambrault                      Sales
  350.         149 Zlotkey                      Sales
  351.         150 Tucker                      Sales
  352.         151 Bernstein                      Sales
  353.         152 Hall                      Sales
  354.         153 Olsen                      Sales
  355.         154 Cambrault                      Sales
  356.         155 Tuvault                      Sales
  357.         156 King                      Sales

  358. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  359. ----------- ------------------------- ------------------------------
  360.         157 Sully                      Sales
  361.         158 McEwen                      Sales
  362.         159 Smith                      Sales
  363.         160 Doran                      Sales
  364.         161 Sewall                      Sales
  365.         162 Vishney                      Sales
  366.         163 Greene                      Sales
  367.         164 Marvins                      Sales
  368.         165 Lee                       Sales
  369.         166 Ande                      Sales
  370.         167 Banda                      Sales

  371. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  372. ----------- ------------------------- ------------------------------
  373.         168 Ozer                      Sales
  374.         169 Bloom                      Sales
  375.         170 Fox                       Sales
  376.         171 Smith                      Sales
  377.         172 Bates                      Sales
  378.         173 Kumar                      Sales
  379.         174 Abel                      Sales
  380.         175 Hutton                      Sales
  381.         176 Taylor                      Sales
  382.         177 Livingston                      Sales
  383.         178 Grant

  384. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  385. ----------- ------------------------- ------------------------------
  386.         179 Johnson                      Sales
  387.         180 Taylor                      Shipping
  388.         181 Fleaur                      Shipping
  389.         182 Sullivan                      Shipping
  390.         183 Geoni                      Shipping
  391.         184 Sarchand                      Shipping
  392.         185 Bull                      Shipping
  393.         186 Dellinger                      Shipping
  394.         187 Cabrio                      Shipping
  395.         188 Chung                      Shipping
  396.         189 Dilly                      Shipping

  397. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  398. ----------- ------------------------- ------------------------------
  399.         190 Gates                      Shipping
  400.         191 Perkins                      Shipping
  401.         192 Bell                      Shipping
  402.         193 Everett                      Shipping
  403.         194 McCain                      Shipping
  404.         195 Jones                      Shipping
  405.         196 Walsh                      Shipping
  406.         197 Feeney                      Shipping
  407.                                       NOC
  408.                                       Manufacturing
  409.                                       Government Sales

  410. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  411. ----------- ------------------------- ------------------------------
  412.                                       IT Support
  413.                                       Benefits
  414.                                       Shareholder Services
  415.                                       Retail Sales
  416.                                       Control And Credit
  417.                                       Recruiting
  418.                                       Operations
  419.                                       Treasury
  420.                                       Payroll
  421.                                       Corporate Tax
  422.                                       Construction

  423. EMPLOYEE_ID LAST_NAME                      DEPARTMENT_NAME
  424. ----------- ------------------------- ------------------------------
  425.                                       Contracting
  426.                                       IT Helpdesk

  427. 123 rows selected.


  428. Execution Plan
  429. ----------------------------------------------------------
  430. Plan hash value: 2631508678

  431. -------------------------------------------------------------------------------------
  432. | Id  | Operation              | Name            | Rows  | Bytes | Cost (%CPU)| Time     |
  433. -------------------------------------------------------------------------------------
  434. |   0 | SELECT STATEMENT      |             |        122 |  5368 |          7  (15)| 00:00:01 |
  435. |   1 |  VIEW                      | VW_FOJ_0    |        122 |  5368 |          7  (15)| 00:00:01 |
  436. |*  2 |   HASH JOIN FULL OUTER|             |        122 |  3782 |          7  (15)| 00:00:01 |
  437. |   3 |    TABLE ACCESS FULL  | DEPARTMENTS |         27 |        432 |          3   (0)| 00:00:01 |
  438. |   4 |    TABLE ACCESS FULL  | EMPLOYEES   |        107 |  1605 |          3   (0)| 00:00:01 |
  439. -------------------------------------------------------------------------------------

  440. Predicate Information (identified by operation id):
  441. ---------------------------------------------------

  442.    2 - access("E"."DEPARTMENT_ID"="D"."DEPARTMENT_ID")


  443. Statistics
  444. ----------------------------------------------------------
  445.           1  recursive calls
  446.           0  db block gets
  447.          20  consistent gets
  448.           0  physical reads
  449.           0  redo size
  450.        4321  bytes sent via SQL*Net to client
  451.         608  bytes received via SQL*Net from client
  452.          10  SQL*Net roundtrips to/from client
  453.           0  sorts (memory)
  454.           0  sorts (disk)
  455.         123  rows processed

复制代码

PLSQL Developer
  1. select  e.employee_id, e.last_name, e.first_name, d.department_name ,d.department_id
  2.   from employees e, departments d
  3.   where e.department_id=d.department_id;
  4.   
  5.   select  e.employee_id, e.last_name, e.first_name, d.department_name , department_id
  6.     from employees  e join departments d
  7.     using (department_id);
  8.   
  9.     select  e.employee_id, e.last_name, e.first_name, d.department_name , d.department_id
  10.     from employees  e join departments d
  11.     on  (  e.department_id= d.department_id);
  12.   
  13.    select  e.employee_id, e.last_name, e.first_name, d.department_name , department_id
  14.     from employees  e   natural  join departments d;
  15.   
  16.     select  e.employee_id, e.last_name, e.first_name, d.department_name , department_id
  17.     from employees  e join departments d
  18.     using (department_id, manager_id);
  19.   
  20.   select  * from employees where employee_id=178;
  21.   
  22.   
  23.   select employee_id, last_name, first_name , department_name
  24. from employees e, departments d
  25. where e.department_id=d.department_id



  26. SELECT e.employee_id, e.last_name, e.department_id,
  27. d.department_id, d.location_id
  28. FROM
  29. employees e JOIN departments d
  30. ON
  31. (e.department_id = d.department_id)
  32. AND
  33. e.manager_id = 149 ;


  34. select   worker.last_name||' works for '||manager.last_name
  35.   from employees worker, employees manager
  36.    where worker.manager_id=manager.employee_id;
  37.    
  38.    
  39.    select * from user_ind_columns   uic where uic.TABLE_NAME='EMPLOYEES';
  40.    
  41.    create index isalary on employees(salary)  compute statistics;
  42.    
  43.    create index isalaryl  on job_grades( lowest_sal)  compute statistics;
  44.    
  45.    create index isalaryh on job_grades(highest_sal) compute statistics;

  46. select   worker.last_name||' works for '||manager.last_name
  47.   from employees worker, employees manager
  48.    where worker.manager_id=manager.employee_id(+);
  49.   
  50.   
  51.   
  52.   select   worker.last_name||' works for '||manager.last_name
  53.   from employees worker   left   outer join employees manager
  54.   on    worker.manager_id=manager.employee_id;
  55.   
  56.     select   worker.last_name||' works for '||manager.last_name
  57.   from employees manager   right   outer join employees worker
  58.   on    worker.manager_id=manager.employee_id;
  59.   
  60.   
  61.   
  62.   select  * from departments;
  63.   
  64.   
  65.   
  66.   
  67.   
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Bo's Oracle Station   

GMT+8, 2024-12-4 16:27 , Processed in 0.038117 second(s), 25 queries .

快速回复 返回顶部 返回列表