MySQL adalah sistem manajemen basis data relasional sumber terbuka. Itu dapat dengan mudah mengelola volume data yang besar. Untuk detail lebih lanjut tentang MySQL, lihat Pertanyaan Wawancara MySQL
MySQL adalah salah satu database gratis paling populer dan didukung oleh Oracle. Mudah digunakan, fleksibel, dan cepat. Di blog ini, kita akan membandingkan fungsi kustom dan prosedur tersimpan dan memahami cara menulis yang sederhana
Prosedur tersimpan
Alih-alih mengirimkan beberapa pernyataan SQL ke server basis data, sebuah aplikasi dapat mengirimkan sekumpulan kueri dalam apa yang disebut prosedur tersimpan. Prosedur tersimpan dapat digunakan kembali dan dapat digunakan oleh berbagai aplikasi untuk meningkatkan kinerja
Fungsi
Ada banyak jenis fungsi seperti fungsi agregat, fungsi aliran kontrol, fungsi string, perbandingan, tanggal dan waktu, fungsi matematika, dan sebagainya. Masing-masing fungsi ini melakukan tugas tertentu dan mengembalikan hasilnya. Lihat Pertanyaan Wawancara SQL untuk mempelajari tentang berbagai jenis fungsi, termasuk fungsi yang ditentukan pengguna dan disimpan secara mendetail
Sekarang setelah kita mengetahui dasar-dasar prosedur dan fungsi tersimpan, mari kita lakukan perbandingan keduanya secara berdampingan –
Meskipun MySQL efisien dalam menangani data dalam jumlah besar, sekarang ada database NoSQL yang menangani data tidak terstruktur dengan cara yang lebih baik. Basis data seperti MongoDB lebih cepat dalam menangani basis data besar. Untuk mengetahui lebih banyak fitur dan keunggulan MongoDB, lihat Daftar Pertanyaan Wawancara MongoDB kami. Namun, MySQL membantu dengan ketersediaan tinggi dan redundansi data
Cara membuat prosedur tersimpan
Mari kita membuat stored procedure sederhana yang mendapatkan jumlah siswa yang lulus dengan perbedaan dari tabel siswa
BUAT PROSEDUR GetNumberOfDistinctions(IN mintmarksINT, OUT hitung INT)
MULAI
SELECT count(student_id) INTO countFROM students WHERE marks >=mintmarks;
AKHIR
Dalam prosedur ini, kami telah menggunakan satu parameter masuk dan satu parameter keluar. Saat kami memanggil prosedur, kami mendapatkan hitungan yang dihasilkan
HUBUNGI GetNumberOfDistinctions(75, @count);
PILIH @hitung;
Cara membuat fungsi kustom
Mari kita buat fungsi khusus untuk tujuan yang sama seperti di atas
Perhatikan perbedaan dalam sintaks
BUAT FUNGSI get_number_of_distinctions(minmarks INT) KEMBALIKAN INT
MULAI
MENYATAKAN hitungan INT DEFAULT 0;
PILIH hitung(nomor_siswa) KE hitung DARI siswa WHERE tanda >= minmarks;
hitungan KEMBALI;
AKHIR;
Saat Anda memanggil fungsi, ini mengembalikan nilai hitungan
int hitung = get_number_of_distinctions(75);
Kesimpulan
Prosedur dan fungsi tersimpan di MySQL memiliki tujuan yang sama sekali berbeda. Fungsi adalah tugas yang lebih kecil sedangkan prosedur membutuhkan lebih banyak akurasi dan waktu serta memecahkan logika bisnis yang lebih kompleks
Kami memiliki koleksi Pertanyaan dan Jawaban Wawancara Terbaik yang membantu Anda memecahkan wawancara mendatang
Perbedaan yang paling signifikan antara prosedur dan fungsi adalah bahwa keduanya dipanggil secara berbeda dan untuk tujuan yang berbeda. Selain itu berikut adalah perbedaan antara prosedur dan fungsi -
Prosedur tidak mengembalikan nilai. Sebaliknya, itu dipanggil dengan pernyataan CALL untuk melakukan operasi seperti memodifikasi tabel atau memproses catatan yang diambil
Di sisi lain, fungsi dipanggil dalam ekspresi dan mengembalikan satu nilai langsung ke pemanggil untuk digunakan dalam ekspresi. Artinya, fungsi digunakan dalam ekspresi dengan cara yang sama seperti konstanta, fungsi bawaan, atau referensi ke kolom tabel
Kami tidak dapat memanggil fungsi dengan pernyataan CALL. Kami tidak dapat memanggil prosedur dalam ekspresi
Sintaks untuk pembuatan rutin agak berbeda dari prosedur dan fungsi sebagai berikut -
Parameter prosedur dapat didefinisikan sebagai input-only, output-only, atau keduanya input dan output. Ini berarti bahwa suatu prosedur dapat mengembalikan nilai ke pemanggil dengan menggunakan parameter output. Nilai-nilai ini dapat diakses dalam pernyataan yang mengikuti pernyataan CALL
Di sisi lain, fungsi hanya memiliki parameter input. Akibatnya, meskipun prosedur dan fungsi dapat memiliki parameter, sintaks deklarasi parameter prosedur berbeda dari fungsi
Fungsi mengembalikan nilai, jadi harus ada klausa RETURNS dalam definisi fungsi untuk menunjukkan tipe data dari nilai yang dikembalikan. Selain itu, setidaknya harus ada satu pernyataan RETURN di dalam badan fungsi untuk mengembalikan nilai ke pemanggil
Apa perbedaan antara fungsi dan prosedur tersimpan?
Dalam suatu fungsi, wajib menggunakan argumen RETURNS dan RETURN, sedangkan dalam stored procedure tidak diperlukan . Singkatnya, prosedur tersimpan lebih fleksibel untuk menulis kode apa pun yang Anda inginkan, sedangkan fungsi memiliki struktur dan fungsionalitas yang kaku.Mengapa kami menggunakan fungsi alih-alih prosedur tersimpan di SQL?
Fungsi tidak dapat mengubah apa pun dan harus memiliki setidaknya satu parameter . Mereka juga harus mengembalikan hasilnya. Prosedur tersimpan tidak memerlukan parameter, dapat memodifikasi objek database, dan tidak harus mengembalikan hasil. Prosedur tersimpan digunakan untuk menghubungkan kueri SQL dalam transaksi dan untuk berkomunikasi dengan dunia luar.Apa perbedaan utama antara prosedur dan fungsi?
Fungsi digunakan untuk menghitung hasil menggunakan masukan yang diberikan. Prosedur digunakan untuk melakukan tugas tertentu secara berurutan .Apa itu prosedur dan fungsi di MySQL?
Prosedur dipanggil menggunakan pernyataan CALL, dan hanya dapat mengembalikan nilai menggunakan variabel keluaran. Sebuah fungsi dapat dipanggil dari dalam pernyataan seperti fungsi lainnya (yaitu, dengan memanggil nama fungsi), dan dapat mengembalikan nilai skalar. Rutinitas tersimpan dapat memanggil rutinitas tersimpan lainnya. Pada MySQL 5. 0