Insert Delete Update Oracle PLSQL

SQL>
SQL>
SQL> create table table_a( id number );
Table created.
SQL> insert into table_a
  2  select rownum from all_tables where rownum < 7;
6 rows created.
SQL>
SQL> select * from table_a;
        ID
----------
         1
         2
         3
         4
         5
         6
6 rows selected.
SQL> create table table_b(
  2    id number,
  3    status varchar2(255) );
Table created.
SQL>
SQL>  insert into table_b values( 1, 'NEW' );
1 row created.
SQL>  insert into table_b values( 3, 'NEW' );
1 row created.
SQL>  insert into table_b values( 5, 'NEW' );
1 row created.
SQL>  select * from table_b;
        ID STATUS
---------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
         1 NEW
         3 NEW
         5 NEW
SQL>  merge into table_b b using ( select * from table_a ) a
  2   on ( a.id = b.id )
  3   when matched then update set status = 'OLD'
  4   when not matched then insert values ( a.id, 'NEW' );
6 rows merged.
SQL>
SQL> select * from table_b;
        ID STATUS
---------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
         1 OLD
         3 OLD
         5 OLD
         6 NEW
         4 NEW
         2 NEW
6 rows selected.
SQL>
SQL> drop table table_a;
Table dropped.
SQL> drop table table_b;
Table dropped.