Beruflich Dokumente
Kultur Dokumente
2 DML Commands
DML: Data Manipulation Language
Folgender Ausdruck:
lautet in MySQL:
1 SELECT A, B
2 FROM R, S
3 WHERE p
Vereinigung:
1 ( SELECT PrdNo , PrdDescr , Weight , P r i c e
2 FROM P r o d u c t s )
3 UNION
4 ( SELECT PrdNo , PrdDescr , Weight , P r i c e
5 FROM NewProducts )
Join:
(1) Wir haben zwei Tabellen, Orders und Customers, die das Attribut CusNo enthalten:
1 SELECT OrdNo , Orders . CusNo , Qty , ShipDate , CusName
2 FROM Orders , Customers
3 WHERE Orders . CusNo = Customers . CusNo
Die letzte Zeile stellt sicher, dass wir einen Join und kein normales Kreuzprdoukt erhalten.
(2) Mit konkretem JOIN Befehl:
1
1 SELECT OrdNo , CusNo , Qty , ShipDate , CusName
2 FROM Orders
3 JOIN ( SELECT CusNo AS CusCusNo , CusName
4 FROM Customers ) C
5 ON Orders . CusNo = C . CusCusNo
Falls im Join eine neuen Tabelle aus einer alten erstellt wird (mit SELECT, FROM, etc.) muss
dieser Tabelle ein Name gegeben werden. (In diesem Fall ’C’.) Das Attribut CusNo aus Customers
muss umbenannt werden, da wir am Ende ein CusNo auswählen und es keine zwei mit gleichem
Namen geben darf!
Duplikate vermeiden:
1 SELECT DISTINCT A
2 FROM R
Vergleichs-Prädikate:
_: beliebiges Zeichen
%: beliebige Zeichenfolge
Kunden deren Name mit A beginnt oder Z endet:
1 SELECT ∗
2 FROM Customers
3 WHERE CusName LIKE ’A% ’ OR CusName LIKE ’%Z ’
Produkte, die die Beschreibung ’P_A’ enthalten und mit einem beliebigen Zeichen enden: (der
Unterstrich steht nicht für ein beliebiges Zeichen!)
1 SELECT ∗ FROM PRODUCTS
2 WHERE PrdDescr LIKE ’%P\_A_’ ESCAPE ’ \ ’
Quantitative Prädikate:
Kunde(n) mit geringstem Rabatt:
1 SELECT ∗ FROM Customers
2 WHERE D i s c o u n t <= ALL ( SELECT D i s c o u n t FROM Customers )