Kamis, 11 Maret 2021

Stored Procedure (SQL Management Server)

Stored procedure adalah kumpulan pernyataan/procedure SQL yang disimpan dalam database. Stored procedure dapat menerima parameter, dan Anda dapat mengatur variabel, menulis pernyataan IF, dan lainnya dalam stored procedure.

Sebagian besar dari kita cukup akrab dengan pengaturan normal untuk membangun aplikasi database, yaitu: membuat database, membuat tabel, mengatur indeks, CRUD data dan sebagainya. Alur kerja itu berfungsi dengan baik dalam banyak kasus, tetapi ada satu aspek penting dari pemrograman basis data yang hilang: stored procedure.

Stored procedure dikompilasi sekali dan disimpan dalam bentuk yang dapat dieksekusi kembali. Sehingga prosedur dapat dipanggil dengan cepat dan efisien. Kode yang dapat dieksekusi secara otomatis di-cache dan dibagikan di antara pengguna. Hal ini menyebabkan terjadinya penurunan kebutuhan memori. Dengan mengelompokkan pernyataan SQL, stored procedure memungkinkan laporan diproses dengan satu panggilan yang kemudian bisa mengurangi lalu lintas jaringan dan meningkatkan waktu respon.

Berikut ini ada kelebihan menggunakan stored procedure:

  1. Performa Yang Lebih Baik
    Stored Procedure dikompilasi dan kemudian di-cache dan digunakan lagi. Sehingga waktu respon akan menjadi lebih cepat ketika stored procedure yang sama dieksekusi lagi.
  2. Modular
    Jika beberapa aplikasi ingin menggunakan query yang sama, maka dengan cara tradisional Anda menduplikasi kode yang tidak perlu pada aplikasi, cara terbaik adalah menempatkan kode ke dalam database.
  3. Keamanan Lebih Baik
    Aplikasi yang memanfaatkan pernyataan  sql yang dibuat secara dinamis sangat rentan terhadap serangan injeksi SQL, sedangkan stored procedure dapat menghindari serangan injeksi SQL sepenuhnya.

SOAL:  
  1. hapus_vendors, yang dapat menghapus data vendors berdasarkan kode vendors yang diinputkan, lalu menampilkan semua data vendors yang terbaru. 

    EXECUTE ➔ HAPUS data vendors dengan ID V0090

    Answer :
    CREATE PROCEDURE hapus_vendors
    @idvendors CHAR(5)
    AS
    DELETE FROM vendors WHERE vend_id=@idvendors
    SELECT*FROM vendors

    Id Vendors merupakan Parameter maka sebelum idvendors harus menambahkan '@', Karena setiap parameter harus menggunakan '@'.

    Karena kita ingin membuat prosedur hapus, maka query nya adalah DELETE FROM , karena kita ingin menghapus berdasarkan ID vendor maka harus menggunakan query WHERE lalu dilanjutkan dengan vend_id dan parameternya. 

    Mengapa ada SELECT*FROM ? Karena kita akan langsung menampilkan data terbaru dari table Vendor.





    EXEC hapus_vendors 'V0090'

    Maka hasil akan tampil seperti ini





  2. Buatlah sebuah stored procedure dengan nama update_vendors, yang dapat merubah nama pada data vendors berdasarkan kode vendors yang diinputkan, lalu menampilkan semua data vendors yang terbaru.

    EXECUTE ➔ Ubah nama vendors PUMA menjadi LAMA

    Answer :
    CREATE PROCEDURE update_vendors
    @idvendors CHAR (5),
    @namavendors VARCHAR (25)
    AS
    UPDATE
      vendors SET vend_id = @idvendors, vend_name = @namavendors
    WHERE vend_id = @idvendors
    SELECT*FROM vendors

    Id Vendors merupakan Parameter maka sebelum idvendors harus menambahkan '@', Karena setiap parameter harus menggunakan '@'.

    Karena kita ingin membuat prosedur update, maka query nya adalah UPDATE , karena kita ingin mengupdate berdasarkan kode vendor yang diinputkan maka harus menggunakan query WHERE lalu dilanjutkan dengan vend_id dan parameternya. 

    Mengapa ada SELECT*FROM ? Karena kita akan langsung menampilkan data terbaru dari table Vendor.






    EXEC update_vendors 'V0003','Lama'

    Maka hasil akan tampil seperti ini





  3. Buatlah sebuah stored procedure dengan nama cari_vendors, yang dapat menampilkan data vendors berdasarkan nama vendors yang diinputkan.

    EXECUTE ➔ Cari data vendors dengan nama yang mengandung huruf A

    Answer :
    CREATE PROCEDURE  cari_vendors
    @namavendors VARCHAR (25)
    AS
    SELECT*FROM
    vendors
    WHERE vend_name LIKE '%a%'

    Id Vendors merupakan Parameter maka sebelum idvendors harus menambahkan '@', Karena setiap parameter harus menggunakan '@'.

    Karena kita ingin mencari data maka gunakan query SELECT, lalu dilanjutkan dengan query WHERE

    Mengapa ada LIKE? Karena kita ingin mencari data berdasarkan huruf 'A'

    Lalu LIKE itu apa? Sesuai dengan artinya LIKE berarti mirip. Jadi yang dicari adalah suatu data yang mirip dengan apa yang kita inginkan




    EXEC cari_vendors '%a%'

    Maka hasil akan tampil seperti ini













0 komentar:

Posting Komentar