Kamis, 03 Mei 2018

DML Statements dan Transactions

INSERT statement


Anda perlu mengetahui isi dari tabel yang diisi dengan menggunakan describe


Percobaan dengan insert full information



Anda juga dapat melakukan insert dengan tidak semua column di inisialisasi jika column tersebut memperbolehkan null

UPDATE Statement

Anda dapat melakukan seperti dibawah ini

SQL> update employees
  2  set salary  = 8500
  3  where last_name='Keats';

1 row updated.

Anda juga dapat melakukan update dari multiple row

SQL> UPDATE EMPLOYEES
  2  SET COMMISSION_PCT = COMMISSION_PCT + 0.05
  3  WHERE DEPARTMENT_ID=80;

35 rows updated.

DELETE Statement

Anda dapat melakukan delete seperti statement dibawah ini

SQL> delete from employees
  2  where hire_date= to_date('01-JAN-07','dd-mon-yy');

1 row deleted.

Transaction Control Statements

Terdapat 3 istilah penting disini yaitu
Savepoint, titik dimana kita bisa melakukan rollback. 1 transaksi bisa memiliki beberapa savepoint
Commit, dimana transaksi selesai dan disimpan permanent juga menghapus savepoint
Rollback, dimana kita kembali ke transaksi awal, atau didefiniskan savepoint

Committing Transactions

Pertama mari kita ikut cara dibawah ini, bukalah table regions



Lalu lakukan insert statement di table regions

SQL> insert into regions (region_id, region_name) values (5,'Africa');

1 row created.
Cek kembali perubahannya, jika afrika sudah masuk lalu commit

SQL> commit;

Commit complete.

Rolling Back Transactions

Pertama kita cek terlebih dahulu table regions



Selanjutnya lakukan update terhadap colom ke 4

SQL> update regions
  2  set region_name = 'Middle East'
  3  where region_name = 'Middle East and Africa';

1 row updated.

Lalu cek kembali table regions



Setelah itu lakukan rollback

SQL> rollback;

Rollback complete.
Cek tabel kembali, dan anda akan menemukan table kembali seperti semula



Setting Savepoints di Transactions

Anda dapat mengatur savepoint dengan cara sebagai berikut

Pertama, cek dahulu table countries dengan regions 4



Selanjutnya table countries dengan regions 5

SQL> select country_name, country_id, region_id
  2  from countries
  3  where region_id = 5
  4  order by country_name;

no rows selected

Lalu kita masukkan perubahan region_id di table countries dengan setiap perubahan diberikan savepoint

SQL> update countries
  2  set region_id=5
  3   where country_id='ZM';

1 row updated.

SQL> SAVEPOINT zambia;

Savepoint created.

SQL> update countries
  2  set region_id=5
  3  where country_id='NG';

1 row updated.

SQL> savepoint nigeria;

Savepoint created.

SQL> update countries
  2  set region_id=5
  3  where country_id='ZW';

1 row updated.

SQL> savepoint zimbabwe;

Savepoint created.

SQL> update countries
  2  set region_id=5
  3  where country_id='EG';

1 row updated.

SQL> savepoint egypt;

Savepoint created.

Lalu cek kembali table dari region 4 dan region 5



Lalu lakukan roll back

SQL> ROLLBACK to savepoint nigeria;

Rollback complete.

Cek kembali dari region 4 saja