<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FTable_Joins%2FLeft_Outer_Join</id>
		<title>Oracle PL/SQL/Table Joins/Left Outer Join - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FTable_Joins%2FLeft_Outer_Join"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/Table_Joins/Left_Outer_Join&amp;action=history"/>
		<updated>2026-05-14T14:45:22Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/Table_Joins/Left_Outer_Join&amp;diff=976&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/Table_Joins/Left_Outer_Join&amp;diff=976&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:45, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/Table_Joins/Left_Outer_Join&amp;diff=977&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/Table_Joins/Left_Outer_Join&amp;diff=977&amp;oldid=prev"/>
				<updated>2010-05-26T09:54:30Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==A left outer join:the outer join operator appears on the right of the equality operator==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; -- create demo table&lt;br /&gt;
SQL&amp;gt; create table Employee(&lt;br /&gt;
  2    empno              Number(3)  NOT NULL, -- Employee ID&lt;br /&gt;
  3    ename              VARCHAR2(10 BYTE),   -- Employee Name&lt;br /&gt;
  4    hireDate          DATE,                -- Date Employee Hired&lt;br /&gt;
  5    orig_salary        Number(8,2),         -- Orignal Salary&lt;br /&gt;
  6    curr_salary        Number(8,2),         -- Current Salary&lt;br /&gt;
  7    region             VARCHAR2(1 BYTE)     -- Region where employeed&lt;br /&gt;
  8  )&lt;br /&gt;
  9  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table job(&lt;br /&gt;
  2    empno              Number(3)  NOT NULL, -- Employee ID&lt;br /&gt;
  3    jobtitle           VARCHAR2(10 BYTE)    -- Employee job title&lt;br /&gt;
  4  )&lt;br /&gt;
  5  /&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; -- prepare data for employee table&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(122,&amp;quot;Alison&amp;quot;,to_date(&amp;quot;19960321&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 45000,       48000,       &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(123, &amp;quot;James&amp;quot;,to_date(&amp;quot;19781212&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 23000,       32000,       &amp;quot;W&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(104,&amp;quot;Celia&amp;quot;,to_date(&amp;quot;19821024&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 53000,       58000,        &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(105,&amp;quot;Robert&amp;quot;,to_date(&amp;quot;19840115&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 31000,      36000,        &amp;quot;W&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(116,&amp;quot;Linda&amp;quot;, to_date(&amp;quot;19870730&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 43000,       53000,       &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(117,&amp;quot;David&amp;quot;, to_date(&amp;quot;19901231&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 78000,       85000,       &amp;quot;W&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into Employee(empno,  ename,  hireDate,                       orig_salary, curr_salary, region)&lt;br /&gt;
  2                values(108,&amp;quot;Jode&amp;quot;,  to_date(&amp;quot;19960917&amp;quot;,&amp;quot;YYYYMMDD&amp;quot;), 21000,       29000,       &amp;quot;E&amp;quot;)&lt;br /&gt;
  3  /&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- prepare data for job table&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into job(empno, jobtitle)&lt;br /&gt;
  2           values(101,   &amp;quot;Painter&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into job(empno, jobtitle)&lt;br /&gt;
  2           values(122,   &amp;quot;Tester&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into job(empno, jobtitle)&lt;br /&gt;
  2           values(123,   &amp;quot;Dediator&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into job(empno, jobtitle)&lt;br /&gt;
  2           values(104,   &amp;quot;Chemist&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into job(empno, jobtitle)&lt;br /&gt;
  2           values(105,   &amp;quot;Accountant&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into job(empno, jobtitle)&lt;br /&gt;
  2           values(116,   &amp;quot;Manager&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into job(empno, jobtitle)&lt;br /&gt;
  2           values(117,   &amp;quot;Programmer&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into job(empno, jobtitle)&lt;br /&gt;
  2           values(108,   &amp;quot;Developer&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- display data in the table&lt;br /&gt;
SQL&amp;gt; select * from Employee&lt;br /&gt;
  2  /&lt;br /&gt;
     EMPNO ENAME      HIREDATE  ORIG_SALARY CURR_SALARY R&lt;br /&gt;
---------- ---------- --------- ----------- ----------- -&lt;br /&gt;
       122 Alison     21-MAR-96       45000       48000 E&lt;br /&gt;
       123 James      12-DEC-78       23000       32000 W&lt;br /&gt;
       104 Celia      24-OCT-82       53000       58000 E&lt;br /&gt;
       105 Robert     15-JAN-84       31000       36000 W&lt;br /&gt;
       116 Linda      30-JUL-87       43000       53000 E&lt;br /&gt;
       117 David      31-DEC-90       78000       85000 W&lt;br /&gt;
       108 Jode       17-SEP-96       21000       29000 E&lt;br /&gt;
7 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from job;&lt;br /&gt;
     EMPNO JOBTITLE&lt;br /&gt;
---------- ----------&lt;br /&gt;
       101 Painter&lt;br /&gt;
       122 Tester&lt;br /&gt;
       123 Dediator&lt;br /&gt;
       104 Chemist&lt;br /&gt;
       105 Accountant&lt;br /&gt;
       116 Manager&lt;br /&gt;
       117 Programmer&lt;br /&gt;
       108 Developer&lt;br /&gt;
8 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- A left outer join:the outer join operator appears on the right of the equality operator:&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT e.ename, j.jobtitle&lt;br /&gt;
  2  FROM employee e, job j&lt;br /&gt;
  3  WHERE e.empno  = j.empno(+) ;&lt;br /&gt;
ENAME      JOBTITLE&lt;br /&gt;
---------- ----------&lt;br /&gt;
Alison     Tester&lt;br /&gt;
James      Dediator&lt;br /&gt;
Celia      Chemist&lt;br /&gt;
Robert     Accountant&lt;br /&gt;
Linda      Manager&lt;br /&gt;
David      Programmer&lt;br /&gt;
Jode       Developer&lt;br /&gt;
7 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table job;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- clean the table&lt;br /&gt;
SQL&amp;gt; drop table Employee&lt;br /&gt;
  2  /&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Left join with plus sign==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table emp&lt;br /&gt;
  2  ( empno      NUMBER(4)    constraint E_PK primary key&lt;br /&gt;
  3  , ename      VARCHAR2(8)&lt;br /&gt;
  4  , init       VARCHAR2(5)&lt;br /&gt;
  5  , job        VARCHAR2(8)&lt;br /&gt;
  6  , mgr        NUMBER(4)&lt;br /&gt;
  7  , bdate      DATE&lt;br /&gt;
  8  , sal        NUMBER(6,2)&lt;br /&gt;
  9  , comm       NUMBER(6,2)&lt;br /&gt;
 10  , deptno     NUMBER(2)    default 10&lt;br /&gt;
 11  ) ;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(1,&amp;quot;Tom&amp;quot;,&amp;quot;N&amp;quot;,   &amp;quot;Coder&amp;quot;, 13,date &amp;quot;1965-12-17&amp;quot;,  800 , NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(2,&amp;quot;Jack&amp;quot;,&amp;quot;JAM&amp;quot;, &amp;quot;Tester&amp;quot;,6,date &amp;quot;1961-02-20&amp;quot;,  1600, 300,   30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(3,&amp;quot;Wil&amp;quot;,&amp;quot;TF&amp;quot; ,  &amp;quot;Tester&amp;quot;,6,date &amp;quot;1962-02-22&amp;quot;,  1250, 500,   30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(4,&amp;quot;Jane&amp;quot;,&amp;quot;JM&amp;quot;,  &amp;quot;Designer&amp;quot;, 9,date &amp;quot;1967-04-02&amp;quot;,  2975, NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(5,&amp;quot;Mary&amp;quot;,&amp;quot;P&amp;quot;,  &amp;quot;Tester&amp;quot;,6,date &amp;quot;1956-09-28&amp;quot;,  1250, 1400,  30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(6,&amp;quot;Black&amp;quot;,&amp;quot;R&amp;quot;,   &amp;quot;Designer&amp;quot;, 9,date &amp;quot;1963-11-01&amp;quot;,  2850, NULL,  30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(7,&amp;quot;Chris&amp;quot;,&amp;quot;AB&amp;quot;,  &amp;quot;Designer&amp;quot;, 9,date &amp;quot;1965-06-09&amp;quot;,  2450, NULL,  10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(8,&amp;quot;Smart&amp;quot;,&amp;quot;SCJ&amp;quot;, &amp;quot;Coder&amp;quot;, 4,date &amp;quot;1959-11-26&amp;quot;,  3000, NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(9,&amp;quot;Peter&amp;quot;,&amp;quot;CC&amp;quot;,   &amp;quot;Designer&amp;quot;,NULL,date &amp;quot;1952-11-17&amp;quot;,  5000, NULL,  10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(10,&amp;quot;Take&amp;quot;,&amp;quot;JJ&amp;quot;, &amp;quot;Tester&amp;quot;,6,date &amp;quot;1968-09-28&amp;quot;,  1500, 0,     30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(11,&amp;quot;Ana&amp;quot;,&amp;quot;AA&amp;quot;,  &amp;quot;Coder&amp;quot;, 8,date &amp;quot;1966-12-30&amp;quot;,  1100, NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(12,&amp;quot;Jane&amp;quot;,&amp;quot;R&amp;quot;,   &amp;quot;Manager&amp;quot;,   6,date &amp;quot;1969-12-03&amp;quot;,  800 , NULL,  30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(13,&amp;quot;Fake&amp;quot;,&amp;quot;MG&amp;quot;,   &amp;quot;Coder&amp;quot;, 4,date &amp;quot;1959-02-13&amp;quot;,  3000, NULL,  20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into emp values(14,&amp;quot;Mike&amp;quot;,&amp;quot;TJA&amp;quot;,&amp;quot;Manager&amp;quot;,   7,date &amp;quot;1962-01-23&amp;quot;,  1300, NULL,  10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table departments&lt;br /&gt;
  2  ( deptno NUMBER(2)     constraint D_PK primary key&lt;br /&gt;
  3  , dname  VARCHAR2(10)&lt;br /&gt;
  4  , location VARCHAR2(8)&lt;br /&gt;
  5  , mgr    NUMBER(4)&lt;br /&gt;
  6  ) ;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into departments values (10,&amp;quot;ACCOUNTING&amp;quot;,&amp;quot;NEW YORK&amp;quot;,7);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into departments values (20,&amp;quot;TRAINING&amp;quot;,  &amp;quot;DALLAS&amp;quot;,  4);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into departments values (30,&amp;quot;SALES&amp;quot;,     &amp;quot;CHICAGO&amp;quot;, 6);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into departments values (40,&amp;quot;HR&amp;quot;,        &amp;quot;BOSTON&amp;quot;,  9);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select d.deptno, d.location&lt;br /&gt;
  2  ,      e.ename, e.init&lt;br /&gt;
  3  from   emp e, departments d&lt;br /&gt;
  4  where  e.deptno(+) = d.deptno&lt;br /&gt;
  5  order  by d.deptno, e.ename;&lt;br /&gt;
    DEPTNO LOCATION ENAME    INIT&lt;br /&gt;
---------- -------- -------- -----&lt;br /&gt;
        10 NEW YORK Chris    AB&lt;br /&gt;
        10 NEW YORK Mike     TJA&lt;br /&gt;
        10 NEW YORK Peter    CC&lt;br /&gt;
        20 DALLAS   Ana      AA&lt;br /&gt;
        20 DALLAS   Fake     MG&lt;br /&gt;
        20 DALLAS   Jane     JM&lt;br /&gt;
        20 DALLAS   Smart    SCJ&lt;br /&gt;
        20 DALLAS   Tom      N&lt;br /&gt;
        30 CHICAGO  Black    R&lt;br /&gt;
        30 CHICAGO  Jack     JAM&lt;br /&gt;
        30 CHICAGO  Jane     R&lt;br /&gt;
        30 CHICAGO  Mary     P&lt;br /&gt;
        30 CHICAGO  Take     JJ&lt;br /&gt;
        30 CHICAGO  Wil      TF&lt;br /&gt;
        40 BOSTON&lt;br /&gt;
15 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table emp;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table departments;&lt;br /&gt;
Table dropped.&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==left outer join between employee table and department table==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE departments&lt;br /&gt;
  2  (department_id           number(10)            not null,&lt;br /&gt;
  3   department_name      varchar2(50)      not null,&lt;br /&gt;
  4   CONSTRAINT departments_pk PRIMARY KEY (department_id)&lt;br /&gt;
  5  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into departments ( department_id, department_name )&lt;br /&gt;
  2                    values( 1,             &amp;quot;Data Group&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into departments ( department_id, department_name )&lt;br /&gt;
  2                    values( 2,             &amp;quot;Purchasing&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into departments ( department_id, department_name )&lt;br /&gt;
  2                    values( 3,             &amp;quot;Call Center&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into departments ( department_id, department_name )&lt;br /&gt;
  2                    values( 4,             &amp;quot;Communication&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE employees&lt;br /&gt;
  2  ( employee_id          number(10)      not null,&lt;br /&gt;
  3    last_name            varchar2(50)      not null,&lt;br /&gt;
  4    email                varchar2(30),&lt;br /&gt;
  5    hire_date            date,&lt;br /&gt;
  6    job_id               varchar2(30),&lt;br /&gt;
  7    department_id        number(10),&lt;br /&gt;
  8    salary               number(6),&lt;br /&gt;
  9    manager_id           number(6),&lt;br /&gt;
 10    CONSTRAINT           employees_pk PRIMARY KEY (employee_id),&lt;br /&gt;
 11    CONSTRAINT           fk_departments FOREIGN KEY (department_id) REFERENCES departments(department_id)&lt;br /&gt;
 12  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employees( employee_id, last_name, email, hire_date, job_id, salary,department_id ,manager_id)&lt;br /&gt;
  2                values ( 1001, &amp;quot;Lawson&amp;quot;, &amp;quot;lawson@g.ru&amp;quot;, &amp;quot;01-JAN-2002&amp;quot;,&amp;quot;MGR&amp;quot;, 30000,1 ,1004);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employees( employee_id, last_name, email, hire_date, job_id, salary, department_id ,manager_id)&lt;br /&gt;
  2                values ( 1002, &amp;quot;Wells&amp;quot;, &amp;quot;wells@g.ru&amp;quot;, &amp;quot;01-JAN-2002&amp;quot;, &amp;quot;DBA&amp;quot;, 20000,2, 1005 );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employees( employee_id, last_name, email, hire_date, job_id, salary, department_id ,manager_id)&lt;br /&gt;
  2                 values( 1003, &amp;quot;Bliss&amp;quot;, &amp;quot;bliss@g.ru&amp;quot;, &amp;quot;01-JAN-2002&amp;quot;, &amp;quot;PROG&amp;quot;, 24000,3 ,1004);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employees( employee_id, last_name, email, hire_date, job_id, salary, department_id, manager_id)&lt;br /&gt;
  2                 values( 1004,  &amp;quot;Kyte&amp;quot;, &amp;quot;tkyte@a.ru&amp;quot;, SYSDATE-3650, &amp;quot;MGR&amp;quot;,25000 ,4, 1005);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employees( employee_id, last_name, email, hire_date, job_id, salary, department_id, manager_id)&lt;br /&gt;
  2                 values( 1005, &amp;quot;Viper&amp;quot;, &amp;quot;sdillon@a .ru&amp;quot;, SYSDATE, &amp;quot;PROG&amp;quot;, 20000, 1, 1006);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employees( employee_id, last_name, email, hire_date, job_id, salary, department_id,manager_id)&lt;br /&gt;
  2                 values( 1006, &amp;quot;Beck&amp;quot;, &amp;quot;clbeck@g.ru&amp;quot;, SYSDATE, &amp;quot;PROG&amp;quot;, 20000, 2, null);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employees( employee_id, last_name, email, hire_date, job_id, salary, department_id, manager_id)&lt;br /&gt;
  2                 values( 1007, &amp;quot;Java&amp;quot;, &amp;quot;java01@g.ru&amp;quot;, SYSDATE, &amp;quot;PROG&amp;quot;, 20000, 3, 1006);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employees( employee_id, last_name, email, hire_date, job_id, salary, department_id, manager_id)&lt;br /&gt;
  2                 values( 1008, &amp;quot;Oracle&amp;quot;, &amp;quot;wvelasq@g.ru&amp;quot;, SYSDATE, &amp;quot;DBA&amp;quot;, 20000, 4, 1006);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from employees;&lt;br /&gt;
EMPLOYEE_ID LAST_NAME                                          EMAIL                          HIRE_DATE JOB_ID                         DEPARTMENT_ID     SALARY MANAGER_ID&lt;br /&gt;
----------- -------------------------------------------------- ------------------------------ --------- ------------------------------ ------------- ---------- ----------&lt;br /&gt;
       1001 Lawson                                             lawson@g.ru                   01-JAN-02 MGR                                        1      30000       1004&lt;br /&gt;
       1002 Wells                                              wells@g.ru                    01-JAN-02 DBA                                        2      20000       1005&lt;br /&gt;
       1003 Bliss                                              bliss@g.ru                    01-JAN-02 PROG                                       3      24000       1004&lt;br /&gt;
       1004 Kyte                                               tkyte@a.ru                    13-JUN-98 MGR                                        4      25000       1005&lt;br /&gt;
       1005 Viper                                              sdillon@a .ru                 10-JUN-08 PROG                                       1      20000       1006&lt;br /&gt;
       1006 Beck                                               clbeck@g.ru                   10-JUN-08 PROG                                       2      20000&lt;br /&gt;
       1007 Java                                               java01@g.ru                   10-JUN-08 PROG                                       3      20000       1006&lt;br /&gt;
EMPLOYEE_ID LAST_NAME                                          EMAIL                          HIRE_DATE JOB_ID                         DEPARTMENT_ID     SALARY MANAGER_ID&lt;br /&gt;
----------- -------------------------------------------------- ------------------------------ --------- ------------------------------ ------------- ---------- ----------&lt;br /&gt;
       1008 Oracle                                             wvelasq@g.ru                  10-JUN-08 DBA                                        4      20000       1006&lt;br /&gt;
8 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from departments;&lt;br /&gt;
DEPARTMENT_ID DEPARTMENT_NA&lt;br /&gt;
------------- -------------&lt;br /&gt;
            1 Data Group&lt;br /&gt;
            2 Purchasing&lt;br /&gt;
            3 Call Center&lt;br /&gt;
            4 Communication&lt;br /&gt;
4 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select e.employee_id, e.last_name, d.department_name&lt;br /&gt;
  2        from employees e left outer join departments d&lt;br /&gt;
  3          on e.department_id = d.department_id&lt;br /&gt;
  4       where e.job_id = &amp;quot;MGR&amp;quot;&lt;br /&gt;
  5      /&lt;br /&gt;
EMPLOYEE_ID LAST_NAME                                          DEPARTMENT_NA&lt;br /&gt;
----------- -------------------------------------------------- -------------&lt;br /&gt;
       1001 Lawson                                             Data Group&lt;br /&gt;
       1004 Kyte                                               Communication&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table employees cascade constraints;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table departments cascade constraints;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Left outer join demo==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
SQL&amp;gt; CREATE TABLE EMP (EMPNO NUMBER(4) NOT NULL,&lt;br /&gt;
  2                    ENAME VARCHAR2(10),&lt;br /&gt;
  3                    JOB VARCHAR2(9),&lt;br /&gt;
  4                    MGR NUMBER(4),&lt;br /&gt;
  5                    HIREDATE DATE,&lt;br /&gt;
  6                    SAL NUMBER(7, 2),&lt;br /&gt;
  7                    COMM NUMBER(7, 2),&lt;br /&gt;
  8                    DEPTNO NUMBER(2));&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7369, &amp;quot;SMITH&amp;quot;, &amp;quot;CLERK&amp;quot;,    7902, TO_DATE(&amp;quot;17-DEC-1980&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 800, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7499, &amp;quot;ALLEN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;20-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1600, 300, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7521, &amp;quot;WARD&amp;quot;,  &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;22-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 500, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7566, &amp;quot;JONES&amp;quot;, &amp;quot;MANAGER&amp;quot;,  7839, TO_DATE(&amp;quot;2-APR-1981&amp;quot;,  &amp;quot;DD-MON-YYYY&amp;quot;), 2975, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7654, &amp;quot;MARTIN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;28-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 1400, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7698, &amp;quot;BLAKE&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;1-MAY-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2850, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7782, &amp;quot;CLARK&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;9-JUN-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2450, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7788, &amp;quot;SCOTT&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;09-DEC-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7839, &amp;quot;KING&amp;quot;, &amp;quot;PRESIDENT&amp;quot;, NULL,TO_DATE(&amp;quot;17-NOV-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 5000, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7844, &amp;quot;TURNER&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;8-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1500, 0, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7876, &amp;quot;ADAMS&amp;quot;, &amp;quot;CLERK&amp;quot;, 7788,TO_DATE(&amp;quot;12-JAN-1983&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1100, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7900, &amp;quot;JAMES&amp;quot;, &amp;quot;CLERK&amp;quot;, 7698,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 950, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7902, &amp;quot;FORD&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7934, &amp;quot;MILLER&amp;quot;, &amp;quot;CLERK&amp;quot;, 7782,TO_DATE(&amp;quot;23-JAN-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1300, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE DEPT (DEPTNO NUMBER(2),DNAME VARCHAR2(14),LOC VARCHAR2(13) );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO DEPT VALUES (10, &amp;quot;ACCOUNTING&amp;quot;, &amp;quot;NEW YORK&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO DEPT VALUES (20, &amp;quot;RESEARCH&amp;quot;, &amp;quot;DALLAS&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO DEPT VALUES (30, &amp;quot;SALES&amp;quot;, &amp;quot;CHICAGO&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO DEPT VALUES (40, &amp;quot;OPERATIONS&amp;quot;, &amp;quot;BOSTON&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from emp;&lt;br /&gt;
     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO&lt;br /&gt;
---------- ---------- --------- ---------- --------- ---------- ---------- ----------&lt;br /&gt;
      7369 SMITH      CLERK           7902 17-DEC-80        800                    20&lt;br /&gt;
      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30&lt;br /&gt;
      7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30&lt;br /&gt;
      7566 JONES      MANAGER         7839 02-APR-81       2975                    20&lt;br /&gt;
      7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30&lt;br /&gt;
      7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30&lt;br /&gt;
      7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10&lt;br /&gt;
      7788 SCOTT      ANALYST         7566 09-DEC-82       3000                    20&lt;br /&gt;
      7839 KING       PRESIDENT            17-NOV-81       5000                    10&lt;br /&gt;
      7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30&lt;br /&gt;
      7876 ADAMS      CLERK           7788 12-JAN-83       1100                    20&lt;br /&gt;
      7900 JAMES      CLERK           7698 03-DEC-81        950                    30&lt;br /&gt;
      7902 FORD       ANALYST         7566 03-DEC-81       3000                    20&lt;br /&gt;
      7934 MILLER     CLERK           7782 23-JAN-82       1300                    10&lt;br /&gt;
14 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from dept;&lt;br /&gt;
    DEPTNO DNAME          LOC&lt;br /&gt;
---------- -------------- -------------&lt;br /&gt;
        10 ACCOUNTING     NEW YORK&lt;br /&gt;
        20 RESEARCH       DALLAS&lt;br /&gt;
        30 SALES          CHICAGO&lt;br /&gt;
        40 OPERATIONS     BOSTON&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select e1.ename &amp;quot;Employee&amp;quot;,&lt;br /&gt;
  2             e2.ename &amp;quot;Reports To&amp;quot;&lt;br /&gt;
  3        from emp e1 left outer join emp e2&lt;br /&gt;
  4          on e1.MGR = e2.empno&lt;br /&gt;
  5       order by e1.empno;&lt;br /&gt;
Employee   Reports To&lt;br /&gt;
---------- ----------&lt;br /&gt;
SMITH      FORD&lt;br /&gt;
ALLEN      BLAKE&lt;br /&gt;
WARD       BLAKE&lt;br /&gt;
JONES      KING&lt;br /&gt;
MARTIN     BLAKE&lt;br /&gt;
BLAKE      KING&lt;br /&gt;
CLARK      KING&lt;br /&gt;
SCOTT      JONES&lt;br /&gt;
KING&lt;br /&gt;
TURNER     BLAKE&lt;br /&gt;
ADAMS      SCOTT&lt;br /&gt;
JAMES      BLAKE&lt;br /&gt;
FORD       JONES&lt;br /&gt;
MILLER     CLARK&lt;br /&gt;
14 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table dept;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table emp;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==LEFT OUTER JOIN tableName ON joined columns==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE emps (&lt;br /&gt;
  2    emp varchar(30)&lt;br /&gt;
  3   ,title    varchar(30)&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO emps VALUES (&amp;quot;Tom&amp;quot;,&amp;quot;Programmer&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emps VALUES (&amp;quot;Jack&amp;quot;,&amp;quot;Tester&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO emps VALUES (&amp;quot;Mary&amp;quot;,&amp;quot;Technician&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE JobLevel (&lt;br /&gt;
  2    title     varchar(30)&lt;br /&gt;
  3   ,rank    varchar(30)&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO JobLevel VALUES (&amp;quot;Programmer&amp;quot;,&amp;quot;Level1&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO JobLevel VALUES (&amp;quot;Tester&amp;quot;,&amp;quot;Level2&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO JobLevel VALUES (&amp;quot;Technician&amp;quot;,&amp;quot;Level3&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE salary (&lt;br /&gt;
  2    rank     varchar(30)&lt;br /&gt;
  3   ,payment  DECIMAL(10,2)&lt;br /&gt;
  4  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO salary VALUES (&amp;quot;Level1&amp;quot;,2000.00);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO salary VALUES (&amp;quot;Level2&amp;quot;,3000.00);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO salary VALUES (&amp;quot;Level3&amp;quot;,5000.00);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO salary VALUES (&amp;quot;Level4&amp;quot;,6000.00);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select * from emps;&lt;br /&gt;
&lt;br /&gt;
EMP&lt;br /&gt;
------------------------------&lt;br /&gt;
TITLE&lt;br /&gt;
------------------------------&lt;br /&gt;
Tom&lt;br /&gt;
Programmer&lt;br /&gt;
Jack&lt;br /&gt;
Tester&lt;br /&gt;
Mary&lt;br /&gt;
Technician&lt;br /&gt;
&lt;br /&gt;
3 rows selected.&lt;br /&gt;
SQL&amp;gt; select * from JobLevel;&lt;br /&gt;
&lt;br /&gt;
TITLE&lt;br /&gt;
------------------------------&lt;br /&gt;
RANK&lt;br /&gt;
------------------------------&lt;br /&gt;
Programmer&lt;br /&gt;
Level1&lt;br /&gt;
Tester&lt;br /&gt;
Level2&lt;br /&gt;
Technician&lt;br /&gt;
Level3&lt;br /&gt;
3 rows selected.&lt;br /&gt;
SQL&amp;gt; select * from salary;&lt;br /&gt;
&lt;br /&gt;
RANK                               PAYMENT&lt;br /&gt;
------------------------------  ----------&lt;br /&gt;
Level1                                2000&lt;br /&gt;
Level2                                3000&lt;br /&gt;
Level3                                5000&lt;br /&gt;
Level4                                6000&lt;br /&gt;
4 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT salary.rank&lt;br /&gt;
  2  FROM salary LEFT OUTER JOIN JobLevel ON (salary.rank = JobLevel.rank)&lt;br /&gt;
  3  WHERE JobLevel.rank IS NULL;&lt;br /&gt;
&lt;br /&gt;
RANK&lt;br /&gt;
------------------------------&lt;br /&gt;
Level4&lt;br /&gt;
&lt;br /&gt;
1 row selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DROP TABLE emps;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; DROP TABLE JobLevel;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; DROP TABLE salary;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==LEFT OUTER JOIN vs RIGHT OUTER JOIN==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE project (&lt;br /&gt;
  2    pro_id              NUMBER(4),&lt;br /&gt;
  3    pro_name            VARCHAR2(40),&lt;br /&gt;
  4    budget          NUMBER(9,2),&lt;br /&gt;
  5    CONSTRAINT project_pk   PRIMARY KEY (pro_id)&lt;br /&gt;
  6  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO project(pro_id, pro_name, budget)VALUES (1001, &amp;quot;A&amp;quot;,12345);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO project(pro_id, pro_name, budget)VALUES (1002, &amp;quot;ERP&amp;quot;,23456);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO project(pro_id, pro_name, budget)VALUES (1003, &amp;quot;SQL&amp;quot;,34567);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO project(pro_id, pro_name, budget)VALUES (1004, &amp;quot;CRM&amp;quot;,45678);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO project(pro_id, pro_name, budget)VALUES (1005, &amp;quot;VPN&amp;quot;,56789);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE server_usage (&lt;br /&gt;
  2    pro_id                   NUMBER(4),&lt;br /&gt;
  3    emp_id                  NUMBER,&lt;br /&gt;
  4    time_log_date                DATE,&lt;br /&gt;
  5    hours_logged                 NUMBER(8,2),&lt;br /&gt;
  6    dollars_charged              NUMBER(8,2),&lt;br /&gt;
  7    CONSTRAINT server_usage_pk  PRIMARY KEY (pro_id, emp_id, time_log_date)&lt;br /&gt;
  8  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)&lt;br /&gt;
  2                    VALUES (1001,101,to_date(&amp;quot;4-Apr-2004&amp;quot;,&amp;quot;dd-mon-yyyy&amp;quot;),1123,222);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)&lt;br /&gt;
  2                    VALUES (1002,102,to_date(&amp;quot;4-Apr-2005&amp;quot;,&amp;quot;dd-mon-yyyy&amp;quot;),1124,223);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)&lt;br /&gt;
  2                    VALUES (1003,103,to_date(&amp;quot;4-Apr-2006&amp;quot;,&amp;quot;dd-mon-yyyy&amp;quot;),1125,224);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)&lt;br /&gt;
  2                    VALUES (1004,104,to_date(&amp;quot;4-Apr-2007&amp;quot;,&amp;quot;dd-mon-yyyy&amp;quot;),1126,225);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)&lt;br /&gt;
  2                    VALUES (1005,105,to_date(&amp;quot;4-Apr-2008&amp;quot;,&amp;quot;dd-mon-yyyy&amp;quot;),1127,226);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)&lt;br /&gt;
  2                    VALUES (1001,106,to_date(&amp;quot;4-Apr-2009&amp;quot;,&amp;quot;dd-mon-yyyy&amp;quot;),1128,227);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO server_usage(pro_id, emp_id, time_log_date, hours_logged, dollars_charged)&lt;br /&gt;
  2                    VALUES (1002,107,to_date(&amp;quot;4-Apr-2010&amp;quot;,&amp;quot;dd-mon-yyyy&amp;quot;),1129,228);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SET ECHO ON&lt;br /&gt;
SQL&amp;gt; SELECT p.pro_name,  ph.time_log_date, ph.hours_logged&lt;br /&gt;
  2  FROM project p LEFT OUTER JOIN server_usage ph&lt;br /&gt;
  3       ON p.pro_id = ph.pro_id;&lt;br /&gt;
A&lt;br /&gt;
04-APR-04         1123&lt;br /&gt;
ERP&lt;br /&gt;
04-APR-05         1124&lt;br /&gt;
SQL&lt;br /&gt;
04-APR-06         1125&lt;br /&gt;
CRM&lt;br /&gt;
04-APR-07         1126&lt;br /&gt;
VPN&lt;br /&gt;
04-APR-08         1127&lt;br /&gt;
A&lt;br /&gt;
04-APR-09         1128&lt;br /&gt;
ERP&lt;br /&gt;
04-APR-10         1129&lt;br /&gt;
&lt;br /&gt;
7 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; SELECT p.pro_name,  ph.time_log_date, ph.hours_logged&lt;br /&gt;
  2  FROM server_usage ph RIGHT OUTER JOIN project p&lt;br /&gt;
  3       ON p.pro_id = ph.pro_id;&lt;br /&gt;
A&lt;br /&gt;
04-APR-04         1123&lt;br /&gt;
ERP&lt;br /&gt;
04-APR-05         1124&lt;br /&gt;
SQL&lt;br /&gt;
04-APR-06         1125&lt;br /&gt;
CRM&lt;br /&gt;
04-APR-07         1126&lt;br /&gt;
VPN&lt;br /&gt;
04-APR-08         1127&lt;br /&gt;
A&lt;br /&gt;
04-APR-09         1128&lt;br /&gt;
ERP&lt;br /&gt;
04-APR-10         1129&lt;br /&gt;
&lt;br /&gt;
7 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table server_usage;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table project;&lt;br /&gt;
Table dropped.&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>