KomputerDatabase

SQL Stored Procedures: Membuat dan Menggunakan

Prosedur tersimpan SQL adalah modul program yang dapat dieksekusi yang dapat disimpan dalam database sebagai berbagai objek. Dengan kata lain, itu adalah objek yang berisi pernyataan SQL. Prosedur tersimpan ini bisa dilakukan di aplikasi client untuk mendapatkan performa yang baik. Selain itu, benda semacam itu sering disebut dari skenario lain atau bahkan dari beberapa bagian lainnya.

Pendahuluan

Banyak yang percaya bahwa ini mirip dengan prosedur berbagai bahasa pemrograman tingkat tinggi (masing-masing, kecuali MS SQL). Mungkin memang begitu. Mereka memiliki parameter yang serupa, mereka dapat memberikan nilai yang sama. Apalagi, dalam sejumlah kasus mereka berhubungan. Misalnya, mereka digabungkan dengan database DDL dan DML, serta dengan fungsi pengguna (nama kode - UDF).

Sebenarnya, prosedur tersimpan SQL memiliki berbagai keuntungan yang membedakannya dari proses yang serupa. Keamanan, variabilitas pemrograman, produktivitas - semua ini menarik pengguna yang bekerja dengan database, semakin banyak. Puncak popularitas prosedur terjadi pada 2005-2010, saat Microsoft merilis sebuah program bernama SQL Server Management Studio. Dengan bantuannya, bekerja dengan database menjadi lebih mudah, lebih praktis dan lebih nyaman. Dari tahun ke tahun metode transfer informasi ini mendapat popularitas di kalangan pemrogram. Saat ini, MS SQL Server adalah program yang sangat familiar, yang bagi pengguna yang "berkomunikasi" dengan database, telah meningkat seiring dengan "Excel".

Ketika sebuah prosedur dipanggil, pemrosesan langsung diproses oleh server itu sendiri, tanpa proses dan intervensi pengguna yang tidak perlu. Setelah ini, Anda dapat melakukan tindakan apapun dengan informasi: penghapusan, eksekusi, perubahan. Untuk semua ini adalah tanggung jawab operator DDL, yang melakukan sendiri pemrosesan objek yang paling kompleks. Dan semua ini terjadi sangat cepat, dan server tidak benar-benar dimuat. Kecepatan dan kinerja ini memungkinkan Anda untuk dengan cepat mentransfer sejumlah besar informasi dari pengguna ke server dan sebaliknya.

Untuk menerapkan teknologi ini bekerja dengan informasi, ada beberapa bahasa pemrograman. Ini termasuk, misalnya, PL / SQL dari sistem manajemen basis data Oracle, PSQL dalam sistem Interbase dan Firebird, serta "Microsoft Transact-SQL" klasik. Semua itu dirancang untuk membuat dan menjalankan prosedur tersimpan, yang memungkinkan penggunaan algoritma besar dalam penangan database besar. Hal ini juga diperlukan bagi mereka yang mengelola informasi tersebut untuk melindungi semua objek dari akses yang tidak sah oleh pihak ketiga dan, dengan demikian, membuat, mengubah, atau menghapus data tertentu.

Produktivitas

Objek database ini bisa diprogram dengan berbagai cara. Hal ini memungkinkan pengguna untuk memilih jenis metode yang digunakan, mana yang paling tepat, yang menghemat waktu dan tenaga. Selain itu, prosedur itu sendiri diproses, yang menghindari menghabiskan banyak waktu untuk bertukar antara server dan pengguna. Selain itu, modul dapat diprogram ulang dan diubah ke arah yang diinginkan setiap saat. Terutama perlu dicatat kecepatan prosedur yang tersimpan SQL dimulai: proses ini lebih cepat daripada yang lain, serupa dengan itu, yang membuatnya mudah dan serbaguna.

Keamanan

Jenis pengolahan informasi ini berbeda dari proses serupa karena menjamin keamanan meningkat. Hal ini dipastikan oleh fakta bahwa akses pengguna lain ke prosedur dapat dikecualikan sepenuhnya dan sepenuhnya. Ini akan memungkinkan administrator untuk melakukan operasi dengan mereka secara mandiri, tanpa takut mencegat informasi atau akses tidak sah ke database.

Transfer data

Hubungan antara prosedur tersimpan SQL dan aplikasi klien adalah penggunaan parameter dan nilai kembali. Yang terakhir ini tidak perlu mentransfer data ke prosedur yang tersimpan, namun informasi ini (terutama atas permintaan pengguna) dan diproses untuk SQL. Setelah prosedur yang tersimpan selesai mengerjakannya, ia mengirimkan paket data kembali (tapi, sekali lagi, jika diinginkan) ke aplikasi yang memanggilnya, dengan menggunakan berbagai metode yang dapat digunakan sebagai panggilan ke prosedur tersimpan SQL, dan kembali, misalnya:

- Transfer data menggunakan parameter Output;

- transfer data menggunakan operator return;

- transfer data menggunakan operator pilihan.

Sekarang mari kita lihat bagaimana proses ini terlihat dari dalam.

1. Buat EXEC stored procedure di SQL

Anda bisa membuat prosedur di MS SQL (Managment Studio). Setelah prosedur dibuat, maka akan ditransfer ke node database yang dapat diprogram dimana prosedur pembuatan dilakukan oleh operator. Untuk mengeksekusi, SQL stored procedures menggunakan proses EXEC yang berisi nama objek itu sendiri.

Saat membuat prosedur, namanya muncul lebih dulu, setelah satu atau lebih parameter ditugaskan untuknya diproduksi. Parameter bisa bersifat opsional. Setelah parameter (s), yaitu, badan prosedur, ditulis, Anda perlu melakukan beberapa operasi yang diperlukan.

Masalahnya adalah bahwa tubuh dapat memiliki variabel lokal yang berada di dalamnya, dan variabel-variabel ini bersifat lokal juga terkait dengan prosedur. Dengan kata lain, mereka hanya bisa dilihat di dalam tubuh prosedur Microsoft SQL Server. Prosedur tersimpan kemudian dianggap lokal.

Jadi, untuk membuat prosedur, kita memerlukan nama prosedur dan setidaknya satu parameter sebagai prosedur body. Perhatikan bahwa pilihan yang sangat baik dalam hal ini adalah membuat dan menjalankan prosedur dengan nama skema di classifier.

Badan prosedur dapat memiliki jenis pernyataan SQL, misalnya, seperti membuat tabel, memasukkan satu atau lebih baris tabel, menetapkan jenis dan sifat database, dan sebagainya. Meski demikian, badan prosedur tersebut membatasi pelaksanaan operasi tertentu di dalamnya. Beberapa batasan penting tercantum di bawah ini:

- tubuh seharusnya tidak membuat prosedur tersimpan lainnya;

- Tubuh seharusnya tidak membuat gagasan palsu tentang objek;

- Tubuh seharusnya tidak menimbulkan pemicu.

2. Menetapkan variabel di badan prosedur

Anda bisa membuat variabel lokal menjadi prosedur tubuh, dan kemudian mereka akan ditempatkan secara eksklusif di dalam tubuh prosedur. Praktik yang baik adalah membuat variabel di awal bodi prosedur yang tersimpan. Tapi juga Anda bisa mengatur variabel di manapun di badan objek ini.

Terkadang Anda akan melihat beberapa variabel disetel dalam satu baris, dan setiap parameter variabel dipisahkan dengan tanda koma. Perhatikan juga bahwa variabel memiliki awalan @. Di badan prosedur, Anda bisa mengatur variabel yang Anda inginkan. Misalnya, variabel @ NAME1 dapat dinyatakan mendekati akhir prosedur. Untuk menetapkan nilai variabel yang dideklarasikan, satu set data pribadi digunakan. Berbeda dengan situasi ketika lebih dari satu variabel dinyatakan dalam satu baris, hanya satu kumpulan data pribadi yang digunakan dalam situasi ini.

Seringkali, pengguna mengajukan pertanyaan: "Bagaimana cara menetapkan beberapa nilai dalam satu operator di dalam tubuh prosedur?" Pertanyaannya menarik, tapi jauh lebih mudah dilakukan daripada yang Anda pikirkan. Jawab: gunakan pasangan seperti "Select Var = value". Anda bisa menggunakan pasangan ini, memisahkannya dengan koma.

3. Membuat SQL Stored Procedure

Dalam berbagai contoh, orang menunjukkan cara membuat prosedur tersimpan sederhana dan menjalankannya. Namun, prosedur tersebut dapat mengambil parameter seperti itu sehingga proses pemanggilan akan memiliki nilai yang mendekati (namun tidak selalu). Jika mereka bertepatan, maka proses yang sesuai dimulai di dalam tubuh. Misalnya, jika Anda membuat prosedur yang akan membawa kota dan wilayah dari pemanggil dan mengembalikan data tentang berapa banyak pengarang yang terkait dengan kota dan wilayah yang bersangkutan. Prosedur akan query database penulis tabel, misalnya, Pub, untuk melakukan ini penulis menghitung. Untuk mendapatkan database ini, misalnya, Google memuat skrip SQL dari halaman SQL2005.

Pada contoh sebelumnya, prosedur mengambil dua parameter, yang dalam bahasa Inggris akan secara konvensional disebut @State and @City. Tipe data sesuai dengan jenis yang didefinisikan dalam aplikasi. Badan prosedur memiliki variabel internal @TotalAuthors (semua penulis), dan variabel ini digunakan untuk menampilkan nomor mereka. Lalu ada bagian untuk memilih kueri, yang semuanya diperhitungkan. Akhirnya, nilai yang dihitung ditampilkan di jendela output menggunakan operator cetak.

Bagaimana cara menjalankan prosedur tersimpan di SQL

Ada dua cara untuk melakukan prosedur. Jalur pertama menunjukkan parameter yang lewat, karena daftar yang dipisahkan koma dijalankan setelah nama prosedur. Misalkan kita memiliki dua nilai (seperti pada contoh sebelumnya). Nilai ini dikumpulkan dengan menggunakan variabel parameter lokasi @State dan @City. Ketertiban penting dengan cara melewati parameter ini. Metode ini disebut ordinal transfer argumen. Pada metode kedua, parameternya sudah langsung ditugaskan, dan dalam hal ini pesanan tidak penting. Metode kedua ini dikenal dengan transfer argumen bernama.

Prosedurnya bisa sedikit menyimpang dari tipikal. Semuanya sama seperti contoh sebelumnya, tapi disini hanya parameternya yang bergeser. Artinya, parameter @City disimpan terlebih dahulu, dan @State disimpan di sebelah nilai default. Pengaturan standar biasanya terpisah. Prosedur SQL yang tersimpan lulus sebagai parameter sederhana. Dalam kasus ini, dalam kondisi ini, parameter "UT" menggantikan nilai default "CA". Pada eksekusi kedua, hanya satu nilai argumen yang dilewatkan untuk parameter @City, dan parameter @State mengambil nilai default "CA". Pemrogram yang berpengalaman menyarankan agar semua variabel secara default berada di dekat akhir daftar parameter. Jika tidak, eksekusi tidak mungkin dilakukan, dan kemudian Anda harus bekerja dengan transfer argumen yang disebut, yang lebih lama dan lebih sulit.

4. SQL Server Stored Procedures: Metode Kembali

Ada tiga cara penting untuk mengirim data ke prosedur tersimpan yang disebut. Mereka tercantum di bawah ini:

- mengembalikan nilai dari prosedur yang tersimpan;

- Output dari parameter prosedur yang tersimpan;

- Pilih salah satu dari prosedur yang tersimpan.

4.1 Mengembalikan nilai dari prosedur tersimpan SQL

Dalam teknik ini, prosedur memberikan nilai pada variabel lokal dan mengembalikannya. Prosedur juga bisa langsung mengembalikan nilai konstan. Dalam contoh berikut, kami membuat sebuah prosedur yang mengembalikan jumlah total penulis. Jika Anda membandingkan prosedur ini dengan yang sebelumnya, Anda dapat melihat bahwa nilai pencetakan diganti dengan yang berlawanan.

Sekarang mari kita lihat bagaimana cara menjalankan prosedur dan mengeluarkan nilai yang dikembalikan padanya. Pelaksanaan prosedur memerlukan pengaturan variabel dan pencetakan, yang dilakukan setelah semua proses ini. Perhatikan bahwa alih-alih pernyataan cetak, Anda dapat menggunakan operator Pilih, misalnya, Pilih @RetValue, dan juga OutputValue.

4.2 Keluar dari parameter prosedur tersimpan SQL

Nilai respon dapat digunakan untuk mengembalikan satu variabel, yang kita lihat pada contoh sebelumnya. Menggunakan parameter Output memungkinkan prosedur untuk mengirim satu atau lebih nilai variabel ke pihak yang memanggil. Parameter output ditetapkan seperti kali ini dengan kata kunci "Output" saat membuat prosedur. Jika parameter ditentukan sebagai parameter output, maka objek prosedur harus menetapkan nilai padanya. Prosedur SQL yang tersimpan, contohnya dapat dilihat di bawah, kemudian dikembalikan dengan informasi ringkas.

Dalam contoh kami, ada dua nama keluaran: @TotalAuthors dan @TotalNoContract. Mereka ditentukan dalam daftar parameter. Variabel ini menetapkan nilai di dalam tubuh prosedur. Bila kita menggunakan parameter output, pemanggil dapat melihat nilai yang ditetapkan di dalam badan prosedur.

Selain itu, pada skenario sebelumnya, dua variabel dideklarasikan untuk melihat nilai-nilai yang mengatur prosedur tersimpan MS SQL Server pada parameter output. Kemudian prosedur dilakukan dengan mensuplai nilai normal dari parameter "CA". Parameter berikut adalah output dan, oleh karena itu, variabel yang dinyatakan ditransmisikan dalam urutan yang telah mapan. Perhatikan bahwa ketika melewati variabel, kata kunci output juga ditentukan di sini. Setelah prosedur selesai dengan sukses, nilai yang dikembalikan oleh parameter output ditampilkan pada jendela pesan.

4.3 Pilih salah satu prosedur tersimpan SQL

Teknik ini digunakan untuk mengembalikan satu set nilai sebagai tabel data (RecordSet) ke prosedur yang tersimpan dalam panggilan. Dalam contoh ini, prosedur tersimpan SQL dengan parameter @AuthID menanyakan tabel Penulis dengan memfilter catatan yang telah dikembalikan menggunakan parameter @AuthId ini. Operator Pilih menentukan apa yang harus dikembalikan ke prosedur yang tersimpan dalam panggilan. Saat menjalankan prosedur tersimpan, AuthId dilewatkan kembali. Prosedur seperti ini di sini selalu hanya menghasilkan satu catatan atau tidak sama sekali. Tapi prosedur yang tersimpan tidak memiliki batasan untuk mengembalikan lebih dari satu rekaman. Seringkali mungkin untuk menemukan contoh di mana kembalinya data menggunakan parameter yang dipilih dengan partisipasi variabel yang dihitung terjadi dengan memberikan beberapa nilai ringkasan.

Kesimpulannya

Prosedur tersimpan adalah modul perangkat lunak yang cukup serius yang mengembalikan atau mentransmisikan, dan juga menetapkan variabel yang diperlukan melalui aplikasi klien. Karena prosedur yang tersimpan dijalankan di server itu sendiri, pertukaran data dalam volume besar antara server dan aplikasi klien (untuk beberapa perhitungan) dapat dihindari. Hal ini memungkinkan Anda mengurangi beban pada server SQL, yang, tentu saja, masuk ke tangan pemegangnya. Salah satu subspesies adalah prosedur tersimpan T SQL, bagaimanapun, mereka perlu dipelajari oleh mereka yang menciptakan database yang mengesankan. Ada juga yang besar, bahkan sejumlah besar nuansa yang bisa berguna dalam mempelajari prosedur tersimpan, tapi ini lebih untuk mereka yang berencana untuk terlibat dalam pemrograman, termasuk profesional.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 delachieve.com. Theme powered by WordPress.