Prosedur adalah subprogram yang dapat dibuat dan disimpan dalam database sebagai objek database. Sama seperti yang Anda bisa dalam bahasa lain, Anda juga dapat membuat dan menghapus prosedur dalam SQL. Dalam artikel ini, mari kita jelajahi prosedur dalam SQL dengan sintaks dan contoh.
Topik yang dibahas dalam artikel adalah:
- Apa yang dimaksud dengan prosedur dalam SQL?
- Sintaks Prosedur SQL
- Contoh Prosedur dalam SQL
- Kelebihan Prosedur SQL
Apa yang dimaksud dengan prosedur dalam SQL?
Prosedur dalam SQL (sering disebut sebagai prosedur tersimpan), adalah unit yang dapat digunakan kembali yang merangkum logika bisnis spesifik aplikasi. Prosedur SQL adalah sekelompok pernyataan dan logika SQL, dikompilasi dan disimpan bersama untuk melakukan tugas tertentu.
Tercantum di bawah ini adalah fitur utama dari prosedur SQL:
- Mudah diterapkan karena menggunakan bahasa tingkat tinggi yang sangat sederhana dan diketik dengan kuat
- Mendukung tiga jenis parameter, yaitu parameter input, output, dan input-output.
- Lebih dapat diandalkan daripada prosedur eksternal yang setara.
- Prosedur SQL mendorong penggunaan kembali dan pemeliharaan.
- Mendukung kondisi dan model penanganan kesalahan yang sederhana namun kuat.
- Mengembalikan nilai status ke prosedur panggilan atau batch untuk menunjukkan keberhasilan atau kegagalan dan alasan kegagalan.
Sekarang setelah Anda mengetahui apa itu prosedur dan mengapa dibutuhkan, mari kita bahas sintaks dan contoh prosedur dalam SQL.
Sintaks prosedur dalam SQL
Berikut ini mengilustrasikan sintaks dasar untuk membuat prosedur dalam SQL:
CREATE [ OR REPLACE] PROCEDURE procedure_name [ (parameter_name [IN | OUT | IN OUT] type [ ])] {IS | AS } BEGIN [declaration_section] executable_section //SQL statement used in the stored procedure END GO
Terminologi Sintaks
Parameter
Parameter adalah variabel yang menyimpan nilai dari semua tipe data SQL yang valid di mana subprogram dapat bertukar nilai dengan kode utama. Dengan kata lain, parameter digunakan untuk meneruskan nilai ke prosedur. Ada 3 jenis parameter yang berbeda, yaitu sebagai berikut:
- IN :Ini adalah Parameter Default, yang selalu menerima nilai dari program pemanggil. Ini adalah variabel read-only di dalam subprogram dan nilainya tidak dapat diubah di dalam subprogram.
- KELUAR: Ini digunakan untuk mendapatkan output dari subprogram.
- MASUK KELUAR: Parameter ini digunakan baik untuk memberikan input maupun untuk mendapatkan output dari subprogram.
Terminologi Lainnya
- nama-prosedur menentukan nama prosedur. Itu harus unik.
- Opsi [OR REPLACE] memungkinkan modifikasi prosedur yang ada.
- ADALAH | AS Clause, mereka mengatur konteks untuk menjalankan prosedur tersimpan. Bedanya, kata kunci 'IS' digunakan ketika prosedur disarangkan ke beberapa blok lain dan jika prosedurnya berdiri sendiri maka 'AS' digunakan.
- Code_Block mendeklarasikan pernyataan prosedural yang menangani semua pemrosesan dalam prosedur tersimpan. Isi code_block tergantung pada aturan dan bahasa prosedural yang digunakan oleh database.
Prosedur dalam SQL:Contoh
Contoh1
Contoh berikut membuat prosedur sederhana yang menampilkan pesan selamat datang di layar saat dijalankan. Kemudian, prosedurnya adalah:
CREATE OR REPLACE PROCEDURE welcome_msg (para1_name IN VARCHAR2) IS BEGIN dbms_output.put_line (‘Hello World! '|| para1_name); END; /
Jalankan prosedur tersimpan. Prosedur mandiri dapat dipanggil dengan dua cara −
- Menggunakan EXECUTE kata kunci
- Memanggil nama prosedur dari blok SQL
Prosedur di atas dapat dipanggil menggunakan kata kunci Execute sebagai berikut:
EXEC welcome_msg (‘Welcome to Edureka!’);
Keluaran
Hello World! Welcome to Edureka
Prosedur dijalankan, dan pesan dicetak sebagai “Halo Dunia! Selamat datang di Edureka”.
Contoh2
Misalkan Anda memiliki tabel dengan detail Emplyoee, seperti, EmployeId, Firstname, Lastname, dan DepartmentDetails.
Contoh ini membuat prosedur SQL yang akan mengembalikan nama karyawan saat EmployeId diberikan sebagai parameter input ke prosedur tersimpan. Kemudian, prosedurnya adalah:
Create PROCEDURE GetStudentName ( @employeeID INT, --Input parameter , employeID of the employee @employeName VARCHAR(50) OUT --Output parameter, employeeName of employee AS BEGIN SELECT @employeName= Firstname+' '+Lastname FROM Employee_Table WHERE EmployeId=@employeID END
Langkah-langkah untuk mengeksekusi:
- Deklarasikan @employeName sebagai nvarchar(50)
- EXEC GetStudentName 01, keluaran @employeName
- pilih @namakaryawan
Prosedur di atas dalam memberikan id karyawan sebagai input mengembalikan nama karyawan tersebut. Misalkan jika kita memiliki parameter output maka pertama-tama kita perlu mendeklarasikan variabel untuk mengumpulkan nilai output. Sekarang mari kita lihat keuntungan dari prosedur dalam SQL.
Kelebihan prosedur dalam SQL
Tujuan utama prosedur tersimpan di SQL adalah untuk menyembunyikan kueri SQL langsung dari kode dan meningkatkan kinerja operasi database seperti memilih, memperbarui, dan menghapus data. Keuntungan lain dari prosedur dalam SQL adalah:
- Mengurangi jumlah informasi yang dikirim ke server database. Ini bisa menjadi manfaat yang lebih penting ketika bandwidth jaringan lebih sedikit.
- Mengaktifkan penggunaan kembali kode
- Meningkatkan keamanan karena Anda dapat memberikan izin kepada pengguna untuk menjalankan prosedur Tersimpan alih-alih memberikan izin pada tabel yang digunakan dalam prosedur Tersimpan.
- Mendukung panggilan prosedur bersarang ke prosedur SQL lain atau prosedur yang diterapkan dalam bahasa lain.
Untuk menyimpulkan, prosedur dalam SQL (prosedur tersimpan) tidak hanya meningkatkan kemungkinan penggunaan kembali kode tetapi juga meningkatkan kinerja database. Bagaimana? Dengan mengurangi lalu lintas jaringan dengan mengurangi jumlah informasi yang dikirim melalui jaringan. Dengan ini, kita telah sampai pada akhir artikel ini.
Jika Anda ingin mempelajari lebih lanjut tentang MySQL dan mengenal database relasional sumber terbuka ini, 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? Harap sebutkan di bagian komentar dari 'Prosedur dalam SQL; artikel dan kami akan menghubungi Anda kembali.