diff --git a/SQL.md b/SQL.md index 696e709..5f555ed 100644 --- a/SQL.md +++ b/SQL.md @@ -33,7 +33,7 @@ Um alle Datensätze mit `amount` kleiner oder gleich 20 abzurufen, schreibt man: -## Unique values +### Unique values Angenommen man hat die folgende Tabelle: @@ -47,11 +47,11 @@ Angenommen man hat die folgende Tabelle: Man möchte alle Länder wissen, in denen das Produkt verkauft wurde. -Wenn man die normale Abfrage, die wir kennen, verwenden: `SELECT country from sales` liefert sie `Poland`, `Germany`, `Poland`. Das ist nicht das, wonach wir suchen, weil Polen zweimal wiederholt wird. +Wenn man die normale Abfrage, die man kennt, verwendet: `SELECT country from sales` liefert sie `Poland`, `Germany`, `Poland`. Das ist nicht das, wonach man sucht, weil Polen zweimal wiederholt wird. -Um es zu lösen, können wir das `DISTINCT`-Schlüsselwort verwenden: +Um es zu lösen, kann man das `DISTINCT`-Schlüsselwort verwenden: -## NOT +### NOT Das `NOT`-Schlüsselwort bedeutet, dass man nicht möchte, dass die Bedingung erfüllt wird. @@ -80,9 +80,58 @@ Das `NOT`-Schlüsselwort kehrt die Bedingung im Wesentlichen um. Zum Beispiel si `WHERE NOT age <= 20` -## Vorrang +### AND -`AND` geht vor `OR` +Das `AND`-Schlüsselwort bedeutet, dass **beide** Bedingungen wahr sein müssen; wenn eine von ihnen nicht der Fall ist, wird die Bedingung nicht erfüllt. + +Zum Beispiel ist hier eine `people`-Tabelle: + +| Name | Alter | Geschlecht | +| ------ | ----- | ---------- | +| Joas | 13 | männlich | +| Holwa | 17 | männlich | +| Nohlas | 24 | weiblich | +| Polar | 23 | männlich | +| Loopa | 18 | weiblich | + +Die folgende Abfrage: + +`SELECT * FROM people WHERE gender = "female" AND age < 20` + +bedeutet, dass man nach allen Datensätzen sucht, bei denen das Geschlecht „female“ ist und das Alter kleiner als 20 ist. + +Dies wird das Ergebnis sein: + +| Name | Alter | Geschlecht | +| ----- | ----- | ---------- | +| Loopa | 18 | weiblich | + +### OR + +Das `OR`-Schlüsselwort bedeutet, dass eine der Bedingungen wahr sein soll. + +Zum Beispiel betrachtet man die folgende **people**-Tabelle: + +| name | age | gender | +| ------ | ---- | ------ | +| Joas | 13 | male | +| Holwa | 17 | male | +| Nohlas | 24 | female | +| Polar | 23 | male | +| Loopa | 18 | female | + +`SELECT * FROM people WHERE gender = 'female' OR age < 20` + +Diese Abfrage bedeutet, dass man nach allen Datensätzen sucht, bei denen entweder das Geschlecht weiblich ist oder das Alter unter 20 liegt. + +Das wird das Ergebnis sein: + +| Name | Alter | Geschlecht | +| ------ | ----- | ---------- | +| Joas | 13 | männlich | +| Holwa | 17 | männlich | +| Nohlas | 24 | weiblich | +| Loopa | 18 | weiblich | ## Sortierung (ORDER BY)