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

MySQL-DatentypBedeutung
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
Link to original

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.