Rumah >pangkalan data >tutorial mysql >Mari kita bincangkan tentang beberapa contoh prosedur dan fungsi MySQL

Mari kita bincangkan tentang beberapa contoh prosedur dan fungsi MySQL

PHPz
PHPzasal
2023-04-20 10:14:53622semak imbas

MySQL ialah sistem pengurusan pangkalan data hubungan sumber terbuka yang digunakan secara meluas. MySQL boleh digunakan untuk menyimpan dan mengurus data, menyokong berbilang bahasa pengaturcaraan dan sistem pengendalian, dan sangat berskala.

Prosedur dan fungsi MySQL ialah alatan berguna yang membolehkan pembangun menulis dan mengatur pertanyaan SQL yang kompleks secara berstruktur. Prosedur tersimpan MySQL ialah blok kod yang terdiri daripada satu siri pernyataan SQL. Fungsi juga merupakan blok kod, tetapi ia hanya mengembalikan nilai.

Artikel ini akan memperkenalkan penciptaan dan panggilan prosedur dan fungsi dalam MySQL, serta cara menulis prosedur dan fungsi tersimpan. Artikel ini juga akan memberikan beberapa contoh prosedur dan fungsi MySQL untuk membantu pembaca lebih memahami penggunaan fungsi ini.

Buat prosedur dan fungsi MySQL

MySQL menyediakan dua arahan, CREATE PROCEDURE dan CREATE FUNCTION, untuk mencipta prosedur dan fungsi tersimpan. Perintah ini memerlukan menyatakan nama dan parameter prosedur atau fungsi dan pernyataan SQL yang boleh terkandung dalam prosedur atau fungsi itu.

Sintaks untuk mencipta prosedur tersimpan adalah seperti berikut:

CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE sp_name ([proc_parameter[,...]])
BEGIN
    proc_body;
END;

Antaranya, parameter DEFINER menentukan siapa yang mempunyai pemilikan proses, yang lalai kepada pengguna semasa. Kata kunci PROCEDURE diikuti dengan nama prosedur, dan parameter prosedur dinyatakan dalam kurungan.

Berikut ialah prosedur tersimpan MySQL yang ringkas:

CREATE PROCEDURE simple_sp (IN x INT, OUT y INT)
BEGIN
    SET y = x * x;
END;

Nama prosedur yang disimpan ialah simple_sp Prosedur menggunakan parameter input x dan parameter output y input Kuadrat bagi parameter x diberikan kepada parameter output y.

Sintaks untuk mencipta fungsi adalah serupa dengan mencipta prosedur tersimpan. Berikut ialah fungsi MySQL yang ringkas:

CREATE FUNCTION simple_func (x INT) RETURNS INT
BEGIN
    RETURN x * x;
END;

Nama fungsi ialah simple_func, yang mengambil parameter input x dan mengembalikan kuasa dua parameter.

Panggil prosedur dan fungsi MySQL

Kaedah memanggil prosedur dan fungsi tersimpan adalah sama. Gunakan pernyataan CALL dan hantar parameter prosedur atau fungsi kepada pernyataan. Berikut ialah contoh memanggil prosedur tersimpan simple_sp:

CALL simple_sp(3, @y);
SELECT @y;

Pernyataan di atas akan mengeluarkan nilai y ke skrin selepas mengira kuasa dua x dan menyimpan hasilnya dalam pembolehubah y.

Sintaks untuk memanggil fungsi simple_func adalah serupa:

SELECT simple_func(3);

Pernyataan ini akan memanggil fungsi simple_func dan mengembalikan kuasa dua 3.

Menulis prosedur dan fungsi tersimpan MySQL

Prosedur dan fungsi MySQL boleh mengandungi berbilang penyataan SQL dan penyataan kawalan aliran, termasuk penyataan IF, penyataan LOOP dan penyataan WHILE, dsb.

Berikut ialah contoh prosedur tersimpan MySQL yang akan memilih pekerja dengan gaji tertinggi daripada jadual pekerja:

CREATE PROCEDURE get_highest_salary ()
BEGIN
    DECLARE highest_salary DECIMAL(10,2);
    DECLARE emp_id INT;
    
    SELECT MAX(salary) INTO highest_salary FROM employees;
    SELECT id INTO emp_id FROM employees WHERE salary = highest_salary;
    
    SELECT * FROM employees WHERE id = emp_id;
END;

Prosedur tersimpan akan mengisytiharkan dua pembolehubah, highest_gaji dan emp_id , Kemudian dapatkan gaji tertinggi dari jadual pekerja. Simpan gaji maksimum dalam pembolehubah gaji_tertinggi melalui penyata SELECT dan simpan ID pekerja dengan gaji tertinggi itu dalam pembolehubah emp_id menggunakan penyata SELECT yang lain. Akhirnya, proses memilih semua butiran pekerja dengan gaji tertinggi.

Berikut ialah contoh fungsi MySQL yang akan mengembalikan bilangan pekerja dalam jadual pekerja berdasarkan parameter umur yang diberikan:

CREATE FUNCTION get_employee_count (age INT) RETURNS INT
BEGIN
    DECLARE employee_count INT;
    
    SELECT COUNT(*) INTO employee_count FROM employees WHERE age = age;
    
    RETURN employee_count;
END;

Fungsi ini akan mengisytiharkan bilangan pekerja berubah, menggunakan SELECT Penyata mengira bilangan pekerja dengan umur tertentu dan mengembalikan nilai tersebut.

Kesimpulan

Prosedur dan fungsi MySQL ialah alatan berguna yang membolehkan pembangun menulis dan mengatur pertanyaan SQL yang kompleks secara berstruktur. Prosedur dan fungsi yang disimpan boleh mengandungi berbilang pernyataan SQL dan pernyataan kawalan aliran, menjadikan kod lebih fleksibel dan boleh diselenggara. Artikel ini memperkenalkan pengetahuan asas untuk mencipta, memanggil dan menulis prosedur dan fungsi tersimpan dalam MySQL, dan menyediakan beberapa contoh untuk membantu pembaca lebih memahami penggunaan fungsi ini.

Atas ialah kandungan terperinci Mari kita bincangkan tentang beberapa contoh prosedur dan fungsi MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn