Wozu dient der MySQL-Cursor?
In MySQL fungieren Cursor als Zeiger und werden hauptsächlich zum Durchlaufen der Datensatzergebnismenge verwendet, die durch Abfragen der Datenbank zurückgegeben wird, um entsprechende Vorgänge auszuführen. Ein Cursor ist eigentlich ein Mechanismus, der jeweils einen Datensatz aus einer Ergebnismenge extrahiert, die mehrere Datensätze enthält. Das relationale Datenbankverwaltungssystem ist im Wesentlichen satzorientiert. In MySQL gibt es keine Ausdrucksform zur Beschreibung eines einzelnen Datensatzes in der Tabelle, es sei denn, die WHERE-Klausel wird verwendet, um die Auswahl nur eines Datensatzes zu beschränken um einen einzelnen Datensatz auszuwählen.
Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.
MySQL-Cursor (Cursor)
Ein Cursor ist eigentlich ein Mechanismus, der jeweils einen Datensatz aus einem Ergebnissatz extrahieren kann, der mehrere Datensätze enthält.
Der Cursor fungiert als Zeiger.
Obwohl der Cursor alle Zeilen im Ergebnis durchlaufen kann, zeigt er jeweils nur auf eine Zeile.
Die Funktion des Cursors besteht darin, die durch Abfragen der Datenbank zurückgegebenen Datensätze zu durchlaufen, um entsprechende Vorgänge auszuführen.
Das relationale Datenbankverwaltungssystem ist im Wesentlichen satzorientiert. In MySQL gibt es keine Ausdrucksform zur Beschreibung eines einzelnen Datensatzes in der Tabelle, es sei denn, eine WHERE-Klausel wird verwendet, um die Auswahl nur eines Datensatzes zu beschränken. Daher müssen wir manchmal Cursor verwenden, um Daten in einem einzelnen Datensatz zu verarbeiten.
Im Allgemeinen wird der Cursor verwendet, um eine bestimmte Zeile des Ergebnissatzes zu finden und die Daten zu ändern.
Verwendung des Cursors
1. Deklarieren Sie einen Cursor: deklarieren Sie den Cursornamen CURSOR für die Tabelle;
(die Tabelle hier kann jede Sammlung sein, die Sie abfragen)declare 游标名称 CURSOR for table;
(这里的table可以是你查询出来的任意集合)
2、打开定义的游标:open 游标名称;
3、获得下一行数据:FETCH 游标名称 into testrangeid,versionid;
4、需要执行的语句(增删改查):这里视具体情况而定
5、释放游标:CLOSE 游标名称;
open Cursor Name;
3. Holen Sie sich die nächste Datenzeile: FETCH Cursor Name into testrangeid,versionid;
Anweisungen, die ausgeführt werden müssen (add , löschen, ändern, prüfen) ): Dies hängt von der jeweiligen Situation ab5. Lassen Sie den Cursor los: Cursorname schließen;
Hinweis: Jeder Satz der gespeicherten MySQL-Prozedur muss mit beendet werden; , und die verwendeten temporären Felder müssen verwendet werden, bevor der Cursor definiert wird.
- BEGIN --定义变量 declare testrangeid BIGINT; declare versionid BIGINT; declare done int; --创建游标,并存储数据 declare cur_test CURSOR for select id as testrangeid,version_id as versionid from tp_testrange; --游标中的内容执行完后将done设置为1 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1; --打开游标 open cur_test; --执行循环 posLoop:LOOP --判断是否结束循环 IF done=1 THEN LEAVE posLoop; END IF; --取游标中的值 FETCH cur_test into testrangeid,versionid; --执行更新操作 update tp_data_execute set version_id=versionid where testrange_id = testrangeid; END LOOP posLoop; --释放游标 CLOSE cur_test; END -
Beispiel 2:
Wir werden nun eine gespeicherte Prozedur verwenden, um eine Funktion zu erstellen, die den Gesamtbestand an iPhones zählt und die Gesamtsumme an die Konsole ausgibt.
--在windows系统中写存储过程时,如果需要使用declare声明变量,需要添加这个关键字,否则会报错。 delimiter // drop procedure if exists StatisticStore; CREATE PROCEDURE StatisticStore() BEGIN --创建接收游标数据的变量 declare c int; declare n varchar(20); --创建总数变量 declare total int default 0; --创建结束标志变量 declare done int default false; --创建游标 declare cur cursor for select name,count from store where name = 'iphone'; --指定游标循环结束时的返回值 declare continue HANDLER for not found set done = true; --设置初始值 set total = 0; --打开游标 open cur; --开始循环游标里的数据 read_loop:loop --根据游标当前指向的一条数据 fetch cur into n,c; --判断游标的循环是否结束 if done then leave read_loop; --跳出游标循环 end if; --获取一条数据时,将count值进行累加操作,这里可以做任意你想做的操作, set total = total + c; --结束游标循环 end loop; --关闭游标 close cur; --输出结果 select total; END; --调用存储过程 call StatisticStore();
fetch dient dazu, die Datenzeile abzurufen, auf die der Cursor aktuell zeigt, und den Zeiger auf die nächste Zeile zu verweisen. Wenn der Cursor bereits auf die letzte Zeile zeigt, führt dies zu einem Überlauf des Cursors.
Bei Verwendung eines Schleifencursors wird nicht überwacht, ob das letzte Datenelement erreicht wurde. Das Schreiben des Codes wie folgt führt zu einer Endlosschleife.read_loop:loop fetch cur into n,c; set total = total+c; end loop;
declare continue HANDLER for not found set done = true;
--判断游标的循环是否结束 if done then leave read_loop; --跳出游标循环 end if;
- VerwendungEs gibt drei Möglichkeiten, Cursor zu verwenden:
- Die erste ist die obige Implementierung unter Verwendung der Schleifenschleife;
drop procedure if exists StatisticStore1; CREATE PROCEDURE StatisticStore1() BEGIN declare c int; declare n varchar(20); declare total int default 0; declare done int default false; declare cur cursor for select name,count from store where name = 'iphone'; declare continue HANDLER for not found set done = true; set total = 0; open cur; fetch cur into n,c; while(not done) do set total = total + c; fetch cur into n,c; end while; close cur; select total; END; call StatisticStore1();
drop procedure if exists StatisticStore2; CREATE PROCEDURE StatisticStore2() BEGIN declare c int; declare n varchar(20); declare total int default 0; declare done int default false; declare cur cursor for select name,count from store where name = 'iphone'; declare continue HANDLER for not found set done = true; set total = 0; open cur; repeat fetch cur into n,c; if not done then set total = total + c; end if; until done end repeat; close cur; select total; END; call StatisticStore2();
Cursor-Verschachtelung
In MySQL ist jeder Anfangs-End-Block ein unabhängiger Bereichsbereich, da dasselbe Fehlerereignis in MySQL nur einmal definiert werden kann. Wenn mehrere Definitionen vorhanden sind, werden Sie während der Kompilierung aufgefordert, den im selben Block deklarierten Handler zu duplizieren.
drop procedure if exists StatisticStore3; CREATE PROCEDURE StatisticStore3() BEGIN declare _n varchar(20); declare done int default false; declare cur cursor for select name from store group by name; declare continue HANDLER for not found set done = true; open cur; read_loop:loop fetch cur into _n; if done then leave read_loop; end if; begin declare c int; declare n varchar(20); declare total int default 0; declare done int default false; declare cur cursor for select name,count from store where name = 'iphone'; declare continue HANDLER for not found set done = true; set total = 0; open cur; iphone_loop:loop fetch cur into n,c; if done then leave iphone_loop; end if; set total = total + c; end loop; close cur; select _n,n,total; end; begin declare c int; declare n varchar(20); declare total int default 0; declare done int default false; declare cur cursor for select name,count from store where name = 'android'; declare continue HANDLER for not found set done = true; set total = 0; open cur; android_loop:loop fetch cur into n,c; if done then leave android_loop; end if; set total = total + c; end loop; close cur; select _n,n,total; end; begin end; end loop; close cur; END; call StatisticStore3();
set @sqlStr='select * from table where condition1 = ?'; prepare s1 for @sqlStr; --如果有多个参数用逗号分隔 execute s1 using @condition1; --手工释放,或者是 connection 关闭时, server 自动回收 deallocate prepare s1;
Das obige ist der detaillierte Inhalt vonWozu dient der MySQL-Cursor?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

MySQL ist ein Open Source Relational Database Management -System, das hauptsächlich zum schnellen und zuverlässigen Speicher und Abrufen von Daten verwendet wird. Sein Arbeitsprinzip umfasst Kundenanfragen, Abfragebedingungen, Ausführung von Abfragen und Rückgabergebnissen. Beispiele für die Nutzung sind das Erstellen von Tabellen, das Einsetzen und Abfragen von Daten sowie erweiterte Funktionen wie Join -Operationen. Häufige Fehler umfassen SQL -Syntax, Datentypen und Berechtigungen sowie Optimierungsvorschläge umfassen die Verwendung von Indizes, optimierte Abfragen und die Partitionierung von Tabellen.

Redis verwendet eine einzelne Gewindearchitektur, um hohe Leistung, Einfachheit und Konsistenz zu bieten. Es wird E/A-Multiplexing, Ereignisschleifen, nicht blockierende E/A und gemeinsame Speicher verwendet, um die Parallelität zu verbessern, jedoch mit Einschränkungen von Gleichzeitbeschränkungen, einem einzelnen Ausfallpunkt und ungeeigneter Schreib-intensiver Workloads.

MySQL wird für seine Leistung, Zuverlässigkeit, Benutzerfreundlichkeit und Unterstützung der Gemeinschaft ausgewählt. 1.MYSQL bietet effiziente Datenspeicher- und Abruffunktionen, die mehrere Datentypen und erweiterte Abfragevorgänge unterstützen. 2. Übernehmen Sie die Architektur der Client-Server und mehrere Speichermotoren, um die Transaktion und die Abfrageoptimierung zu unterstützen. 3. Einfach zu bedienend unterstützt eine Vielzahl von Betriebssystemen und Programmiersprachen. V.

Die Position von MySQL in Datenbanken und Programmierung ist sehr wichtig. Es handelt sich um ein Open -Source -Verwaltungssystem für relationale Datenbankverwaltung, das in verschiedenen Anwendungsszenarien häufig verwendet wird. 1) MySQL bietet effiziente Datenspeicher-, Organisations- und Abruffunktionen und unterstützt Systeme für Web-, Mobil- und Unternehmensebene. 2) Es verwendet eine Client-Server-Architektur, unterstützt mehrere Speichermotoren und Indexoptimierung. 3) Zu den grundlegenden Verwendungen gehören das Erstellen von Tabellen und das Einfügen von Daten, und erweiterte Verwendungen beinhalten Multi-Table-Verknüpfungen und komplexe Abfragen. 4) Häufig gestellte Fragen wie SQL -Syntaxfehler und Leistungsprobleme können durch den Befehl erklären und langsam abfragen. 5) Die Leistungsoptimierungsmethoden umfassen die rationale Verwendung von Indizes, eine optimierte Abfrage und die Verwendung von Caches. Zu den Best Practices gehört die Verwendung von Transaktionen und vorbereiteten Staten

Eine effektive Überwachung von Redis -Datenbanken ist entscheidend für die Aufrechterhaltung einer optimalen Leistung, die Identifizierung potenzieller Engpässe und die Gewährleistung der Zuverlässigkeit des Gesamtsystems. Redis Exporteur Service ist ein leistungsstarkes Dienstprogramm zur Überwachung von Redis -Datenbanken mithilfe von Prometheus. In diesem Tutorial führt Sie die vollständige Setup und Konfiguration des Redis -Exporteur -Dienstes, um sicherzustellen, dass Sie nahtlos Überwachungslösungen erstellen. Durch das Studium dieses Tutorials erhalten Sie voll funktionsfähige Überwachungseinstellungen

Die Methoden zum Anzeigen von SQL -Datenbankfehlern sind: 1. Fehlermeldungen direkt anzeigen; 2. Verwenden Sie Showfehler und Warnungsbefehle anzeigen; 3.. Greifen Sie auf das Fehlerprotokoll zu. 4. Verwenden Sie Fehlercodes, um die Ursache des Fehlers zu finden. 5. Überprüfen Sie die Datenbankverbindung und die Abfrage -Syntax. 6. Verwenden Sie Debugging -Tools.

Apache verbindet eine Verbindung zu einer Datenbank erfordert die folgenden Schritte: Installieren Sie den Datenbanktreiber. Konfigurieren Sie die Datei web.xml, um einen Verbindungspool zu erstellen. Erstellen Sie eine JDBC -Datenquelle und geben Sie die Verbindungseinstellungen an. Verwenden Sie die JDBC -API, um über den Java -Code auf die Datenbank zuzugreifen, einschließlich Verbindungen, Erstellen von Anweisungen, Bindungsparametern, Ausführung von Abfragen oder Aktualisierungen und Verarbeitungsergebnissen.
