Heim > Datenbank > MySQL-Tutorial > MySQL-Vorlesung 6: Prozesskontrolle

MySQL-Vorlesung 6: Prozesskontrolle

coldplay.xixi
Freigeben: 2021-03-01 09:10:01
nach vorne
2477 Leute haben es durchsucht

Kostenlose Lernempfehlung: MySQL-Video-Tutorial

MySQL-Vorlesung 6: ProzesskontrolleIF-Struktur

Schleifenstruktur Die Flusskontrolle in MySQL ähnelt der in anderen Programmiersprachen und ist ebenfalls in drei Typen unterteilt: Sequentielle Struktur, Zweigstruktur, Schleife Struktur Code>. Grundsätzlich werden im Folgenden hauptsächlich die in den vorherigen Artikeln verwendeten sequentiellen Strukturen (mit Ausnahme der IF-Funktion) vorgestellt.

Zweigstruktur

IF-Funktion
  • Syntax: IF (Ausdruck 1, Ausdruck 2, Ausdruck 3)
  • Beschreibung: Wenn Ausdruck 1 wahr ist, führen Sie Ausdruck 2 aus. Andernfalls Ausführungsausdruck 3

      Fallstruktur

    • Fallstruktur hat zwei Syntaxen:
    • Bildbeschreibung hier einfügen
    • Eigenschaften:
  • wird als Ausdruck verwendet
  • , verschachtelt in anderen Anweisungen, in BEGIN-ENDEs kann sowohl innerhalb von Code> als auch verwendet werden außerhalb von <code>BEGIN-END.

wird als eigenständige Anweisung 顺序结构分支结构循环结构。前几篇文章中用到的基本上都是顺序结构(除了IF函数),下面主要针对分支结构和循环结构进行介绍。

分支结构

IF函数

语法:IF(表达式1,表达式2,表达式3)
说明:如果表达式1成立,则执行表达式2,否则执行表达式3

case结构

case结构有两种语法:
MySQL-Vorlesung 6: Prozesskontrolle
特点:

  • 作为表达式使用,嵌套在其他语句中使用,在BEGIN-END中和BEGIN-END外都可以使用。
  • 作为独立的语句使用,只能放在BEGIN-END中。
  • 如果省略ELSE,且所有的WHEN都不满足,则返回null。
【演示case作为独立的语句】# 创建存储过程,根据传入的成绩,显示等级:90-100显示A 、 80-90显示B、60-80显示C、否则显示DCREATE PROCEDURE test_case(IN score INT)BEGIN
	CASE
	WHEN score>=90 AND score=80 THEN SELECT 'B';
	WHEN score>=60 THEN SELECT 'C';
	ELSE SELECT 'D';
	END CASE;END $CALL test_case(95)$
Nach dem Login kopieren

IF结构

语法:
if 条件1 then 语句1;
elseif 条件2 then 语句2;
...
[else 语句n;]
end if;

【演示IF结构】# 根据传入的成绩,显示等级:90-100显示A 、 80-90显示B、60-80显示C、否则显示DCREATE FUNCTION test_if(score INT) RETURNS CHARBEGIN
	IF score>=90 AND score=80 THEN RETURN 'B';
	ELSEIF score>=60 THEN RETURN 'C';
	ELSE RETURN 'D';
	END IF;END $SELECT test_if(61)$
Nach dem Login kopieren

循环结构

mysql中的循环结构有下面三种:

名称 语法 特点
while MySQL-Vorlesung 6: Prozesskontrolle 先判断后执行
repeat,类似Java中的do-wile语句 MySQL-Vorlesung 6: Prozesskontrolle 先执行后判断
loop MySQL-Vorlesung 6: Prozesskontrolle 没有条件的死循环

可以在循环控制中使用的关键字有iterate(类似于Java中的continue)和leave verwendet und kann nur in BEGIN-END platziert werden.

Wenn ELSE weggelassen wird und alle WHEN nicht erfüllt sind, wird null zurückgegeben.


【演示简单的循环结构】# 案例:批量插入,根据次数插入到admin表中多条记录.CREATE PROCEDURE pro_while1(IN insertCount INT)BEGIN
	DECLARE i INT DEFAULT 1;
	WHILE i20则停止TRUNCATE TABLE admin$DROP PROCEDURE test_while1$CREATE PROCEDURE test_while1(IN insertCount INT)BEGIN
	DECLARE i INT DEFAULT 1;
	a:WHILE i=20 THEN LEAVE a;
		END IF;
		SET i=i+1;
	END WHILE a;END $CALL test_while1(100)$--------------------------------------------------------------------------------------------【演示添加了iterate的语句】# 案例:批量插入,根据次数插入到admin表中,直插入偶数次CREATE PROCEDURE test_while2(IN insertCount INT)BEGIN
	DECLARE i INT DEFAULT 0;
	a:WHILE i<img src="https://img.php.cn/upload/article/000/000/052/824caf6adae3f27ef5f57d1863fc12a6-4.png" alt="MySQL-Vorlesung 6: Prozesskontrolle">IF-Struktur
Nach dem Login kopieren

Grammatik: wenn Bedingung 1, dann Anweisung 1;elseif Bedingung 2, dann Anweisung 2;.. .[else Statement n;]end if;

【习题答案】DROP TABLE IF EXISTS stringcontent;CREATE TABLE stringcontent(
	id INT PRIMARY KEY AUTO_INCREMENT,
	content VARCHAR(20)
	);DELIMITER $CREATE PROCEDURE test_pro1(IN insertCount INT)BEGIN
	DECLARE i INT DEFAULT 1;#定义一个循环变量i,表示插入次数
	DECLARE str VARCHAR(26) DEFAULT 'abcdefghijklmnopqrstuvwxyz';
	DECLARE strIndex INT DEFAULT 1;#代表起始索引
	DECLARE len INT DEFAULT 1;#代表截取的字符的长度
	WHILE i<h1>Schleifenstruktur</h1>Die Schleifenstrukturen in MySQL umfassen Folgendes drei Typ: 
Nach dem Login kopieren
Name Syntax Features
🎜while🎜 Bildbeschreibung hier einfügen Zuerst beurteilen und dann ausführen
🎜repeat🎜, ähnlich der do-wile-Anweisung in Java Bildbeschreibung hier einfügen Zuerst ausführen und dann beurteilen
🎜loop🎜 Bildbeschreibung hier einfügen Bedingungslose Endlosschleife
🎜Die Schlüsselwörter, die in der Schleifensteuerung verwendet werden können, sind iterate (ähnlich wie continue in Java) und leave (ähnlich wie break in Java)🎜rrreee🎜🎜Lernen Sie, den Prozess zu verstehen Um die Kontrolle über MySQL zu erlangen, versuchen Sie, die folgenden Übungen durchzuführen🎜🎜🎜🎜rrreee🎜🎜🎜Weitere verwandte kostenlose Lernempfehlungen:🎜🎜🎜MySQL-Tutorial🎜🎜🎜(Video)🎜🎜🎜

Das obige ist der detaillierte Inhalt vonMySQL-Vorlesung 6: Prozesskontrolle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage