Mysql变量、游标及存储过程的应用
Mysql自5.0起就支持存储过程,存储过程通俗的讲就是在一段封装过的SQL,但不仅仅只有SQL那么简单,通常还会有变量、条件判断、循环体,游标等。
存储过程的作用
在很多场景中,需要将多个表的数据处理,来产生新的我们需要的数据。这些多个表的数据并不能通过连接等查询方式给出,只能通过判断和循环才能产生。这个时候,就可以利用存储过程来实现。
此外,存储过程还有一些好处,比如性能比较高,还有能减少网络请求。如果不用存储过程来实现的话,使用php来实现就需要调用多次mysql,产生多次请求。
当然,存储过程也不是没有缺点的,它比较哪调式,另外不支持集群。
创建存储过程
创建存储过程语法如下:
CREATE PROCEDURE 过程名(参数) BEGIN 过程体 END
关于参数,设置参数语法为
[IN|OUT|INOUT] 参数名 类型
IN 表示该变量只能在过程体内使用
OUT 表示该变量只能在过程体外使用
INOUT 表示在过程体内和体外都能使用
下面,我们来创建一个最简单的存储过程。
CREATE PROCEDURE p1(IN x INT) BEGIN SELECT x; END;
变量
在MySQL中变量分为全局变量和局部变量。
全局变量以@开头,无需声明,直接使用即可,如
SET @name='gwx';
局部变量需要先声明,局部变量的初始化方法如下:
DECLARE x int DEFAULT 0;
下面我们来完成一个存储过程:根据路程计算车费,3公里内按6远计算,超过的距离按每公里1.2元计算.
-- distance 路程 CREATE PROCEDURE p1(in distance FLOAT) BEGIN DECLARE d_money FLOAT DEFAULT 0; IF distance>3 THEN SET d_money=6+(distance-3)*1.2; ELSE SET d_money=6; END IF; SELECT d_money; END;
游标
拿php做比较,游标有点想foreach,每次循环获取一条记录。
定义一个游标:
declare 游标名 CURSOR FOR SELECT 语句
开启关闭游标:
open 游标名
close 游标名
取游标数据:
FETCH 游标名 INTO 变量名
可以这么简单的介绍,大家会有疑惑,不清楚应该如何去使用。下面,来看一个实例,从实例中学习如何使用游标。
用游标完成一个非常简单的功能,将test_cursor表中数字全部累加起来。
CREATE TABLE IF NOT EXISTS test_cursor( num1 INT(10) UNSIGNED NOT NULL DEFAULT 0, num2 INT(10) UNSIGNED NOT NULL DEFAULT 0 ); INSERT INTO test_cursor(num1,num2) VALUES(1,1),(2,2),(3,3); CREATE PROCEDURE `test_cursor`() BEGIN DECLARE sum INT(10) DEFAULT 0; DECLARE n1,n2 INT(10); DECLARE done INT DEFAULT 0; DECLARE cur CURSOR FOR SELECT num1,num2 FROM test_cursor; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1; OPEN cur; -- 打开游标 WHILE done=0 DO FETCH cur INTO n1,n2; IF done=0 THEN -- 注意这里为什么加IF条件,不加的话,最后一个值会被多加一遍 SET sum=sum+n1+n2; END IF; END WHILE; CLOSE cur; -- 关闭游标 SELECT sum; END
这里有几点需要注意,首先局部变量的定义必须要在声明游标前声明。
另外,这里DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1; 表示游标结束后将done设置为1,以结束循环。
Atas ialah kandungan terperinci Mysql变量、游标及存储过程的应用. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





Anda boleh membuka phpmyadmin melalui langkah -langkah berikut: 1. Log masuk ke panel kawalan laman web; 2. Cari dan klik ikon phpmyadmin; 3. Masukkan kelayakan MySQL; 4. Klik "Login".

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.

Redis menggunakan satu seni bina berulir untuk memberikan prestasi tinggi, kesederhanaan, dan konsistensi. Ia menggunakan I/O multiplexing, gelung acara, I/O yang tidak menyekat, dan memori bersama untuk meningkatkan keserasian, tetapi dengan batasan batasan konkurensi, satu titik kegagalan, dan tidak sesuai untuk beban kerja yang berintensifkan.

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 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.

Apache menyambung ke pangkalan data memerlukan langkah -langkah berikut: Pasang pemacu pangkalan data. Konfigurasikan fail web.xml untuk membuat kolam sambungan. Buat sumber data JDBC dan tentukan tetapan sambungan. Gunakan API JDBC untuk mengakses pangkalan data dari kod Java, termasuk mendapatkan sambungan, membuat kenyataan, parameter mengikat, melaksanakan pertanyaan atau kemas kini, dan hasil pemprosesan.

Proses memulakan MySQL di Docker terdiri daripada langkah -langkah berikut: Tarik imej MySQL untuk membuat dan memulakan bekas, tetapkan kata laluan pengguna root, dan memetakan sambungan pengesahan port Buat pangkalan data dan pengguna memberikan semua kebenaran ke pangkalan data

Memasang MySQL pada CentOS melibatkan langkah -langkah berikut: Menambah sumber MySQL YUM yang sesuai. Jalankan YUM Pasang Perintah MySQL-Server untuk memasang pelayan MySQL. Gunakan perintah mysql_secure_installation untuk membuat tetapan keselamatan, seperti menetapkan kata laluan pengguna root. Sesuaikan fail konfigurasi MySQL seperti yang diperlukan. Tune parameter MySQL dan mengoptimumkan pangkalan data untuk prestasi.
