Deklarieren
DECLARE <Name> <Datentyp> [DEFAULT <Initialisierungswert>];
SET <Name> = <Wert>;Beispiele
DELIMITER ||
CREATE PROCEDURE sp_demo_variables()
BEGIN
DECLARE v_int INT DEFAULT -10;
DECLARE v_int_positiv INT UNSIGNED default 300;
DECLARE v_bigint1 BIGINT DEFAULT 4000000000000000;
DECLARE v_float FLOAT DEFAULT 1.5e8;
DECLARE v_double DOUBLE DEFAULT 2e40;
DECLARE v_numeric NUMERIC(10,2) DEFAULT 21.35;
DECLARE v_date DATE DEFAULT '2021-09-14';
DECLARE v_datetime DATETIME DEFAULT '2021-09-14 23:59:59';
DECLARE v_char CHAR(255) DEFAULT 'immer 255 Zeichen';
DECLARE v_varchar VARCHAR(255) DEFAULT 'variabler Text';
DECLARE v_text TEXT DEFAULT 'Ein sehr langer Text';
END||
DELIMITER ;Werte setzen und ändern
DELIMITER ||
CREATE PROCEDURE sp_demo_variables_assignment()
BEGIN DECLARE i,j,k INTEGER; SET i = 10; -- Werte auf 10 setzen
SELECT i,j,k; -- Ausgabe: 10,NULL,NULL
SET i = 1, j = 2, k = 3; -- Werte ändern
SELECT i,j,k; -- Ausgabe: 1,2,3
END||
DELIMITER ;Datentypen
Datentypen in SQL
Link to original
MySQL-Datentyp Bedeutung TINYINT(m)8-Bit-Ganzzahl (-128 bis +127); die optionale Angabe m gibt die gewünschte Spaltenbreite bei der Ausgabe von SELECT-Ergebnissen an. SMALLINT(m)16-Bit-Ganzzahl (-32768 bis +32767) MEDIUMINT(m)24-Bit-Ganzzahl (-8388608 bis +8388607) INT(m),INTGER(m)32-Bit-Ganzzahl (-2147483648 bis +2147483647) BIGINT(m)64-Bit-Ganzzahl (+9,22*1018 ) SERIALGleiche Bedeutung wie BIGINT AUTO_INCREMENT NOT NULL PRIMARY KEY FLOAT(m,d)4-Byte-Fließkommazahl; m ist die Anzahl von Stellen insgesamt und d die Anzahl von Stellen nach dem Dezimalpunkt. DOUBLE(m,d)8-Byte-Fließkommazahl REAL(m,d)DECIMAL(p,s) NUMERIC(p,s) DECFestkommazahl; p gibt die gesamte Stellenanzahl an, s gibt die Anzahl der Nachkommastellen an. DATEDatum im Format jjjj-mm-tt z.B. 2008-11-20 TIMEZeit im Format hh:mm:ss z.B. 22:11:27 DATETIMEKombination aus DATE und TIME z.B. 2008-11-20 22:11:27 YEARJahreszahl im Bereich 1900-2155 TIMESTAMPDatum und Zeit im Format von DATETIME. Diese Zeitangabe wird von MySQL automatisch bei jeder Änderung aktualisiert. CHAR(n)Zeichenkette mit vorgegebener Länge n; maximaler Wert für n: 255 VARCHAR(n)Zeichenkette mit variabler Länge.Es sind maximal n Zeichen möglich. TINYTEXTZeichenkette mit variabler Länge bis zu 255 Zeichen TEXTZeichenkette mit variabler Länge bis zu 216-1 Zeichen MEDIUMTEXTZeichenkette mit variabler Länge bis zu 224-1 Zeichen LONGTEXTZeichenkette mit variabler Länge bis zu 232-1 Zeichen
Benutzervariablen
Sind im Prinzip Globale Variabeln
SELECT 'Ich bin eine Benutzer-Variable:' into @message;
SELECT @message;
SET @message = 5;Auf Benutzervariablen kann von überall zugegriffen werden.