Blender und SQL erweitert

This commit is contained in:
2026-05-31 20:56:48 +02:00
parent 3e78f7eac5
commit 0e005c7f34
2 changed files with 110 additions and 10 deletions
+104 -9
View File
@@ -25,11 +25,15 @@ Zum Beispiel hier ist eine **Verkäufe**-Tabelle:
Um alle Datensätze mit der Coin „AGK“ abzurufen, schreibt man:
`SELECT * FROM sales WHERE coin = 'AGK'`
```sql
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`
```sql
SELECT * FROM sales WHERE amount <= 20
```
@@ -65,7 +69,9 @@ Zum Beispiel betrachte man die folgende **people**-Tabelle:
| Polar | 23 | männlich |
| Loopa | 18 | weiblich |
`SELECT * FROM people WHERE NOT gender = 'male'`
```sql
SELECT * FROM people WHERE NOT gender = 'male'
```
Dies wird das Ergebnis sein:
@@ -76,9 +82,11 @@ Dies wird das Ergebnis sein:
Das `NOT`-Schlüsselwort kehrt die Bedingung im Wesentlichen um. Zum Beispiel sind die folgenden Abfragen gleich:
`WHERE age > 20`
```sql
WHERE age > 20```
`WHERE NOT age <= 20`
```sql
WHERE NOT age <= 20```
### AND
@@ -96,7 +104,9 @@ Zum Beispiel ist hier eine `people`-Tabelle:
Die folgende Abfrage:
`SELECT * FROM people WHERE gender = "female" AND age < 20`
```sql
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.
@@ -120,7 +130,9 @@ Zum Beispiel betrachtet man die folgende **people**-Tabelle:
| Polar | 23 | male |
| Loopa | 18 | female |
`SELECT * FROM people WHERE gender = 'female' OR age < 20`
```sql
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.
@@ -140,7 +152,9 @@ Das Erstellen einer Abfrage mit nur einer Bedingung ist nicht ausreichend. Manch
Die AND und OR Schlüsselwörter werden wie folgt verwendet:
`SELECT col1, col2 FROM table1 WHERE condition1 AND condition2 OR condition3 ...`
```sql
SELECT col1, col2 FROM table1 WHERE condition1 AND condition2 OR condition3 ...
```
Man kann so viele Bedingungen wie man will zusammen stapeln.
###################
@@ -252,4 +266,85 @@ IN ist die vereinfachte Schreibweise für OR. Hier wird jeder Begriff, die per K
## BETWEEN
BETWEEN vereinfacht die Abfrage >= OR =<. D.h.
Anstatt zu schreiben:
```sql
WHERE col1 >= 5 AND col1 <= 10
```
Kann man folgendes schreiben:
```sql
WHERE col1 BETWEEN 5 AND 10
```
Der `BETWEEN`-Operator ist inklusiv, was bedeutet, dass er die Grenzwerte (in diesem Fall 5 und 10) in die Ergebnisse einschließt. Dies macht die SQL-Abfragen sauberer und lesbarer, insbesondere bei der Arbeit mit Datumsbereichen oder numerischen Intervallen.
## LIKE
Das `LIKE`-Schlüsselwort wird verwendet, um Ähnlichkeiten von Zeichenketten zu prüfen. Beispielsweise, wenn wir alle Datensätze abrufen möchten, deren Name mit dem Buchstaben `a` beginnt, dann verwenden wir das `LIKE`-Schlüsselwort.
Zwei Hauptwildcards werden verwendet:
- `%` - steht für eine beliebige Anzahl von Zeichen
- `_` - steht für genau ein Zeichen
Zum Beispiel:
- `%a` - bedeutet jede Zeichenkette, die mit `a` endet
- `a%` - bedeutet jede Zeichenkette, die mit `a` beginnt
- `%a%` - bedeutet jeder String, der `a` enthält
- `_a%` - bedeutet, dass der Buchstabe `a` der zweite Buchstabe im String ist
- `%a__` - bedeutet, dass der String `a` an der drittletzten Stelle enthält
Um es zu verwenden, schreiben wir:
```sql
SELECT col1, col2, ...
FROM table1
WHERE col1 LIKE '%a__'
```
**Beispiel**
Suche aller Personen deren Name mit Gross-K beginnt und mit klein-a endet, sortiert nach Name in absteigender Reihenfolge
```sql
select * from people where name like 'K%a' order by name desc;
```
## Tabelle anlegen
CREATE TABLE Persons (
PersonID int PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
| **Datentyp** | **MySQL-Format** | **PostgreSQL-Format** | **INSERT INTO Beispiel** |
| :---------------------------------------------------: | :------------------------------------------: | :------------------------------------------: | :----------------------------------------------------------: |
| **Zeichenkette (TEXT, VARCHAR, CHAR usw.)** | Eingeschlossen in einfache Anführungszeichen | Eingeschlossen in einfache Anführungszeichen | `INSERT INTO tableName (columnName) VALUES ('John Doe');` |
| **Zahl (Ganzzahl, Dezimalzahl, Gleitkommazahl usw.)** | Keine Anführungszeichen | Keine Anführungszeichen | `INSERT INTO tableName (columnName) VALUES (25);` |
| **Boolescher Wert** | WAHR oder FALSCH (oder 1 und 0) | WAHR oder FALSCH | `INSERT INTO tableName (columnName) VALUES (TRUE);` |
| **Datum, Uhrzeit und Zeitstempel** | JJJJ-MM-TT HH:MM:SS | JJJJ-MM-TT HH:MM:SS | `INSERT INTO tableName (dateTimeColumn) VALUES ('2023-08-18 12:45:00');` |
## Bestimmte Zeilen aus einer Tabelle kopieren
Wenn man bestimmte Zeilen basierend aus einer Bedingung kopieren möchten, kann man die `SELECT`Anweisung mit . kombinieren `INSERT INTO`.
**Syntax** :
```sql
INSERT INTO table_name1
SELECT columns FROM table_name2 WHERE condition;
```