Artikel ini menerangkan fungsi SQL, menekankan peranan mereka dalam mewujudkan blok kod yang boleh diguna semula. IT memperincikan penciptaan fungsi, termasuk pengendalian parameter dan pengurusan jenis data, dan meneroka fungsi skalar dan agregat. Pengoptimuman Prestasi
Fungsi SQL membolehkan anda merangkumi blok kod yang boleh diguna semula, mempromosikan modulariti dan mengurangkan kelebihan. Ini adalah penting untuk mengekalkan pangkalan data yang bersih, cekap, dan mudah difahami. Mewujudkan fungsi melibatkan menentukan nama, parameter input (jika ada), jenis pulangan, dan kod yang melakukan operasi yang dikehendaki. Sintaks berbeza sedikit bergantung pada dialek SQL tertentu (misalnya, MySQL, PostgreSQL, SQL Server), tetapi konsep teras tetap sama.
Mari kita gambarkan dengan contoh mudah dalam PostgreSQL: Katakan kita sering perlu mengira jumlah harga item termasuk cukai jualan 10%. Daripada menulis pengiraan berulang kali dalam pertanyaan yang berbeza, kita boleh membuat fungsi:
<code class="sql">CREATE OR REPLACE FUNCTION calculate_total_price(price numeric) RETURNS numeric AS $$ BEGIN RETURN price * 1.10; END; $$ LANGUAGE plpgsql;</code>
Ini mewujudkan fungsi yang dinamakan calculate_total_price
yang mengambil price
angka sebagai input dan mengembalikan jumlah harga selepas menambah cukai 10%. Klausa LANGUAGE plpgsql
menentukan bahawa fungsi itu ditulis dalam PL/PGSQL, bahasa prosedur PostgreSQL. Kami kemudian boleh menggunakan fungsi ini dalam pertanyaan kami:
<code class="sql">SELECT calculate_total_price(100); -- Returns 110 SELECT item_name, calculate_total_price(item_price) AS total_price FROM items; -- Applies the function to each row in the 'items' table</code>
Ini menunjukkan bagaimana fungsi merangkumi pengiraan cukai, menjadikan pertanyaan utama bersih dan lebih mudah dibaca. Fungsi ini boleh diubah suai dengan mudah (contohnya, mengubah kadar cukai) tanpa mengubah setiap pertanyaan yang menggunakannya.
Fungsi SQL umumnya jatuh ke dalam dua kategori yang luas: fungsi skalar dan fungsi agregat. Terdapat juga variasi dalam kategori ini bergantung kepada sistem pangkalan data tertentu.
Fungsi Skalar: Fungsi ini beroperasi pada baris individu dan mengembalikan nilai tunggal untuk setiap baris. Mereka sesuai untuk pengiraan atau transformasi yang digunakan untuk titik data individu. calculate_total_price
Contoh kami di atas adalah fungsi skalar. Contoh lain termasuk fungsi untuk tarikh format, menukar jenis data, atau melakukan manipulasi rentetan.
Fungsi agregat: Fungsi ini beroperasi pada satu set baris dan mengembalikan nilai tunggal yang meringkaskan keseluruhan set. Fungsi agregat biasa termasuk SUM
, AVG
, COUNT
, MIN
, MAX
. Ini digunakan untuk meringkaskan data merentasi pelbagai baris. Sebagai contoh, SELECT AVG(salary) FROM employees;
Mengira purata gaji semua pekerja.
Jenis lain (bergantung kepada sistem pangkalan data): Sesetengah sistem pangkalan data juga menyokong fungsi bernilai jadual, yang mengembalikan jadual sebagai hasilnya. Ini berguna untuk menghasilkan hasil yang kompleks atau menggabungkan data dari pelbagai jadual. Prosedur yang disimpan, sementara selalunya sama dalam fungsi ke fungsi, biasanya melakukan tindakan yang lebih kompleks yang melibatkan pelbagai penyata SQL dan tidak semestinya mengembalikan nilai.
Pengoptimuman prestasi fungsi SQL adalah penting untuk mengekalkan kecekapan pangkalan data. Berikut adalah beberapa strategi utama:
WHERE
klausa atau bergabung dalam fungsi. Indeks secara dramatik mempercepatkan pengambilan data. Ya, anda boleh lulus parameter ke fungsi SQL, seperti yang ditunjukkan dalam contoh calculate_total_price
. Keupayaan untuk mengendalikan pelbagai jenis data adalah penting untuk fungsi yang fleksibel dan boleh diguna semula.
Parameter lulus dilakukan dengan menentukan nama parameter dan jenis data dalam definisi fungsi. Jenis data mesti sepadan dengan jenis nilai yang diluluskan apabila memanggil fungsi. Kebanyakan dialek SQL menyediakan mekanisme untuk mengendalikan jenis data yang berbeza:
CREATE FUNCTION my_function (param1 INTEGER, param2 VARCHAR(255)) ...
TRY...CATCH
blok (jika disokong oleh sistem pangkalan data).Ingatlah bahawa sintaks dan keupayaan spesifik untuk parameter lulus dan pengendalian jenis data mungkin berbeza -beza sedikit di seluruh sistem pangkalan data SQL yang berbeza. Rujuk dokumentasi pangkalan data anda untuk maklumat terperinci.
Atas ialah kandungan terperinci Bagaimanakah saya menggunakan fungsi dalam SQL untuk membuat blok kod yang boleh diguna semula?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!