Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Perintah TCL dalam SQL

Dalam Structured Query Language, TCL adalah singkatan dari Transaction Control Language. Satu unit kerja dalam database terbentuk setelah eksekusi perintah secara berurutan dikenal sebagai transaksi.

Ada beberapa perintah dalam Structured Query Language, dan perintah Transaction Control Language adalah salah satu perintah SQL. Perintah TCL menangani transaksi dalam database

Dalam Structured Query Language, Commit, Rollback, dan Savepoint adalah perintah Bahasa Kontrol Transaksi yang banyak digunakan di SQL.

Sekarang mari kita pahami dan pelajari cara kerja perintah Bahasa Kontrol Transaksi dalam bahasa Kueri Terstruktur dengan bantuan beberapa contoh. Perintah Bahasa Kontrol Transaksi adalah:

  1. Perintah COMMIT
  2. Perintah ROLLBACK
  3. Perintah SAVEPOINT

Perintah COMMIT

Perintah Komit dalam SQL digunakan untuk menyimpan semua transaksi yang berubah secara permanen ke disk. Setiap kali kita melakukan operasi pada perintah Data Definition Language (DDL) seperti perintah INSERT, perintah UPDATE, dan perintah DELETE, modifikasi apa pun yang dilakukan oleh perintah ini bersifat permanen tetapi sebelum menutup sesi saat ini atau hingga akhir sesi. Kami dapat dengan mudah membatalkan operasi yang kami lakukan menggunakan Bahasa Definisi Data sebelum sesi ditutup. Perintah komit digunakan untuk menyimpan modifikasi secara permanen ke penyimpanan tanpa sesi berakhir.

Sintaks:

COMMIT;

Jika Anda memiliki database yang sudah ada di sistem, gunakan database yang sudah ada atau buat database baru. Kami akan menggunakan database Perusahaan yang ada.

USE Company

Pertimbangkan tabel karyawan yang sudah ada yang memiliki data tertentu:

KARYAWAN FIRST_NAME LAST_NAME GAJI KOTA DEPARTEMEN MANAGERID
1001 VAIBHAVI MISHRA 65000 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60000 NOIDA ORACLE 1
1003 NIKHIL VANI 50.000 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50.000 MUMBAI UJI 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH BAIK 60500 MUMBAI UJI 4

Dalam SQL, kueri MULAI TRANSAKSI digunakan untuk memulai transaksi.

START TRANSACTION;           

Sekarang, kita akan memasukkan dua record ke dalam tabel Karyawan yang ada. Untuk menyisipkan beberapa record, kita akan menggunakan pernyataan di bawah ini:

INSERT INTO EMPLOYEES (EMPLOYEEID, FIRST_NAME, LAST_NAME, SALARY, CITY, DEPARTMENT, MANAGERID) VALUES (4002, 'ASHWINI', 'BAGHAT', 54500, 'JAIPUR', 'JAVA', 3), (4003, 'PURVA', 'DHANDEKAR', 57000, 'PUNE', 'TESTING', 4);

Kami sekarang akan menggunakan kueri SELECT untuk memverifikasi apakah catatan berhasil dimasukkan ke dalam tabel atau tidak.

SELECT * FROM EMPLOYEES;

Keluaran pada kueri di atas:

KARYAWAN FIRST_NAME LAST_NAME GAJI KOTA DEPARTEMEN MANAGERID
1001 VAIBHAVI MISHRA 65000 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60000 NOIDA ORACLE 1
1003 NIKHIL VANI 50.000 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50.000 MUMBAI UJI 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH BAIK 60500 MUMBAI UJI 4
4002 ASHWINI BAGHAT 54500 JAIPUR JAVA 3
4003 PURVA DHANDEKAR 57000 PUNE UJI 4

Outputnya menunjukkan semua record berhasil dimasukkan.

Untuk menyimpan operasi INSERT pada tabel Karyawan, kita akan menjalankan perintah COMMIT.

COMMIT;

Di SQL, secara default, komit otomatis aktif. Untuk menonaktifkan komit otomatis di SQL, setel nilai komit otomatis ke 0.

Kami akan memperbarui id karyawan 4002 dan menetapkan kota sebagai 'Noida. Gunakan kueri di bawah ini untuk memperbarui catatan karyawan.

UPDATE EMPLOYEES SET CITY = 'NOIDA' WHERE EMPLOYEEID = 4002;

Kami sekarang akan menggunakan kueri SELECT untuk memverifikasi apakah catatan berhasil diperbarui atau tidak dalam tabel.

SELECT * FROM EMPLOYEES;

Keluaran pada kueri di atas:

KARYAWAN FIRST_NAME LAST_NAME GAJI KOTA DEPARTEMEN MANAGERID
1001 VAIBHAVI MISHRA 65000 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60000 NOIDA ORACLE 1
1003 NIKHIL VANI 50.000 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50.000 MUMBAI UJI 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH BAIK 60500 MUMBAI UJI 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 PURVA DHANDEKAR 57000 PUNE UJI 4

Seperti yang bisa kita lihat di output, Employee Id 4002 city telah dimodifikasi.

Untuk menyimpan perubahan pada tabel karyawan, kita akan menulis perintah COMMIT.

COMMIT;

Sekarang, kami akan menghapus id karyawan 4003 dari tabel Karyawan. Gunakan kueri di bawah ini untuk menghapus catatan karyawan.

DELETE FROM EMPLOYEES WHERE EMPLOYEEID = 4003;

Kami sekarang akan menggunakan kueri SELECT untuk memverifikasi apakah catatan berhasil dihapus atau tidak dalam tabel.

SELECT * FROM EMPLOYEES;

Keluaran pada kueri di atas:

KARYAWAN FIRST_NAME LAST_NAME GAJI KOTA DEPARTEMEN MANAGERID
1001 VAIBHAVI MISHRA 65000 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60000 NOIDA ORACLE 1
1003 NIKHIL VANI 50.000 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50.000 MUMBAI UJI 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH BAIK 60500 MUMBAI UJI 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3

Output mengonfirmasi bahwa kami menghapus detail id karyawan 4003.

Untuk menyimpan perubahan pada tabel karyawan, kita akan menulis perintah COMMIT.

COMMIT;

Perintah SAVEPOINT

Operasi database yang dilakukan dapat dibagi menjadi dua bagian. Misalnya, pertimbangkan semua pernyataan hapus yang kami lakukan sebagai satu segmen transaksi dan pernyataan pembaruan sebagai satu segmen transaksi. Untuk menyimpan kueri sisipkan ke bagian sisipkan dan hapus kueri ke bagian hapus dari transaksi yang sama, kami menggunakan perintah SAVEPOINT di SQL. Misalkan kita ingin menyimpan semua kueri terkait penghapusan dengan savepoint bernama delete. Untuk menyimpan semua operasi terkait penghapusan dalam satu savepoint, kita harus melakukan perintah SAVEPOINT diikuti dengan nama savepoint setelah melakukan query delete.

Sintaks:

SAVEPOINT savepoint name; 

Perintah ROLLBACK

Saat melakukan transaksi, kami membangun savepoint untuk menyimpan berbagai segmen transaksi. Saat persyaratan Pengguna berubah, Pengguna dapat membatalkan transaksi ke savepoint yang berbeda. Pertimbangkan skenario:Kami telah memulai transaksi diikuti dengan pembuatan tabel dan penyisipan catatan ke dalam tabel. Kami membangun INS bernama savepoint setelah menambahkan catatan ke tabel. Setelah Penyisipan, kami melakukan operasi penghapusan, dan kemudian kami ingat salah menghapus catatan yang salah. Kami akan membatalkan transaksi kami untuk mencapai INS savepoint. Untuk membatalkan transaksi, gunakan perintah ROLLBACK.

Kami dapat memutar kembali operasi yang kami lakukan atau memutar kembali seluruh transaksi savepoint.

Sintaks untuk Mengembalikan operasi:

ROLLBACK;

Sintaks untuk Mengembalikan transaksi:

ROLLBACK TO savepoint;

Contoh perintah SAVEPOINT dan ROLLBACK:

Jika Anda memiliki database yang sudah ada di sistem, gunakan database yang sudah ada atau buat database baru. Kami akan memilih database yang sudah ada bernama Perusahaan.

USE Company

Pertimbangkan tabel karyawan yang ada yang memiliki catatan berikut:

KARYAWAN FIRST_NAME LAST_NAME GAJI KOTA DEPARTEMEN MANAGERID
1001 VAIBHAVI MISHRA 65000 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60000 NOIDA ORACLE 1
1003 NIKHIL VANI 50.000 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50.000 MUMBAI UJI 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH BAIK 60500 MUMBAI UJI 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3

Dalam SQL, kueri MULAI TRANSAKSI digunakan untuk memulai transaksi.

START TRANSACTION;           

Sekarang, kita akan menyisipkan dua record pada tabel Karyawan yang ada. Untuk menyisipkan beberapa record kita akan menggunakan pernyataan di bawah ini:

INSERT INTO EMPLOYEES (EMPLOYEEID, FIRST_NAME, LAST_NAME, SALARY, CITY, DEPARTMENT, MANAGERID) VALUES (4003, 'PURVA', 'DHANDEKAR', 57000, 'PUNE', 'TESTING', 4), (5001, 'ASHWIN', 'PATEL', 54500, 'JAIPUR', 'JAVA', 3);

Kami sekarang akan menggunakan kueri SELECT untuk memverifikasi apakah catatan berhasil dimasukkan ke dalam tabel atau tidak.

SELECT * FROM EMPLOYEES;

Keluaran pada kueri di atas:

KARYAWAN FIRST_NAME LAST_NAME GAJI KOTA DEPARTEMEN MANAGERID
1001 VAIBHAVI MISHRA 65000 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60000 NOIDA ORACLE 1
1003 NIKHIL VANI 50.000 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50.000 MUMBAI UJI 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH BAIK 60500 MUMBAI UJI 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 PURVA DHANDEKAR 57000 PUNE UJI 4
5001 ASHWIN PATEL 54500 JAIPUR JAVA 3

Seperti yang kita semua tahu, perintah SAVEPOINT dalam SQL digunakan untuk menyimpan bagian yang berbeda dari transaksi yang sama. Asumsikan, Insertion adalah salah satu segmen dari transaksi kita. Gunakan savepoint untuk menyimpan segmen penyisipan ini sebagai Penyisipan.

SAVEPOINT Insertion;

Sekarang, kita akan melakukan operasi UPDATE pada tabel Karyawan, dan kita akan memperbarui gaji karyawan sebesar 1,2 untuk id karyawan 2003.

UPDATE EMPLOYEES SET SALARY = SALARY * 1.2 WHERE EMPLOYEEID = 2003;

Kami akan memeriksa silang operasi pembaruan dengan menjalankan kueri SELECT pada tabel Karyawan:

SELECT * FROM EMPLOYEES WHERE EMPLOYEEID = 2003;
KARYAWAN FIRST_NAME LAST_NAME GAJI KOTA DEPARTEMEN MANAGERID
2003 RUCHIKA JAIN 60000 MUMBAI UJI 4

Hasil kueri di atas menunjukkan bahwa catatan id karyawan 2003 berhasil diperbarui.

Pertimbangkan kueri pembaruan sebagai satu segmen dari transaksi kami. Kami akan menyimpan bagian operasi pembaruan menggunakan SAVEPOINT bernama Pembaruan.

SAVEPOINT Updation;

Sekarang, kita akan melakukan operasi hapus pada tabel Karyawan. Kami akan melakukan operasi penghapusan pada tabel karyawan di mana gaji karyawan lebih besar dari 60000.

DELETE FROM EMPLOYEES WHERE SALARY > 60000;

Kami akan memeriksa silang operasi penghapusan dengan menjalankan kueri SELECT pada tabel Karyawan:

SELECT * FROM EMPLOYEES;

Keluaran pada kueri di atas:

KARYAWAN FIRST_NAME LAST_NAME GAJI KOTA DEPARTEMEN MANAGERID
1002 VAIBHAV SHARMA 60000 NOIDA ORACLE 1
1003 NIKHIL VANI 50.000 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
2003 RUCHIKA JAIN 60000 MUMBAI UJI 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 PURVA DHANDEKAR 57000 PUNE UJI 4
5001 ASHWIN PATEL 54500 JAIPUR JAVA 3

Kueri di atas menunjukkan bahwa penghapusan catatan karyawan berhasil.

Pertimbangkan kueri penghapusan sebagai satu segmen dari transaksi kami. Kami akan menyimpan bagian operasi pembaruan menggunakan SAVEPOINT bernama Penghapusan.

SAVEPOINT Deletion;

Tiba-tiba Pengguna menyadari kueri yang ingin kami lakukan pada operasi penghapusan tidak seharusnya kueri itu. Dalam situasi seperti itu, pengguna akan memutar kembali seluruh transaksi ke SAVEPOINT; Pengguna dapat memutar kembali ke SAVEPOINT mana pun yang ingin dia putar kembali seperti Penyisipan, Pembaruan SAVEPOINT.

ROLLBACK TO Insertion;

Jika pengguna tidak ingin menghapus catatan. Oleh karena itu, Pengguna akan dikembalikan ke SAVEPOINT Penyisipan.

Untuk memeriksa silang bahwa kami telah mendapatkan tabel karyawan yang sama dengan yang kami miliki sebelum melakukan operasi pembaruan dan penghapusan. Untuk mengambil detail karyawan, lakukan operasi SELECT pada tabel karyawan.

SELECT * FROM EMPLOYEES;
KARYAWAN FIRST_NAME LAST_NAME GAJI KOTA DEPARTEMEN MANAGERID
1001 VAIBHAVI MISHRA 65000 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60000 NOIDA ORACLE 1
1003 NIKHIL VANI 50.000 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50.000 MUMBAI UJI 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH BAIK 60500 MUMBAI UJI 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 PURVA DHANDEKAR 57000 PUNE UJI 4
5001 ASHWIN PATEL 54500 JAIPUR JAVA 3


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengubah Teks ke Huruf Kecil di SQL

  2. Membuat Server Tertaut ODBC Tanpa Mengonfigurasi Sumber Data

  3. Mengurangi Fragmentasi Indeks

  4. SQL ANTARA Operator untuk Pemula

  5. Menggunakan ODBC dengan Salesforce dan Okta Single Sign On (SSO)