Jadual Kandungan
Buat prosedur dan fungsi MySQL
Panggil prosedur dan fungsi MySQL
Menulis prosedur dan fungsi tersimpan MySQL
Kesimpulan
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

Apr 20, 2023 am 10:14 AM

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;
Salin selepas log masuk

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;
Salin selepas log masuk

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;
Salin selepas log masuk

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;
Salin selepas log masuk

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);
Salin selepas log masuk

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

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;
Salin selepas log masuk

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;
Salin selepas log masuk

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 Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table? Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table? Mar 19, 2025 pm 03:51 PM

Artikel ini membincangkan menggunakan pernyataan jadual Alter MySQL untuk mengubah suai jadual, termasuk menambah/menjatuhkan lajur, menamakan semula jadual/lajur, dan menukar jenis data lajur.

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL? Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL? Mar 18, 2025 pm 12:01 PM

Artikel membincangkan mengkonfigurasi penyulitan SSL/TLS untuk MySQL, termasuk penjanaan sijil dan pengesahan. Isu utama menggunakan implikasi keselamatan sijil yang ditandatangani sendiri. [Kira-kira aksara: 159]

Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)? Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)? Mar 21, 2025 pm 06:28 PM

Artikel membincangkan alat MySQL GUI yang popular seperti MySQL Workbench dan PHPMyAdmin, membandingkan ciri dan kesesuaian mereka untuk pemula dan pengguna maju. [159 aksara]

Bagaimana anda mengendalikan dataset besar di MySQL? Bagaimana anda mengendalikan dataset besar di MySQL? Mar 21, 2025 pm 12:15 PM

Artikel membincangkan strategi untuk mengendalikan dataset besar di MySQL, termasuk pembahagian, sharding, pengindeksan, dan pengoptimuman pertanyaan.

Terangkan keupayaan carian teks penuh InnoDB. Terangkan keupayaan carian teks penuh InnoDB. Apr 02, 2025 pm 06:09 PM

Keupayaan carian teks penuh InnoDB sangat kuat, yang dapat meningkatkan kecekapan pertanyaan pangkalan data dan keupayaan untuk memproses sejumlah besar data teks. 1) InnoDB melaksanakan carian teks penuh melalui pengindeksan terbalik, menyokong pertanyaan carian asas dan maju. 2) Gunakan perlawanan dan terhadap kata kunci untuk mencari, menyokong mod boolean dan carian frasa. 3) Kaedah pengoptimuman termasuk menggunakan teknologi segmentasi perkataan, membina semula indeks dan menyesuaikan saiz cache untuk meningkatkan prestasi dan ketepatan.

Bagaimana anda menjatuhkan jadual di MySQL menggunakan pernyataan jadual drop? Bagaimana anda menjatuhkan jadual di MySQL menggunakan pernyataan jadual drop? Mar 19, 2025 pm 03:52 PM

Artikel ini membincangkan jadual menjatuhkan di MySQL menggunakan pernyataan Jadual Drop, menekankan langkah berjaga -jaga dan risiko. Ia menyoroti bahawa tindakan itu tidak dapat dipulihkan tanpa sandaran, memperincikan kaedah pemulihan dan bahaya persekitaran pengeluaran yang berpotensi.

Bagaimana anda mewakili hubungan menggunakan kunci asing? Bagaimana anda mewakili hubungan menggunakan kunci asing? Mar 19, 2025 pm 03:48 PM

Artikel membincangkan menggunakan kunci asing untuk mewakili hubungan dalam pangkalan data, memberi tumpuan kepada amalan terbaik, integriti data, dan perangkap umum untuk dielakkan.

Bagaimana anda membuat indeks pada lajur JSON? Bagaimana anda membuat indeks pada lajur JSON? Mar 21, 2025 pm 12:13 PM

Artikel ini membincangkan membuat indeks pada lajur JSON dalam pelbagai pangkalan data seperti PostgreSQL, MySQL, dan MongoDB untuk meningkatkan prestasi pertanyaan. Ia menerangkan sintaks dan faedah mengindeks laluan JSON tertentu, dan menyenaraikan sistem pangkalan data yang disokong.

See all articles