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

Apa itu Kursor dalam SQL dan bagaimana mengimplementasikannya?

Cursor dalam SQL merupakan bagian integral dari basis data apa pun yang pada dasarnya membantu pengguna dalam menelusuri basis data tanpa banyak kerumitan. Melalui media artikel tentang Kursor di SQL ini, saya akan memberi Anda semua detail penting yang harus Anda perlukan sebelum kaki Anda basah karenanya.

Berikut adalah topik yang akan saya bahas dalam artikel ini:

  • Apa itu Kursor dalam SQL?
  • Jenis Kursor SQL
  • Sintaks dari Kursor SQL
  • Siklus Hidup Kursor

Apa itu kursor di SQL?

Cursor di SQL adalah objek yang memungkinkan traversal di atas baris dari kumpulan hasil apa pun. Dengan ini, Anda bisa memproses baris individual database yang dikembalikan oleh kueri. Ini adalah area kerja sementara atau area konteks yang dibuat dalam sistem memori selama eksekusi pernyataan SQL yang menyimpan data yang diambil dari database dan membantu manipulasinya. Anda dapat menganggapnya sebagai susunan baris bersama dengan penunjuk yang menunjuk ke baris saat ini. Kursor adalah objek database yang dapat menampung lebih dari satu baris tetapi hanya dapat memproses satu baris pada satu titik waktu. Himpunan baris yang dipegang oleh kursor disebut sebagai aktif mengatur. Dengan demikian Anda dapat mengontrol catatan tabel dalam teknik tunggal yaitu satu baris pada setiap titik waktu.

Sekarang setelah Anda mengetahui apa itu kursor di SQL, sekarang mari kita lanjutkan dan lihat berbagai jenisnya.

Jenis Kursor SQL

SQL menyediakan dua jenis kursor yang telah saya cantumkan di bawah ini:

  1. kursor implisit

Setiap kali operasi DML seperti INSERT, UPDATE, dan DELETE diproses dalam database, kursor implisit dihasilkan secara otomatis dan digunakan oleh kerangka kerja. Jenis kursor ini digunakan untuk pemrosesan internal dan tidak dapat dikontrol atau dirujuk dari area kode lain. Kursor implisit dalam SQL hanya menahan baris yang terpengaruh oleh operasi dan hanya dapat merujuk ke kursor terbaru menggunakan atribut kursor yang ditunjukkan di bawah dalam tabel.

Atribut Deskripsi
%DITEMUKAN Ini akan mengembalikan TRUE jika pernyataan INSERT, UPDATE, atau DELETE mempengaruhi satu atau beberapa baris atau pernyataan SELECT INTO mengembalikan satu atau beberapa baris. Dalam kasus lain, ini akan mengembalikan FALSE.
%TIDAK DITEMUKAN Ini secara teknis kebalikan dari atribut %FOUND. Ini mengembalikan TRUE jika pernyataan INSERT, UPDATE, atau DELETE tidak memengaruhi baris apa pun atau pernyataan SELECT INTO tidak mengembalikan baris. Jika tidak, ia hanya mengembalikan FALSE.
%ISOPEN Atribut ini akan selalu mengembalikan FALSE untuk kursor implisit karena kursor SQL ditutup secara otomatis segera setelah pernyataan SQL terkait dijalankan.
%ROWCOUNT Ini mengembalikan jumlah total baris yang terpengaruh oleh pernyataan INSERT, UPDATE, atau DELETE, atau baris yang dikembalikan oleh pernyataan SELECT INTO.
  1. Kursor Eksplisit

Jenis kursor ini dihasilkan setiap kali data diproses oleh pengguna melalui blok SQL. Umumnya, penggunaan kueri SELECT memicu pembuatan kursor eksplisit dan dapat menampung lebih dari satu baris tetapi hanya memproses satu per satu. Jenis kursor ini digunakan untuk menyimpan catatan yang ada dalam kolom. Ini memungkinkan pemrogram untuk membuat area konteks bernama untuk menjalankan operasi DML mereka untuk kontrol yang lebih baik. Juga, itu perlu didefinisikan dalam blok SQL dan pada gilirannya dibuat untuk kueri SELECT menggunakan kode itu.

Untuk mendapatkan pemahaman yang lebih baik tentang kursor, sekarang mari kita lihat apa sintaks kursor di SQL.

Sintaks Kursor SQL

Di bawah ini adalah sintaks umum untuk membuat kursor eksplisit.

CURSOR cursorName IS selectStatement;

Di sini:

cursorName – Ini mewakili nama yang valid untuk kursor

selectStatement – ​​Ini mewakili kueri pemilihan yang akan mengembalikan beberapa baris

Sekarang mari kita lanjutkan lebih jauh dengan artikel ini dan melihat siklus hidup kursor SQL.

Siklus Hidup Kursor

Pada dasarnya ada 5 tahap dalam siklus hidup kursor di SQL yang telah saya cantumkan di bawah ini:

  1. Deklarasikan
DECLARE cursorName CURSOR
FOR selectStatement;

Langkah ini akan membantu Anda dalam menentukan nama dan tipe data kursor dan pernyataan SELECT akan menentukan kumpulan hasil.

  1. Buka
OPEN cursorName;

Langkah ini memungkinkan Anda membuka dan mengisi kursor dengan menjalankannya.

  1. Ambil
FETCH NEXT FROM cursor INTO variableList;

Langkah ini akan mengambil baris dari kursor dan menyimpannya ke dalam satu atau beberapa variabel.

[Opsional] Status Periksa

WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM cursorName;
END;

Fungsi ini mengembalikan status pernyataan FETCH terakhir yang dieksekusi terhadap kursor. Jika fungsi ini mengembalikan 0 maka itu berarti operasi FETCH berhasil. Untuk mengambil semua baris dari kursor, klausa WHILE digunakan.

  1. Tutup
CLOSE cursorName;

Langkah ini akan membantu Anda menutup kursor setelah operasi selesai.

  1. Deallokasi
DEALLOCATE cursor_name;

Langkah ini akan membantu dalam mengalokasikan kursor dan mengosongkan ruang memori.

Dengan ini, saya ingin mengakhiri artikel ini tentang Kursor di SQL. Saya harap artikel ini telah membantu Anda dalam menambah nilai pengetahuan Anda. Untuk informasi lebih lanjut tentang SQL atau Database, Anda dapat merujuk ke daftar bacaan lengkap kami di sini:Databases Edureka .

Dasar-Dasar SQL untuk Pemula | Belajar SQL | Tutorial SQL untuk Pemula | Edureka

Video Edureka tentang 'Dasar-Dasar SQL untuk Pemula' ini akan membantu Anda memahami dasar-dasar SQL dan juga kueri SQL yang sangat populer dan penting.

Jika Anda ingin mendapatkan pelatihan terstruktur tentang MySQL, lihat Pelatihan Sertifikasi DBA MySQL kami yang dilengkapi dengan pelatihan langsung yang dipimpin instruktur dan pengalaman proyek kehidupan nyata. Pelatihan ini akan membantu Anda memahami MySQL secara mendalam dan membantu Anda menguasai subjek tersebut.

Ada pertanyaan untuk kami? Silakan sebutkan di bagian komentar ”Cursor in SQL ” dan saya akan menghubungi Anda kembali.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Denormalisasi:Kapan, Mengapa, dan Bagaimana

  2. Notasi IDEF1X

  3. Pengantar IRI Voracity (Manajemen Data Total) [video]

  4. Apakah Pencarian RID lebih cepat daripada Pencarian Kunci?

  5. Tambahkan Kolom ke Tabel di SQL