SQL erweitert, neu: ansible, Linux umd passwd und shadows erweitert
This commit is contained in:
@@ -143,8 +143,6 @@ Das wird das Ergebnis sein:
|
||||
| Nohlas | 24 | weiblich |
|
||||
| Loopa | 18 | weiblich |
|
||||
|
||||
###################
|
||||
|
||||
## Kombination von Conditions
|
||||
|
||||
Das Erstellen einer Abfrage mit nur einer Bedingung ist nicht ausreichend. Manchmal möchte man etwas Komplizierteres überprüfen. Dafür haben SQL (und viele andere Programmiersprachen) die AND-, OR- und NOT-Schlüsselwörter, um unsere Fähigkeit zu verbessern, das gewünschte Ergebnis abzurufen.
|
||||
@@ -520,6 +518,76 @@ Der Rest bei der Division durch 7 ist immer kleiner als 7 und reicht von 0 bis 6
|
||||
|
||||
#####################################################
|
||||
|
||||
Challenge zu modulo
|
||||
|
||||
> Verfügbare Tabellen und Spalten:
|
||||
>
|
||||
> - `**products**`**:** `**id**`**,** `**price**`, `quantity`
|
||||
> - | products | | | |
|
||||
> | -------- | --- | ----- | -------- |
|
||||
> | | id | price | quantity |
|
||||
> | 1 | 1 | 154 | 18 |
|
||||
> | 2 | 2 | 98 | 3 |
|
||||
> | 3 | 3 | 54 | 15 |
|
||||
> | 4 | 4 | 142 | 14 |
|
||||
> | 5 | 5 | 70 | 2 |
|
||||
> | 6 | 6 | 189 | 7 |
|
||||
> | 7 | 7 | 44 | 3 |
|
||||
> | 8 | 8 | 62 | 16 |
|
||||
> | 9 | 9 | 101 | 8 |
|
||||
> | 10 | 10 | 192 | 9 |
|
||||
> | 11 | 11 | 4 | 21 |
|
||||
> | 12 | 12 | 208 | 3 |
|
||||
> | 13 | 13 | 144 | 5 |
|
||||
> | 14 | 14 | 68 | 98 |
|
||||
> | 15 | 15 | 5 | 14 |
|
||||
|
||||
Erstellen Sie eine Abfrage, die:
|
||||
|
||||
1. Die Produkt-ID anzeigt
|
||||
2. Jedes Produkt einem von drei Qualitätskontrollteams (0, 1 oder 2) **basierend auf der Produkt-ID unter Verwendung des Modulo-Operators** zuweist; nennen Sie diese Spalte `quality_control`
|
||||
3. Nur Produkte einschließt, bei denen die **Spalte quantity eine ungerade Zahl enthält** (z. B. 1, 3, 5, 7...)
|
||||
|
||||
Lösung:
|
||||
|
||||
```sql
|
||||
select id, (id % 3) as quality_control from products where quantity % 2 = 1
|
||||
```
|
||||
|
||||
##############################################################
|
||||
|
||||
## The ROUND() Function
|
||||
|
||||
Die Funktion `ROUND()` wird verwendet, um einen numerischen Wert auf eine bestimmte Anzahl von Nachkommastellen zu runden. Um die Funktion zu verwenden, folge dieser Syntax:
|
||||
|
||||
```sql
|
||||
ROUND(number, decimal_places)
|
||||
```
|
||||
|
||||
- `number`: Die Zahl, die Sie runden möchten
|
||||
|
||||
- `decimal_places`: (Optional) Die Anzahl der Nachkommastellen, auf die gerundet werden soll
|
||||
|
||||
- Wenn weggelassen, wird auf die nächste ganze Zahl gerundet
|
||||
- Wenn positiv, wird auf so viele Nachkommastellen gerundet
|
||||
- Wenn negativ, wird links vom Dezimalpunkt gerundet
|
||||
|
||||
Zum Beispiel einfaches Runden auf ganze Zahlen:
|
||||
|
||||
```sql
|
||||
SELECT ROUND(3.7);-- Returns 4.0SELECT ROUND(3.3);-- Returns 3.0SELECT ROUND(3.5); -- Returns 4.0 (rounds up from .5)
|
||||
```
|
||||
|
||||
**Hinweis:** Die `ROUND()`-Funktion in SQLite gibt immer einen Fließkommawert (REAL) zurück. Aus diesem Grund enthalten die obigen Ergebnisse ein Komma bzw. einen Dezimalpunkt (z. B. 4.0 statt 4).
|
||||
|
||||
Runden auf bestimmte Nachkommastellen:
|
||||
|
||||
```sql
|
||||
SELECT ROUND(3.14159, 2);-- Returns 3.14SELECT ROUND(3.14159, 1);-- Returns 3.1SELECT ROUND(3.14159, 0);-- Returns 3.0SELECT ROUND(3.145, 2);-- Returns 3.15 (rounds up because the next digit is 5)
|
||||
```
|
||||
|
||||
**Hinweis:** Wenn die `digit` nach der letzten verbleibenden Nachkommastelle 5 oder größer ist, `rounds` die letzte verbleibende Dezimalstelle auf.
|
||||
|
||||
##############################################################
|
||||
|
||||
# Kurze SQL-Queries in MariaDB erfassen
|
||||
@@ -535,12 +603,6 @@ Prüfen, ob das General Log aktiviert ist:
|
||||
SHOW VARIABLES LIKE 'general_log';
|
||||
SHOW VARIABLES LIKE 'log_output'
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Oder beide Werte gemeinsam anzeigen:
|
||||
|
||||
```sql
|
||||
@@ -648,7 +710,7 @@ Für eine kurzfristige Analyse ist jedoch das **General Log** meist die bessere
|
||||
|
||||
> **Fazit:** Für sehr kurze Queries ist `SHOW PROCESSLIST` ungeeignet. Verwende stattdessen das **General Log** oder – falls verfügbar – das **Performance Schema**.
|
||||
|
||||
## Suche von Werten die in einer Spalte nur einmal vorkommem
|
||||
# Suche von Werten die in einer Spalte nur einmal vorkommem
|
||||
|
||||
```sql
|
||||
SELECT *
|
||||
|
||||
Reference in New Issue
Block a user