SQL (Bahasa Pertanyaan Berstruktur) ialah bahasa standard untuk mengurus dan mengendalikan pangkalan data hubungan. Salah satu ciri yang berkuasa dan biasa digunakan ialah prosedur tersimpan. Prosedur tersimpan ialah satu set penyata SQL yang disusun dan disimpan dalam pangkalan data dan boleh menerima parameter input, melaksanakan operasi dan mengembalikan hasil. Mari terokai apakah prosedur tersimpan dan cara menciptanya.
Pengenalan kepada prosedur tersimpan
Prosedur tersimpan mungkin terdengar seperti istilah yang kompleks, tetapi ia adalah asas pengurusan pangkalan data yang cekap. Mari kita mulakan dengan definisinya.
Apakah prosedur tersimpan?
Prosedur tersimpan ialah satu siri pernyataan SQL yang dipratakrif dan disimpan pada pelayan pangkalan data. Apabila anda perlu melakukan operasi ini, anda boleh melaksanakannya dengan memanggil nama prosedur yang disimpan dan bukannya menghantar berbilang arahan pertanyaan berasingan.
Berikut ialah contoh ringkas yang menunjukkan cara membuat prosedur tersimpan mudah dalam SQL Server:
CREATE PROCEDURE procedure_name AS BEGIN -- SQL statements END
Berikut ialah beberapa komponen utama prosedur tersimpan:
- Parameter input: Ini ialah nilai yang dihantar kepada prosedur tersimpan dari luar untuk menyesuaikan gelagat prosedur tersimpan. Parameter input membenarkan prosedur tersimpan melakukan tindakan berbeza berdasarkan keadaan berbeza.
- Parameter output: Sama seperti parameter input, parameter output juga merupakan sebahagian daripada prosedur yang disimpan, tetapi peranannya adalah untuk mengembalikan nilai kepada pemanggil dan bukannya menerima nilai.
- Pembolehubah setempat: Ini ialah pembolehubah yang diisytiharkan dalam prosedur tersimpan dan digunakan untuk menyimpan hasil perantaraan atau nilai yang dikira semasa pelaksanaan. Pembolehubah setempat hanya boleh dilihat dalam konteks prosedur tersimpan dan boleh ditetapkan beberapa kali sepanjang hayatnya.
- Pernyataan SQL: Ini membentuk logik teras prosedur tersimpan, termasuk tetapi tidak terhad kepada pertanyaan, memasukkan, mengemas kini dan memadam data.
Komponen ini bekerjasama untuk menjadikan prosedur tersimpan sebagai cara yang boleh digunakan semula dan cekap untuk melaksanakan operasi pangkalan data. Dengan merangkum tugas pangkalan data biasa dalam prosedur tersimpan, anda boleh memudahkan pembangunan aplikasi sambil meningkatkan prestasi dan keselamatan.
Cara prosedur tersimpan berfungsi
Prosedur tersimpan dilaksanakan di dalam pelayan pangkalan data, yang bermaksud ia boleh menyelesaikan operasi dengan lebih cekap dan melaksanakan lebih cepat berbanding jika berbilang pertanyaan dihantar satu demi satu daripada pelanggan. Selain itu, menggunakan prosedur tersimpan boleh mengurangkan trafik rangkaian dengan ketara kerana hanya set hasil akhir perlu dipindahkan daripada pelayan kepada klien, dan bukannya hasil setiap pertanyaan individu berulang-alik. Dengan cara ini, ia bukan sahaja meningkatkan kelajuan pemprosesan data, tetapi juga mengurangkan penggunaan lebar jalur rangkaian.
Peranan dalam Pengurusan Pangkalan Data
Prosedur tersimpan memainkan peranan penting dalam pengurusan pangkalan data kerana ia menyimpan logik perniagaan secara berpusat pada pelayan pangkalan data. Melakukannya memastikan bahawa operasi kritikal sentiasa dilakukan dengan cara yang konsisten, selamat dan cekap. Khususnya, prosedur tersimpan membantu:
- Mengekalkan integriti data: Dengan memastikan semua operasi data mengikut peraturan dan kekangan yang telah ditetapkan, prosedur tersimpan membantu mengekalkan integriti dan konsistensi data.
- Menguatkuasakan logik perniagaan: Merangkumkan peraturan perniagaan yang kompleks dalam prosedur tersimpan memastikan peraturan ini dikuatkuasakan dengan ketat dan tidak akan terjejas oleh perubahan dalam kod pelanggan.
- Memudahkan interaksi pangkalan data: Dengan menyediakan antara muka yang merangkumi operasi yang kompleks, prosedur tersimpan mengurangkan kerumitan interaksi pangkalan data aplikasi, menjadikan pembangunan dan penyelenggaraan lebih mudah.
Faedah menggunakan prosedur tersimpan
Terdapat beberapa kelebihan utama untuk menggunakan prosedur tersimpan:
- Prestasi yang dipertingkatkan:
- Prosedur tersimpan yang telah dikompilasi dilaksanakan dengan lebih pantas.
- Kelajuan tindak balas yang lebih baik dan penggunaan sumber pelayan yang lebih cekap.
- Kebolehgunaan semula dan kebolehselenggaraan:
- Prosedur tersimpan boleh dipanggil beberapa kali untuk mengurangkan pertindihan kod.
- Kemas kini pada prosedur tersimpan akan berkuat kuasa di semua tempat di mana ia digunakan, memastikan ketekalan dan mengurangkan ralat.
- Keselamatan data:
- Kawal akses pangkalan data dan hadkan keupayaan untuk mengendalikan jadual secara terus.
- Sediakan lapisan keselamatan melalui prosedur tersimpan untuk menghalang akses tanpa kebenaran dan serangan berniat jahat.
Perintah biasa digunakan dengan prosedur tersimpan
Sekarang mari kita lihat arahan berguna yang berpasangan dengan prosedur tersimpan.
BUAT PROSEDUR
Seperti yang dinyatakan sebelum ini, arahan ini digunakan untuk menentukan prosedur tersimpan baharu dalam pangkalan data. Berikut ialah contoh prosedur tersimpan menggunakan fungsi ini:
Andaikan kita mempunyai jadual yang dipanggil "Pekerja" dengan lajur berikut:
- ID Pekerja
- Nama Pertama
- Nama Akhir
- ID Jabatan
- Gaji
Kami ingin membuat prosedur tersimpan untuk mendapatkan semula semua pekerja yang dimiliki oleh jabatan tertentu.
CREATE PROCEDURE procedure_name AS BEGIN -- SQL statements END
EXEC
Arahan ini digunakan untuk melaksanakan prosedur tersimpan. Ia juga boleh digunakan untuk menghantar parameter input dan output. Untuk contoh kami yang terdahulu, arahan "EXEC" akan kelihatan seperti ini:
CREATE PROCEDURE GetEmployeesByDepartment @DepartmentID INT AS BEGIN SELECT EmployeeID, FirstName, LastName, DepartmentID, Salary FROM Employees WHERE DepartmentID = @DepartmentID; END;
UBAH PROSEDUR
Arahan ini membolehkan anda mengubah suai prosedur tersimpan sedia ada tanpa menjatuhkan dan menciptanya semula. Meneruskan contoh sebelumnya, jika kami ingin mengubah suai prosedur tersimpan bernama "GetEmployeesByDepartment" untuk menambah penapis gaji tambahan, iaitu, kami ingin mendapatkan maklumat tentang pekerja di jabatan tertentu yang gajinya lebih besar daripada jumlah tertentu.
Berikut ialah contoh:
EXEC GetEmployeesByDepartment @DepartmentID = 1;
PROSEDUR DROP
Jika prosedur tersimpan tidak lagi diperlukan, anda boleh mengalih keluarnya daripada pangkalan data menggunakan arahan DROP PROCEDURE.
ALTER PROCEDURE GetEmployeesByDepartment @DepartmentID INT, @MinSalary DECIMAL(10, 2) AS BEGIN SELECT EmployeeID, FirstName, LastName, DepartmentID, Salary FROM Employees WHERE DepartmentID = @DepartmentID AND Salary > @MinSalary; END;
Cara Membuat dan Menggunakan Prosedur Tersimpan
Kami akan melihat untuk mencipta dan menggunakan prosedur tersimpan dalam tiga bidang:
- MySQL
- SQL Server
- Oracle
MySQL
Membuat prosedur tersimpan dalam MySQL agak mudah. Anda mentakrifkan prosedur, menentukan parameter dan menulis kod SQL menggunakan pernyataan "CREATE PROCEDURE".
Anda boleh melakukan ini:
Langkah 1: Buat Jadual Pekerja
Mula-mula, mari buat contoh jadual pekerja untuk diisi dengan data yang akan kami gunakan.
DROP PROCEDURE GetEmployeesByDepartment
Langkah 2: Masukkan data sampel
Masukkan beberapa data sampel ke dalam jadual Pekerja.
CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY AUTO_INCREMENT, FirstName VARCHAR(50), LastName VARCHAR(50), DepartmentID INT, Salary DECIMAL(10, 2) );
Langkah 3: Buat prosedur tersimpan
Mari kita buat prosedur tersimpan untuk mendapatkan pekerja berdasarkan jabatan mereka.
INSERT INTO Employees (FirstName, LastName, DepartmentID, Salary) VALUES ('John', 'Doe', 1, 60000), ('Jane', 'Smith', 2, 65000), ('Sam', 'Brown', 1, 62000), ('Sue', 'Green', 3, 67000);
Langkah 4: Panggil prosedur tersimpan
Untuk memanggil prosedur tersimpan dan mendapatkan semula pekerja jabatan tertentu, gunakan pernyataan CALL.
CREATE PROCEDURE GetEmployeesByDepartment(IN depID INT) BEGIN SELECT EmployeeID, FirstName, LastName, DepartmentID, Salary FROM Employees WHERE DepartmentID = depID; END;
Pelayan SQL
Dalam SQL Server, penciptaan dan pelaksanaan prosedur tersimpan sedikit berbeza, tetapi tidak berubah secara drastik. Berikut ialah contoh:
Langkah 1: Buat Jadual Pekerja
Mula-mula, mari kita buat contoh jadual Pekerja.
CALL GetEmployeesByDepartment(1);
Langkah 2: Masukkan Data Sampel
Seterusnya, kami akan memasukkan beberapa data sampel ke dalam jadual Pekerja.
CREATE PROCEDURE procedure_name AS BEGIN -- SQL statements END
Langkah 3: Buat prosedur tersimpan
Mari kita buat prosedur tersimpan untuk mendapatkan pekerja berdasarkan jabatan mereka.
CREATE PROCEDURE GetEmployeesByDepartment @DepartmentID INT AS BEGIN SELECT EmployeeID, FirstName, LastName, DepartmentID, Salary FROM Employees WHERE DepartmentID = @DepartmentID; END;
Langkah 4: Laksanakan prosedur tersimpan
Untuk melaksanakan prosedur tersimpan dan mendapatkan semula pekerja jabatan tertentu, gunakan penyata EXEC.
EXEC GetEmployeesByDepartment @DepartmentID = 1;
Oracle
Oracle juga menyokong prosedur tersimpan. Berikut ialah panduan langkah demi langkah tentang cara melaksanakannya dalam Oracle menggunakan SQL.
Langkah 1: Buat Jadual Pekerja
Mula-mula, mari kita buat contoh jadual Pekerja.
ALTER PROCEDURE GetEmployeesByDepartment @DepartmentID INT, @MinSalary DECIMAL(10, 2) AS BEGIN SELECT EmployeeID, FirstName, LastName, DepartmentID, Salary FROM Employees WHERE DepartmentID = @DepartmentID AND Salary > @MinSalary; END;
Langkah 2: Masukkan Data Sampel
Seterusnya, kami memasukkan beberapa sampel data ke dalam jadual pekerja untuk membuat set data.
DROP PROCEDURE GetEmployeesByDepartment
Langkah 3: Buat prosedur tersimpan
Mari kita buat prosedur tersimpan untuk mendapatkan pekerja berdasarkan jabatan mereka.
CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY AUTO_INCREMENT, FirstName VARCHAR(50), LastName VARCHAR(50), DepartmentID INT, Salary DECIMAL(10, 2) );
Mereka bentuk prosedur tersimpan: amalan terbaik
Selepas melengkapkan pengenalan secara langsung ini, mari lihat beberapa amalan terbaik untuk mereka bentuk prosedur tersimpan.
Menggunakan pertanyaan berparameter
Pertanyaan berparameter dalam prosedur tersimpan membantu mencegah serangan suntikan SQL. Sentiasa gunakan parameter dan bukannya menggabungkan input pengguna terus ke dalam pernyataan SQL.
Sebagai contoh, jangan gunakan ini:
INSERT INTO Employees (FirstName, LastName, DepartmentID, Salary) VALUES ('John', 'Doe', 1, 60000), ('Jane', 'Smith', 2, 65000), ('Sam', 'Brown', 1, 62000), ('Sue', 'Green', 3, 67000);
Gunakan ini:
CREATE PROCEDURE GetEmployeesByDepartment(IN depID INT) BEGIN SELECT EmployeeID, FirstName, LastName, DepartmentID, Salary FROM Employees WHERE DepartmentID = depID; END;
Hadkan akses kepada jadual asas
Seperti yang dinyatakan sebelum ini, prosedur tersimpan boleh bertindak sebagai lapisan keselamatan dengan mengehadkan akses terus kepada jadual asas. Ini mengurangkan risiko data sensitif terdedah.
Optimumkan kod SQL
Untuk memastikan prosedur yang disimpan berjalan dengan cekap, prosedur tersebut harus dioptimumkan untuk prestasi. Ini bermakna mengurangkan pengiraan yang tidak perlu dan menggunakan indeks dengan baik. Anda boleh meningkatkan kecekapan pertanyaan dengan menganalisis pelan pelaksanaan pertanyaan untuk mengenal pasti dan menyelesaikan kesesakan prestasi.
Sebagai contoh, anda harus mengelak daripada menggunakan "PILIH *" untuk mendapatkan semula semua medan dalam jadual kerana ini meningkatkan jumlah data yang dipindahkan dan mengurangkan kecekapan. Sebaliknya, anda harus memilih hanya medan yang anda perlukan untuk mengecilkan skop pengambilan data untuk meningkatkan prestasi.
Dokumentasikan prosedur tersimpan anda
Kod pendokumentasian juga digunakan pada penulisan prosedur tersimpan. Ini penting untuk pembangun lain memahami peranan dan fungsi setiap prosedur. Ia juga menggalakkan konvensyen penamaan dan gaya pengekodan yang konsisten.
Proses ini boleh dicapai dengan menambahkan ulasan pada prosedur tersimpan atau mengekalkan dokumentasi yang berasingan. Contohnya:
CREATE PROCEDURE procedure_name AS BEGIN -- SQL statements END
Mengekalkan kawalan versi
Kawalan versi adalah penting untuk mengurus dan menjejaki perubahan pada prosedur yang disimpan. Adalah berguna untuk mengekalkan repositori yang mengandungi sejarah lengkap perubahan pada skrip prosedur tersimpan dan dokumentasinya. Ini bukan sahaja memudahkan untuk menjejaki semua pengubahsuaian, tetapi juga memastikan konsistensi merentas persekitaran penggunaan yang berbeza.
Fikiran akhir
Prosedur tersimpan ialah cara pengurusan pangkalan data yang cekap dan selamat. Mereka menawarkan beberapa faedah yang, apabila digunakan dengan amalan terbaik yang betul, boleh meningkatkan kecekapan dan keberkesanan analisis data dengan ketara dalam organisasi.
Komuniti
Pergi ke tapak web Chat2DB
? Sertai Komuniti Chat2DB
? Ikuti kami di X
? Cari kami di Discord
Atas ialah kandungan terperinci Apakah Prosedur Tersimpan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kedudukan MySQL dalam pangkalan data dan pengaturcaraan sangat penting. Ia adalah sistem pengurusan pangkalan data sumber terbuka yang digunakan secara meluas dalam pelbagai senario aplikasi. 1) MySQL menyediakan fungsi penyimpanan data, organisasi dan pengambilan data yang cekap, sistem sokongan web, mudah alih dan perusahaan. 2) Ia menggunakan seni bina pelanggan-pelayan, menyokong pelbagai enjin penyimpanan dan pengoptimuman indeks. 3) Penggunaan asas termasuk membuat jadual dan memasukkan data, dan penggunaan lanjutan melibatkan pelbagai meja dan pertanyaan kompleks. 4) Soalan -soalan yang sering ditanya seperti kesilapan sintaks SQL dan isu -isu prestasi boleh disahpepijat melalui arahan jelas dan log pertanyaan perlahan. 5) Kaedah pengoptimuman prestasi termasuk penggunaan indeks rasional, pertanyaan yang dioptimumkan dan penggunaan cache. Amalan terbaik termasuk menggunakan urus niaga dan preparedStatemen

MySQL sesuai untuk perusahaan kecil dan besar. 1) Perniagaan kecil boleh menggunakan MySQL untuk pengurusan data asas, seperti menyimpan maklumat pelanggan. 2) Perusahaan besar boleh menggunakan MySQL untuk memproses data besar dan logik perniagaan yang kompleks untuk mengoptimumkan prestasi pertanyaan dan pemprosesan transaksi.

InnoDB secara berkesan menghalang pembacaan hantu melalui mekanisme utama. 1) Kekunci seterusnya menggabungkan kunci baris dan kunci jurang untuk mengunci rekod dan jurang mereka untuk mengelakkan rekod baru daripada dimasukkan. 2) Dalam aplikasi praktikal, dengan mengoptimumkan pertanyaan dan menyesuaikan tahap pengasingan, persaingan kunci dapat dikurangkan dan prestasi konkurensi dapat ditingkatkan.

MySQL bukan bahasa pengaturcaraan, tetapi bahasa pertanyaannya SQL mempunyai ciri -ciri bahasa pengaturcaraan: 1. SQL menyokong penghakiman bersyarat, gelung dan operasi berubah -ubah; 2. Melalui prosedur, pencetus dan fungsi yang disimpan, pengguna boleh melakukan operasi logik yang kompleks dalam pangkalan data.

MySQL adalah sistem pengurusan pangkalan data relasi sumber terbuka, terutamanya digunakan untuk menyimpan dan mengambil data dengan cepat dan boleh dipercayai. Prinsip kerjanya termasuk permintaan pelanggan, resolusi pertanyaan, pelaksanaan pertanyaan dan hasil pulangan. Contoh penggunaan termasuk membuat jadual, memasukkan dan menanyakan data, dan ciri -ciri canggih seperti Operasi Join. Kesalahan umum melibatkan sintaks SQL, jenis data, dan keizinan, dan cadangan pengoptimuman termasuk penggunaan indeks, pertanyaan yang dioptimumkan, dan pembahagian jadual.

MySQL adalah sistem pengurusan pangkalan data sumber terbuka yang sesuai untuk penyimpanan data, pengurusan, pertanyaan dan keselamatan. 1. Ia menyokong pelbagai sistem operasi dan digunakan secara meluas dalam aplikasi web dan bidang lain. 2. Melalui seni bina pelanggan-pelayan dan enjin penyimpanan yang berbeza, MySQL memproses data dengan cekap. 3. Penggunaan asas termasuk membuat pangkalan data dan jadual, memasukkan, menanyakan dan mengemas kini data. 4. Penggunaan lanjutan melibatkan pertanyaan kompleks dan prosedur yang disimpan. 5. Kesilapan umum boleh disahpepijat melalui pernyataan yang dijelaskan. 6. Pengoptimuman Prestasi termasuk penggunaan indeks rasional dan pernyataan pertanyaan yang dioptimumkan.

MySQL dipilih untuk prestasi, kebolehpercayaan, kemudahan penggunaan, dan sokongan komuniti. 1.MYSQL Menyediakan fungsi penyimpanan dan pengambilan data yang cekap, menyokong pelbagai jenis data dan operasi pertanyaan lanjutan. 2. Mengamalkan seni bina pelanggan-pelayan dan enjin penyimpanan berganda untuk menyokong urus niaga dan pengoptimuman pertanyaan. 3. Mudah digunakan, menyokong pelbagai sistem operasi dan bahasa pengaturcaraan. 4. Mempunyai sokongan komuniti yang kuat dan menyediakan sumber dan penyelesaian yang kaya.

Mekanisme kunci InnoDB termasuk kunci bersama, kunci eksklusif, kunci niat, kunci rekod, kunci jurang dan kunci utama seterusnya. 1. Kunci dikongsi membolehkan urus niaga membaca data tanpa menghalang urus niaga lain dari membaca. 2. Kunci eksklusif menghalang urus niaga lain daripada membaca dan mengubah suai data. 3. Niat Kunci mengoptimumkan kecekapan kunci. 4. Rekod Rekod Kunci Kunci Rekod. 5. Gap Lock Locks Index Rakaman Gap. 6. Kunci kunci seterusnya adalah gabungan kunci rekod dan kunci jurang untuk memastikan konsistensi data.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan