SQL erweitert, neu: ansible, Linux umd passwd und shadows erweitert

This commit is contained in:
Sven Riwoldt
2026-08-19 13:50:00 +02:00
parent 2a8733f8f8
commit d696ff35e7
3 changed files with 1226 additions and 11 deletions
+71 -9
View File
@@ -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 *