Sie verwenden Variablen in MySQL -Abfragen, um Werte zu speichern, die aus der Datenbank abgerufen oder während der Abfrageausführung festgelegt wurden. Dies ermöglicht dynamische und wiederverwendbare Abfragen. Hier ist eine Aufschlüsselung, wie Variablen in MySQL verwendet werden:
1. Variablen deklarieren:
- benutzerdefinierte Variablen: Verwenden Sie das Symbol "@", gefolgt vom variablen Namen. Diese Variablen sind Sitzungsspezifische.
`` `SQL
Set @My_Variable ='Ein Wert';
`` `
- Lokale Variablen: In gespeicherten Verfahren oder Funktionen mit dem Schlüsselwort "deklarieren" deklariert. Diese haben einen begrenzten Umfang.
`` `SQL
Erstellen Sie die Prozedur my_procedure ()
BEGINNEN
Deklary Total_Orders int;
- ... Rest Ihres Verfahrens
ENDE;
`` `
2. Variablen zuweisen Werte zuweisen: Werte
- Verwenden von `set`:
`` `SQL
Set @User_id =123;
`` `
- aus einer Abfrage auswählen:
`` `SQL
Wählen Sie Graf (*) in @total_products aus Produkten aus;
`` `
- Innerhalb einer gespeicherten Prozedur oder Funktion:
`` `SQL
DECLARE product_name varchar (255);
Wählen Sie den Namen in product_name aus Produkten aus, wobei ID =1;
`` `
3. Verwenden von Variablen in Abfragen:
- in wo Klauseln:
`` `SQL
Wählen Sie * von Benutzern, wobei id =@User_id;
`` `
- In Auswahllisten:
`` `SQL
Wählen Sie den Namen @Discount_percentage * Preis als recotted_price aus Produkten;
`` `
- In Einfügen, Aktualisieren und Löschen von Anweisungen:
`` `SQL
Aktualisieren Sie Produkte set price =@new_price wobei id =@product_id;
`` `
Beispiel:
Nehmen wir an, Sie möchten alle Bestellungen eines Benutzer mit einer bestimmten Benutzer -ID finden und den Gesamtbestellwert berechnen:
`` `SQL
- Setzen Sie die Benutzer-ID
Set @User_id =1;
- Berechnen Sie den Gesamtbestellwert für den Benutzer
WÄHLEN
o.order_id,
Sum (oi.quantity * p.price) als total_order_value
Aus Bestellungen o
Join Order_items oi auf o.order_id =oi.order_id
Schließen Sie sich den Produkten P on oi.Product_id =P.ID an
Wo o.user_id =@user_id
Gruppe von o.order_id;
`` `
Diese Abfrage legt zunächst die Variable "@user_id" auf 1 fest. Dann wird diese Variable in der WHERE -Klausel verwendet, um Bestellungen mit ID 1 zu filtern.
Schlüsselpunkte:
-benutzerdefinierte Variablen sind Sitzungsspezifische und ihre Werte gehen beim Ende der Sitzung verloren.
- Lokale Variablen sind nur innerhalb der gespeicherten Prozedur oder Funktion zugänglich, in der sie deklariert werden.
- Vermeiden Sie die Verwendung der gleichen Variablennamen für benutzerdefinierte und lokale Variablen, um ein unerwartetes Verhalten zu verhindern.
- Verwenden Sie Variablen mit Bedacht, um die Lesbarkeit und Wiederverwendbarkeit von Abfragen zu verbessern.