diff --git a/Blender.md b/Blender.md index df8b6a2..3f0773d 100644 --- a/Blender.md +++ b/Blender.md @@ -182,4 +182,9 @@ bpy.context.scene.collection.objects.link(mesh_obj) ![](/Volumes/Daten02/Projekte/Snippets/2024-03-25_18-39.png) -https://www.youtube.com/watch?v=N3U2noAHgBo&t=88s \ No newline at end of file +https://www.youtube.com/watch?v=N3U2noAHgBo&t=88s + +## Farben für Mesh und Vertex + +Preferences --> Themes --> 3D View + diff --git a/SQL.md b/SQL.md index 6b9b643..e164383 100644 --- a/SQL.md +++ b/SQL.md @@ -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; +```