SQL Distinct etc
This commit is contained in:
@@ -1,9 +1,84 @@
|
||||
# SQL
|
||||
## Distinct
|
||||
|
||||
Dubletten verhindern
|
||||
## Conditions Basics
|
||||
|
||||
`select distinct …`
|
||||
Manchmal möchten wir Datensätze abrufen, die eine bestimmte Bedingung erfüllen.
|
||||
|
||||
Zum Beispiel
|
||||
|
||||
- alle Datensätze abrufen, die den Familiennamen „Aothly“ haben
|
||||
|
||||
- alle Datensätze abrufen, bei denen der Betrag größer als 5 ist
|
||||
|
||||
- Alle Datensätze mit dem Land „Mexico“ abrufen
|
||||
|
||||
Um Bedingungen hinzuzufügen, können wir das `WHERE`-Schlüsselwort verwenden
|
||||
|
||||
Zum Beispiel hier ist eine **Verkäufe**-Tabelle:
|
||||
|
||||
| Münze | Menge |
|
||||
| ----- | ----- |
|
||||
| AGK | 13 |
|
||||
| GOL | 21 |
|
||||
| KLA | 15 |
|
||||
| AGK | 18 |
|
||||
|
||||
Um alle Datensätze mit der Coin „AGK“ abzurufen, schreibt man:
|
||||
|
||||
`SELECT * FROM sales WHERE coin = 'AGK'`
|
||||
|
||||
Um alle Datensätze mit `amount` kleiner oder gleich 20 abzurufen, schreibt man:
|
||||
|
||||
`SELECT * FROM sales WHERE amount <= 20`
|
||||
|
||||
|
||||
|
||||
## Unique values
|
||||
|
||||
Angenommen man hat die folgende Tabelle:
|
||||
|
||||
**Verkäufe**
|
||||
|
||||
| | Land | Stadt | Betrag |
|
||||
| ---- | ----------- | -------- | ------ |
|
||||
| 1 | Polen | Warschau | 13 |
|
||||
| 2 | Deutschland | Berlin | 24 |
|
||||
| 3 | Polen | Katowice | 56 |
|
||||
|
||||
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.
|
||||
|
||||
Um es zu lösen, können wir das `DISTINCT`-Schlüsselwort verwenden:
|
||||
|
||||
## NOT
|
||||
|
||||
Das `NOT`-Schlüsselwort bedeutet, dass man nicht möchte, dass die Bedingung erfüllt wird.
|
||||
|
||||
Zum Beispiel betrachte man die folgende **people**-Tabelle:
|
||||
|
||||
| Name | Alter | Geschlecht |
|
||||
| ------ | ----- | ---------- |
|
||||
| Joas | 13 | männlich |
|
||||
| Holwa | 17 | männlich |
|
||||
| Nohlas | 24 | weiblich |
|
||||
| Polar | 23 | männlich |
|
||||
| Loopa | 18 | weiblich |
|
||||
|
||||
`SELECT * FROM people WHERE NOT gender = 'male'`
|
||||
|
||||
Dies wird das Ergebnis sein:
|
||||
|
||||
| Name | Alter | Geschlecht |
|
||||
| ------ | ----- | ---------- |
|
||||
| Nohlas | 24 | weiblich |
|
||||
| Loopa | 18 | weiblich |
|
||||
|
||||
Das `NOT`-Schlüsselwort kehrt die Bedingung im Wesentlichen um. Zum Beispiel sind die folgenden Abfragen gleich:
|
||||
|
||||
`WHERE age > 20`
|
||||
|
||||
`WHERE NOT age <= 20`
|
||||
|
||||
## Vorrang
|
||||
|
||||
@@ -17,7 +92,7 @@ Dubletten verhindern
|
||||
|
||||
`DESC` --> Absteigend --< Größter Wert zuerst
|
||||
### Beispiele und Erklärung
|
||||
Beim Abfragen einer Datenbank kann die Organisation Ihrer Ergebnisse in einer sinnvollen Reihenfolge die Datenanalyse erheblich effizienter machen. Um das Ergebnis zu sortieren, verwenden wir das ORDER BY-Schlüsselwort und danach sollten wir angeben, nach welchem Feld wir sortieren. Standardmäßig sortiert es in aufsteigender Reihenfolge.
|
||||
Beim Abfragen einer Datenbank kann die Organisation der Ergebnisse in einer sinnvollen Reihenfolge die Datenanalyse erheblich effizienter machen. Um das Ergebnis zu sortieren, verwendet man das ORDER BY-Schlüsselwort und danach sollte man angeben, nach welchem Feld man sortiert. Standardmäßig sortiert es in aufsteigender Reihenfolge.
|
||||
|
||||
Zum Beispiel betrachten Sie die folgende **competition**-Tabelle:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user