3rd Oct 2024 20 Leseminuten SQL-Interview-Spickzettel Tihomir Babic SQL-Interviewfragen Spickzettel SQL Cheat Sheet Deutsch Inhaltsverzeichnis Was ist SQL? SQL-Tabellen-Info SQL-Befehle SQL-Abfragen Grundlegende Klauseln in einer SQL-Abfrage JOINs Aggregation in SQL Set-Operatoren Unterabfragen SQL-Operatoren und Ausdrücke Vergleichsoperatoren Arithmetische Operatoren Logische Operatoren CASE WHEN SQL-Funktionen Text-Funktionen Numerische Funktionen NULL-Funktionen DML - Ändern von Daten in SQL DDL - Definieren der Datenstruktur in SQL DDL-Befehle SQL-Datentypen SQL-Beschränkungen Zusätzliche Ressourcen für SQL-Interviews Mehr als der SQL-Interview-Spickzettel Sie möchten schnell alle grundlegenden Kenntnisse für ein SQL-Vorstellungsgespräch nachschlagen? Möchten Sie Ihr Gedächtnis über ein SQL-Konzept auffrischen? Unser SQL Interview Cheat Sheet ist Ihr neuer bester Freund! Die Vorbereitung auf ein SQL-Vorstellungsgespräch erfordert eine Auffrischung Ihrer SQL-Kenntnisse. Aber es ist sehr leicht, sich in all den SQL-Konzepten zu verlieren, die Sie wiederholen müssen. In solchen Situationen brauchen Sie eine leicht zu durchsuchende Ressource mit viel SQL-Wissen. Aus diesem Grund haben wir dieses SQL-Interview-Cheat Sheet erstellt. Wenn Sie schnell auf grundlegende SQL-Konzepte zurückgreifen müssen, ist dieser Spickzettel genau das Richtige für Sie! Wenn Sie etwas mehr als nur eine schnelle Auffrischung benötigen, sollten Sie unseren SQL für Anfänger Kurs. Er vermittelt Ihnen die Grundlagen von SQL, von der Datenabfrage bis zur Erstellung einfacher Berichte, anhand von 129 Programmieraufgaben. Anschließend können Sie Ihr Wissen anhand der 1.190 Programmieraufgaben in unserem SQL-Praxis Kurs. Danach werden Sie auf jedes SQL-Interview vorbereitet sein! Lassen Sie uns ohne Umschweife direkt in unser SQL-Interview-Spickzettel eintauchen. Wir beginnen mit der grundlegendsten Frage: Was ist SQL? Structured Query Language, kurz SQL, ist eine Programmiersprache, die für den Umgang mit Daten in Datenbanken entwickelt wurde. Sie ermöglicht es Benutzern, Daten in einer Datenbank abzufragen, hinzuzufügen, zu ändern, zu speichern und zu löschen. Sie kann auch zum Erstellen und Ändern von Datenbankstrukturen verwendet werden. SQL-Tabellen-Info Begriff Erläuterung Tabelle Ein grundlegendes Datenbankobjekt. Es besteht aus Zeilen und Spalten und speichert Daten über ein bestimmtes Thema (z. B. speichert eine Tabelle "Mitarbeiter" Daten über die Mitarbeiter eines Unternehmens). Spalten (oder Attribute) Wie Spalten in einer Tabellenkalkulation enthalten Tabellenspalten Details über das Datenbankobjekt (z. B. speichert die Spalte "ID" die ID-Nummern der Mitarbeiter). Zeilen (oder Datensätze) Wie Zeilen in einer Tabellenkalkulation enthalten Tabellenzeilen Daten über eine einzelne Instanz des Datenbankthemas (z. B. speichert eine Zeile alle Daten für einen Mitarbeiter). Felder Wie eine Zelle in einer Tabellenkalkulation ist ein Feld die Schnittmenge zwischen einer Spalte und einer Zeile. Es speichert einen Teil der Daten, z. B. die ID-Nummer eines Mitarbeiters. Datentypen Legt fest, welche Art von Daten in jeder Spalte gespeichert werden kann. Hier finden Sie eine Visualisierung der oben genannten Terminologie. SQL-Befehle Begriff Erläuterung Abfrage Eine SQL-Anweisung, die Daten abruft, d.h. eine SELECT -Anweisung. Anweisung Ein Befehl, der in der Datenbank ausgeführt werden kann; der grundlegendste Baustein von SQL. DDL-Anweisungen Data Definition Language-Anweisungen erstellen und ändern Datenbankobjekte, wie z. B. Tabellen oder Indizes. DDL ist eine Teilmenge von SQL. DCL-Anweisungen Data Control Language-Anweisungen erteilen oder entziehen Rechte für den Zugriff auf Teile der Datenbank. DCL ist eine Teilmenge von SQL. DML-Anweisungen Data Manipulation Language-Anweisungen ermöglichen es, die Informationen in einer Datenbank zu manipulieren. DML ist eine Teilmenge von SQL. Beliebte DML-Anweisungen sind unter anderem die folgenden: INSERT Fügt eine oder mehrere neue Datenzeilen in eine Tabelle ein. UPDATE Ändert vorhandene Werte in einer Tabellenspalte. DELETE Entfernt eine oder mehrere Zeilen aus der Tabelle. DQL-Anweisungen Data Query Language-Anweisungen rufen Daten aus einer Datenbank ab, d. h. SELECT Anweisungen. SELECT Holt Daten aus einer oder mehreren Tabellen in einer Datenbank. SQL-Abfragen Grundlegende Klauseln in einer SQL-Abfrage SELECT ist die am häufigsten verwendete Anweisung in SQL-Abfragen. Diese typische SQL-Abfrage kann auch mehrere Klauseln enthalten, mit denen wir die Abfrageergebnisse verfeinern können. Hier ist die Syntax einer SQL-Abfrage: SELECT column_1, column_2, aggregate_function(column_3), … FROM table_1 JOIN table_2 ON table_1.common_column = table_2.common_column WHERE column_1 <condition> GROUP BY column_1, column_2, … HAVING aggregate_function(column_3) <condition> ORDER BY column_1 [ASC|DESC]; Hier finden Sie eine Erklärung und ein Beispiel für jede Klausel: SQL-Klausel Erläuterung Code-Beispiel Code-Ausgabe FROM Legt fest, aus welcher Tabelle Daten extrahiert werden sollen. SELECT first_name, last_name FROM employees; Gibt die Vor- und Nachnamen der Mitarbeiter aus der Tabelle employees zurück. JOIN Verbindet Daten aus zwei oder mehr Tabellen, sodass Sie sie als eine Tabelle abfragen können. SELECT e.first_name, e.last _name, d.name FROM employees e JOIN department d ON e.department_id = d.id; Verbindet die Tabellen employees und department anhand der Abteilungs-ID. Gibt die Vor- und Nachnamen der Mitarbeiter und den Namen ihrer Abteilung zurück. WHERE Filtert die Datensätze vor der Aggregation und gibt nur diejenigen zurück, die die angegebene Bedingung erfüllen. SELECT first_name, last_name FROM employees WHERE last_name = 'Smith'; Gibt die Vor- und Nachnamen aller Angestellten, deren Nachname Smith ist, aus der Tabelle employees zurück. GROUP BY Gruppiert Abfrageergebnisse basierend auf den gemeinsamen Spaltenwerten. Wird oft mit Aggregatfunktionen verwendet. SELECT nationality, AVG(salary) FROM employees GROUP BY nationality; Gibt das durchschnittliche Angestelltengehalt für jede Nationalität zurück. HAVING Filtert Datensätze nach der Aggregation und gibt nur diejenigen zurück, die die angegebene Bedingung erfüllen. SELECT nationality, AVG(salary) FROM employees GROUP BY nationality HAVING AVG(salary) > 5000; Liefert das durchschnittliche Arbeitnehmergehalt für jede Nationalität - aber nur für die Nationalitäten, bei denen das Durchschnittsgehalt über 5.000 liegt. ORDER BY Sortiert die Ausgabe in aufsteigender (1-10, A-Z) oder absteigender (10-1, Z-A) Reihenfolge nach den Werten in der/den angegebenen Spalte(n). SELECT first_name, last_name FROM employees ORDER BY last_name ASC; Gibt die Vor- und Nachnamen der Mitarbeiter zurück und sortiert die Ausgabe alphabetisch nach den Nachnamen der Mitarbeiter. JOINs JOIN ist eine SQL-Klausel, die zwei oder mehr Tabellen miteinander verbindet und den Abruf von Daten aus allen verbundenen Tabellen ermöglicht. Erklärungen und Darstellungen der verschiedenen JOIN-Typen finden Sie in der folgenden Grafik. INNER JOIN: Gibt nur die übereinstimmenden Zeilen der verbundenen Tabellen zurück. LEFT (OUTER) JOIN: Gibt alle Zeilen aus der ersten (linken) Tabelle und nur die passenden Zeilen aus der zweiten (rechten) Tabelle zurück. Die nicht übereinstimmenden Werte aus der rechten Tabelle werden als NULLs angezeigt. RIGHT (OUTER) JOIN: Gibt alle Zeilen aus der zweiten (rechten) Tabelle und nur die passenden Zeilen aus der ersten (linken) Tabelle zurück. Die nicht übereinstimmenden Werte aus der linken Tabelle werden als NULLs angezeigt. FULL (OUTER) JOIN: Gibt alle Zeilen aus der linken und rechten Tabelle zurück. Die nicht übereinstimmenden Werte aus beiden Tabellen werden als NULLs angezeigt. Aggregation in SQL Aggregation ist die Durchführung von Berechnungen auf mehreren Zeilen und die Rückgabe eines einzelnen Wertes, der eine Zusammenfassung oder ein statistisches Ergebnis darstellt. Sie wird auch als Aggregation von Zeilen bezeichnet - z. B. Zählen von Zeilen, Berechnen des Durchschnitts oder der Summe pro Gruppe von Zeilen usw. So führen Sie eine Datenaggregation in SQL durch: Dieser Vorgang wird mit den SQL Aggregat-Funktionen Das Argument wird einfach in den Klammern der Funktion übergeben. Mit anderen Worten: Geben Sie den Namen der Spalte an, die Sie aggregieren möchten: SELECT aggregate_function (column_name) FROM table_name; GROUP BY: Die Aggregation erfolgt in der Regel in Verbindung mit der GROUP BY-Klausel. GROUP BY fasst Zeilen mit denselben Spaltenwerten in einer Gruppe zusammen. Die Kombination von Aggregatfunktionen mit GROUP BY ermöglicht es Ihnen, neben den aggregierten Werten auch Beschriftungen anzuzeigen, wie in der folgenden Grafik: HAVING: Die HAVING-Klausel filtert Gruppen auf der Grundlage des Ergebnisses einer Aggregatfunktion; nur die Datensätze, die die Bedingung erfüllen, werden in der Ausgabe angezeigt. Hier ein Beispiel, wie sie funktioniert: Aggregatfunktionen: Die gebräuchlichsten Aggregatfunktionen sind unten aufgeführt. Weitere Informationen über Aggregatfunktionen finden Sie in unserem SQL Aggregate Functions Cheat Sheet. Aggregat-Funktion Erläuterung Code Beispiel Code-Ausgabe COUNT() Zählt die Anzahl der Zeilen. SELECT country, COUNT(id) FROM orders GROUP BY country; Gibt die Anzahl der Bestellungen aus jedem Land in der Tabelle zurück. AVG() Berechnet den Durchschnittswert. SELECT country, AVG(value) FROM orders GROUP BY country; Gibt den durchschnittlichen Bestellwert nach Land zurück. SUM() Berechnet die Summe der Werte. SELECT country, SUM(value) FROM orders GROUP BY country; Summiert den Wert der Aufträge nach Land. MIN() Gibt den kleinsten Wert zurück. SELECT country, MIN(value) FROM orders GROUP BY country; Gibt den niedrigsten Bestellwert nach Land zurück. MAX() Gibt den größten Wert zurück. SELECT country, MAX(value) FROM orders GROUP BY country; Gibt den höchsten Bestellwert nach Land zurück. Einen tieferen Einblick in GROUP BY und Aggregatfunktionen finden Sie in unserem Artikel GROUP BY und Aggregatfunktionen: Ein vollständiger Überblick. Set-Operatoren Die Mengenoperatoren von SQL kombinieren die Ausgaben von einer oder mehreren SELECT Anweisungen zu einer Ausgabe. Set-Operator Erläuterung UNION Zeigt nur eindeutige (nicht doppelte) Zeilen aus allen Ausgaben der SELECT-Anweisung. UNION ALL Zeigt alle Zeilen aus allen SELECT-Anweisungen an, einschließlich der Duplikate. INTERSECT Zeigt nur Zeilen an, die in den Ausgaben aller SELECT-Anweisungen vorhanden sind. MINUS or EXCEPT Gibt die Zeilen der ersten SELECT-Ausgabe zurück, die in anderen SELECT-Ausgaben nicht vorhanden sind. Unterabfragen SELECT Abfragen, die in eine andere SQL-Abfrage eingebettet sind, werden Unterabfragen genannt. Sie können in den folgenden Hauptanweisungen verwendet werden: SELECT INSERT UPDATE DELETE Die Klauseln, die Subqueries akzeptieren, sind: SELECT FROM WHERE HAVING JOIN Die Typen von Unterabfragen sind: Skalar - Gibt genau einen Wert zurück. Mehrzeilig - Gibt mehrere Werte zurück. Korreliert - Verweist auf die Hauptabfrage. Die folgende Infografik veranschaulicht die verschiedenen Arten von Unterabfragen. Beispiel 1: Skalare Unterabfrage Beispiel 2: Unterabfrage mit mehreren Zeilen Beispiel 3: Korrelierte Unterabfrage Unterabfrage-Operatoren: Unterabfragen werden in der Regel mit verschiedenen Operatoren verwendet, die es Ihnen ermöglichen, Daten aus der Hauptabfrage mit der Ausgabe der Unterabfrage zu vergleichen. Unterabfrage-Operator Erläuterung ANY oder SOME Gibt TRUE zurück, wenn ein Wert aus einer Unterabfrage die Bedingung in der Hauptabfrage erfüllt. ALL Gibt TRUE zurück, wenn alle Werte aus einer Unterabfrage die Bedingung in der Hauptabfrage erfüllen. EXISTS Gibt TRUE zurück, wenn eine Unterabfrage irgendwelche Zeilen zurückgibt. IN Gibt alle Werte aus der Hauptabfrage zurück, die in der Unterabfrage, die mehrere Werte zurückgibt, gefunden werden können, d. h. eine Liste von Werten. SQL-Operatoren und Ausdrücke Operatoren in SQL werden für Vergleiche, arithmetische und logische Operationen verwendet. Ausdrücke bestehen aus einem oder mehreren Werten, Operatoren, Funktionen und anderen Abfragekomponenten, die Werte berechnen und Bedingungen erstellen. Der am häufigsten verwendete Ausdruck ist CASE WHEN. Vergleichsoperatoren Vergleichsoperatoren werden für den Vergleich von Werten innerhalb einer Abfrage verwendet. Vergleichsoperator Erläuterung Code Beispiel Code-Ausgabe = Beide Werte sind gleich oder übereinstimmend. SELECT first_name, last_name FROM employees WHERE salary = 5000; Gibt alle Mitarbeiter zurück, deren Gehalt genau 5.000 beträgt. < Weniger (niedriger, kleiner) als der Vergleichswert. SELECT first_name, last_name FROM employees WHERE salary < 5000; Gibt alle Mitarbeiter zurück, deren Gehalt unter 5.000 liegt. <= Niedriger als oder gleich dem verglichenen Wert. SELECT first_name, last_name FROM employees WHERE salary <= 5000; Gibt alle Mitarbeiter zurück, deren Gehalt 5.000 oder weniger beträgt. > Größer (höher, größer) als der Vergleichswert. SELECT first_name, last_name FROM employees WHERE salary > 5000; Gibt alle Mitarbeiter zurück, deren Gehalt über 5.000 liegt. >= Größer als oder gleich dem verglichenen Wert. SELECT first_name, last_name FROM employees WHERE salary >= 5000 Gibt alle Mitarbeiter zurück, deren Gehalt 5.000 oder mehr beträgt. <> Die Werte sind nicht gleich oder stimmen nicht überein. SELECT first_name, last_name FROM employees WHERE salary <> 5000; Gibt alle Mitarbeiter zurück, deren Gehalt nicht 5.000 beträgt. BETWEEN Überprüft, ob der Wert im angegebenen Bereich liegt. Der Operator ist inklusiv, d. h. die Werte, die dem oberen und unteren Wert des Bereichs entsprechen, werden einbezogen. SELECT first_name, last_name FROM employees WHERE salary BETWEEN 5000 AND 6000; Gibt alle Mitarbeiter zurück, deren Gehalt zwischen 5.000 und 6.000 liegt, einschließlich derjenigen, deren Gehalt genau 5.000 oder 6.000 beträgt. LIKE Überprüft, ob der Wert mit der angegebenen Zeichenfolge (Text) übereinstimmt. Wichtig: Bei diesem Operator wird zwischen Groß- und Kleinschreibung unterschieden. SELECT first_name, last_name FROM employees WHERE last_name LIKE 'van%'; Gibt alle Mitarbeiter zurück, deren Nachnamen mit "van" beginnen, z. B. "van Basten" und "vanBeek". Schließt 'Vandeley' nicht ein, da bei der Suche die Groß- und Kleinschreibung beachtet wird. ILIKE Prüft, ob der Wert mit einem Zeichenkettenmuster übereinstimmt (Groß- und Kleinschreibung wird nicht berücksichtigt). SELECT first_name, last_name FROM employees WHERE last_name ILIKE 'van%'; Gibt alle Mitarbeiter zurück, deren Nachnamen mit "van" beginnen, z. B. "van Basten", "vanBeek" und "Vandeley" - die Suche unterscheidet nicht zwischen Groß- und Kleinschreibung. IS NULL prüft, ob der Wert NULL ist. SELECT first_name, last_name FROM employees WHERE end_date IS NULL; Gibt alle Mitarbeiter zurück, die noch im Unternehmen sind, d. h. deren Beschäftigungsende NULL ist. IS NOT NULL Prüft, ob der Wert nicht NULL ist. SELECT first_name, last_name FROM employees WHERE end_date IS NOT NULL; Gibt alle Ex-Mitarbeiter zurück, d. h. Datensätze, bei denen das Enddatum des Beschäftigungsverhältnisses nicht NULL ist. IN Prüft, ob der/die Wert(e) in der angegebenen Werteliste gefunden werden können. SELECT first_name, last_name FROM employees WHERE city IN ( 'New York', 'Los Angeles', 'Baltimore'); Gibt alle Mitarbeiter zurück, die in New York, Los Angeles oder Baltimore wohnen. Arithmetische Operatoren Arithmetische Operatoren werden für die Durchführung mathematischer Operationen in SQL verwendet. Arithmetischer Operator Erläuterung Code Beispiel Code-Ausgabe + Addiert Werte. SELECT first_name, last_name, salary + bonus FROM employees; Gibt die Namen der Mitarbeiter zurück und berechnet ihre Gesamtvergütung, d.h. die Summe aus Gehalt und Bonus. - Subtrahiert Werte. SELECT first_name, last_name, vacation_days - used_vacation_day FROM employees; Gibt die Namen der Mitarbeiter zurück und berechnet ihre verbleibenden Urlaubstage, d. h. die Differenz zwischen ihren gesamten Urlaubstagen und den verbrauchten Urlaubstagen. * Multipliziert die Werte. SELECT first_name, last_name, salary*1.03 FROM employees; Gibt die Namen der Mitarbeiter zurück und berechnet ihr Gehalt nach einer 3%igen Erhöhung, d.h. das Produkt aus dem aktuellen Gehalt und 1,03. / Dividiert die Werte. SELECT first_name, last_name, salary/12 FROM employees; Gibt die Namen der Mitarbeiter zurück und berechnet ihr Monatsgehalt, d.h. ihr Jahresgehalt geteilt durch 12. ** Erhöht eine Zahl in die Potenz einer anderen. SELECT first_name, last_name, salary * 1.05 ** 3 FROM employees; Gibt die Namen der Mitarbeiter zurück und berechnet ihr Gehalt nach drei Jahren mit jährlichen Erhöhungen von 5 %, d. h. ein Produkt aus ihrem aktuellen Gehalt und 1,05 hoch 3. % Gibt den Rest der Division zurück (Modulo-Operator). SELECT first_name, last_name FROM employees WHERE id % 2 = 0; Gibt alle Mitarbeiter zurück, deren ID eine gerade Zahl ist (da der Rest, wenn ID durch zwei geteilt wird, Null ist). Logische Operatoren Logische Operatoren kombinieren mehrere Bedingungen. Logischer Operator Erläuterung Code-Beispiel Code-Ausgabe AND Prüft, ob beide Bedingungen erfüllt sind. SELECT first_name, last_name FROM employees WHERE department = 'IT' AND salary > 5000; Gibt alle Mitarbeiter zurück, die im IT-Bereich arbeiten und deren Gehalt über 5.000 liegt. OR Prüft, ob eine der beiden Bedingungen erfüllt ist. SELECT first_name, last_name FROM employees WHERE department= 'IT' OR salary > 5000; Gibt alle Mitarbeiter zurück, die im IT-Bereich arbeiten oder deren Gehalt über 5.000 liegt. NOT Überprüft, ob die angegebene Bedingung nicht erfüllt ist. SELECT first_name, last_name FROM employees WHERE NOT department = 'IT'; Gibt alle Mitarbeiter zurück, die nicht in der IT arbeiten. CASE WHEN CASE WHEN ist ein bedingter Ausdruck, der bestimmte Werte in den Fällen zurückgibt, in denen die Bedingung erfüllt bzw. nicht erfüllt ist. Dies ist die SQL-Implementierung der IF-THEN-Logik. Die Syntax von CASE WHEN lautet: CASE WHEN condition_1 THEN value_1 WHEN condition_2 THEN value_2 ... ELSE default_value END; CASE leitet den Ausdruck ein. WHEN gibt die Bedingung an, die erfüllt werden muss. THEN gibt den Wert an, der zurückgegeben wird, wenn die Bedingung erfüllt ist. ELSE gibt den Wert an, der zurückgegeben wird, wenn die Bedingung nicht erfüllt ist. END Beendet den Ausdruck. SQL-Funktionen SQL-Funktionen sind benannte und vordefinierte Codestücke , die in einer SQL-Abfrage verwendet werden können. Diese Funktionen akzeptieren Argumente (die in den Klammern der Funktion stehen), die der Funktion mitteilen, wie oder wo sie ausgeführt werden soll. Die grundlegenden Typen von SQL-Funktionen sind: Textfunktionen Numerische Funktionen NULL Funktionen Text-Funktionen Text-Funktionen Erläuterung Code Beispiel Code Ausgabe CONCAT() Verkettet zwei oder mehr Zeichenfolgen zu einer Zeichenfolge. SELECT CONCAT(first_name, ' ', last_name) FROM employees; Verkettet die Vor- und Nachnamen der Mitarbeiter aus zwei separaten Spalten zu einer einzigen Zeichenfolge, die in einer Spalte angezeigt wird. SUBSTRING() Gibt einen Teil einer Zeichenkette zurück. SELECT first_name, last_name, SUBSTRING(last_name, 4) FROM employees; Gibt die vollständigen Namen der Mitarbeiter und die ersten vier Buchstaben ihres Nachnamens zurück. LENGTH() Gibt die Länge einer Zeichenkette zurück (als Anzahl der Zeichen). SELECT first_name, last_name, LENGTH(last_name) FROM employees; Gibt die vollständigen Namen der Mitarbeiter und die Anzahl der Zeichen in ihren Nachnamen zurück. LEFT() Gibt eine bestimmte Anzahl von Zeichen ab dem Anfang (linke Seite) einer Zeichenfolge zurück. SELECT first_name, last_name, LEFT(last_name, 3) FROM employees; Gibt die vollständigen Namen der Mitarbeiter und die ersten drei Buchstaben ihres Nachnamens zurück. RIGHT() Gibt eine bestimmte Anzahl von Zeichen vom Ende (rechte Seite) einer Zeichenkette zurück. SELECT first_name, last_name, RIGHT(last_name, 3) FROM employees; Gibt die vollständigen Namen der Mitarbeiter und die letzten drei Buchstaben ihres Nachnamens zurück. TRIM() Entfernt Leerzeichen von beiden Seiten einer Zeichenkette. SELECT TRIM(first_name), TRIM(last_name), FROM employees; Gibt die vollständigen Namen der Mitarbeiter ohne führende und nachfolgende Leerzeichen zurück, z. B. wird der Nachname Jonas' wird zu 'Jonas'. REPLACE() Ersetzt eine angegebene Teilzeichenkette durch eine andere Teilzeichenkette. SELECT first_name, last_name, REPLACE(department, 'Acuonting', 'Accounting') FROM employees; Gibt die vollständigen Namen der Mitarbeiter und ihre Abteilungen zurück und benennt dabei die Abteilung "Acuonting" in "Accounting" um. REVERSE() Kehrt eine Zeichenfolge um. SELECT REVERSE(last_name) FROM employees; Gibt die umgekehrten Versionen der Nachnamen der Mitarbeiter zurück, z. B. wird aus "Jonas" "sanoJ". UPPER() Konvertiert eine Zeichenkette in Großbuchstaben. SELECT UPPER(last_name) FROM employees; Gibt Versionen der Nachnamen von Mitarbeitern in Großbuchstaben zurück, z. B. wird aus "Jonas" "JONAS". LOWER() Konvertiert eine Zeichenkette in Kleinbuchstaben. SELECT LOWER(last_name) FROM employees; Gibt die Versionen der Nachnamen der Mitarbeiter in Kleinbuchstaben zurück, z. B. wird aus "Jonas" "jonas". Eine ausführliche Übersicht über die Textfunktionen finden Sie in unserem Artikel Ein Überblick über SQL-Textfunktionen. Numerische Funktionen Numerische Funktion Erläuterung Code-Beispiel Code-Ausgabe ABS() Gibt den absoluten Wert eines numerischen Wertes zurück. SELECT ABS(-169.23); Aus -169,23 wird 169,23. ROUND() Rundet einen numerischen Wert auf eine bestimmte Anzahl von Dezimalstellen. SELECT ROUND(169.2389, 3); 169,2389 wird auf die dritte Dezimalstelle gerundet und wird zu 169,239. CEILING() Rundet einen numerischen Wert auf die erste ganze Zahl auf, die größer oder gleich ist. SELECT CEILING(169.2389); 169,2389 wird auf 170 aufgerundet. FLOOR() Rundet einen numerischen Wert auf die erste ganze Zahl, die kleiner oder gleich dem Wert ist. SELECT FLOOR(169.2389); 169,2389 wird auf 169 abgerundet. POWER() Erhöht einen numerischen Wert auf die Potenz eines anderen numerischen Wertes. SELECT POWER(5, 4); Erhöht 5 hoch 4, was 625 entspricht. SQRT() Gibt die Quadratwurzel eines numerischen Wertes zurück. SELECT SQRT(25); Gibt die Quadratwurzel von 25 zurück, was 5 entspricht. RAND() oder RANDOM() Gibt eine zufällige Fließkommazahl zwischen 0 und 1 zurück. SELECT RANDOM(); Gibt zum Beispiel 0.4371221377641987 zurück. LOG() Gibt den Logarithmus eines numerischen Wertes mit einer bestimmten Basis zurück. SELECT LOG(12, 2); Gibt den Logarithmus zur Basis 2 von 12 zurück, was 0,2789429456511298 entspricht. LN() Gibt den natürlichen Logarithmus eines numerischen Wertes zurück. SELECT LN(12); Gibt den natürlichen Logarithmus von 12 zurück, also 2,4849066497880004. Einen detaillierten Einblick in numerische Funktionen finden Sie in unserem Artikel SQL Numeric Functions. NULL-Funktionen NULL Funktion Erläuterung Code Beispiel Code Ausgabe COALESCE() Gibt den ersten Nicht-NULL-Wert aus einer Liste von Argumenten zurück. SELECT first_name, last_name, COALESCE(department, 'N/A') FROM employees; Gibt Mitarbeiter und ihre Abteilungen zurück. Wenn der Wert in der Spalte department NULL ist, wird er in der Ausgabe als N/A angezeigt. NULLIF() Gibt NULL zurück, wenn zwei Ausdrücke gleich sind; andernfalls wird der erste Ausdruck zurückgegeben. SELECT first_name, last_name NULLIF(department, 'N/A') FROM employees; Gibt Mitarbeiter und ihre Abteilungen zurück. Wenn der Wert in der Spalte department N/A ist, wird er in der Ausgabe als NULL angezeigt. DML - Ändern von Daten in SQL Im Folgenden finden Sie eine Übersicht über drei Befehle, die zur Datenänderung verwendet werden (DML-Befehle). DML-Befehl Erläuterung Code-Beispiel Code Ausgabe INSERT Fügt eine oder mehrere Zeilen von Daten in eine Tabelle ein. INSERT INTO employees (first_name, last_name, department) VALUES ('Francis', 'Ford', 'Sales'); Fügt einen neuen Mitarbeiter in die Tabelle employees ein. Der Vorname des eingefügten Mitarbeiters ist Francis, sein Nachname ist Ford, und er arbeitet in der Verkaufsabteilung. UPDATE Ändert den Spaltenwert für eine oder mehrere Zeilen. UPDATE employees SET department = 'Accounting' WHERE department = 'Acuonting'; Aktualisiert den falsch geschriebenen Abteilungsnamen 'Acuonting' mit dem richtigen 'Accounting'. DELETE Löscht eine oder mehrere Zeilen aus der Tabelle. DELETE FROM employees WHERE id = 6; Löscht alle Daten aus der Zeile, in der die Mitarbeiter-ID den Wert 6 hat. DDL - Definieren der Datenstruktur in SQL Die wichtigsten DDL-Konzepte (Data Definition Language) sind: DDL-Befehle SQL-Datentypen SQL-Beschränkungen DDL-Befehle Hier ist ein Überblick über DDL-Befehle: DDL-Befehl Erläuterung Code-Beispiel Code-Ausgabe CREATE TABLE Erzeugt eine neue Tabelle mit den angegebenen Spaltennamen, Datentypen und Beschränkungen. CREATE TABLE customers( id INT PRIMARY KEY, first_name VARCHAR(120), last_name VARCHAR(120) ); Erstellt die Tabelle customers mit Spalten namens id, first_name und last_name. Die Spaltendatentypen sind INT, VARCHAR(120) bzw. VARCHAR(120). Außerdem wird die Primärschlüssel-Beschränkung für die ID-Spalte definiert. DROP TABLE Entfernt die gesamte Tabelle und ihre Definition aus einer Datenbank. DROP TABLE customers; Löscht die Tabelle customers zusammen mit ihren Spalten, Daten, Datentypdefinitionen, Beschränkungen usw. CREATE VIEW Erstellt eine gespeicherte Abfrage (auch 'View' genannt), die wiederverwendet und in anderen Abfragen eingesetzt werden kann. CREATE VIEW salary_summary AS SELECT department, AVG(salary) FROM employees GROUP BY department; Erstellt eine Ansicht namens salary_summary, die das Durchschnittsgehalt nach Abteilung berechnet. DROP VIEW Löscht eine Ansicht und ihre Definition vollständig aus der Datenbank. DROP VIEW salary_summary; Löscht die Ansicht " salary_summary " und ihre Definition aus der Datenbank. ALTER TABLE Ändert die Struktur der vorhandenen Tabelle durch ... ... Umbenennung der Tabelle ALTER TABLE employees RENAME TO salaries; Ändert den Namen der Tabelle employees in salaries. ... Umbenennung einer Spalte ALTER TABLE employees RENAME COLUMN last_name TO surname; Ändert den Spaltennamen last_name in surname. ... Änderung des Datentyps einer Spalte ALTER TABLE employees ALTER COLUMN salary DECIMAL(10,2); Ändert den Datentyp der Spalte salary in DECIMAL(10,2). ... Hinzufügen einer Spalte ALTER TABLE employees ADD date_of_birth DATE; Fügt die Spalte date_of_birth (mit dem Datentyp DATE ) zur Tabelle employees hinzu. ... Spalte löschen (dropping) ALTER TABLE employees DROP COLUMN end_date; Entfernt die Spalte end_date aus der Tabelle employees. SQL-Datentypen Im Folgenden finden Sie einen Überblick über die gängigsten SQL-Datentypen. Datentyp Erläuterung Numerische Datentypen INT Stellt ganze Zahlen dar, d. h. Ganzzahlen. Der Bereich reicht von -2147483648 bis 2147483648 und benötigt 4 Byte Speicherplatz. DECIMAL(p, s) Stellt Festkommazahlen mit der Genauigkeit p (Gesamtzahl der Stellen vor und nach dem Komma) und der Skala s (Stellen nach dem Komma) dar. FLOAT Stellt Näherungswerte mit Fließkommagenauigkeit dar. SMALLINT Stellt kleine Ganzzahlen von -32,768 bis 32,767 dar; benötigt 2 Byte Speicherplatz. String-Datentypen CHAR(n) Stellt eine Zeichenkette fester Länge mit n Zeichen dar; die maximale Länge beträgt 255. VARCHAR(n) Stellt eine Zeichenkette mit variabler Länge von n Zeichen (maximal 255) dar. TEXT Stellt eine große (bis zu 65.535 Byte) Zeichenfolge variabler Länge dar. Datum und Uhrzeit Datentypen DATE Ein Datum im Format JJJJ-MM-TT. TIME Eine Uhrzeit im Format HH:MI:SS. DATETIME Datum und Uhrzeit im Format JJJJ-MM-TT HH:MI:SS. INTERVAL Ein Datum oder eine Zeitspanne, z.B. JAHR, MONAT, TAG, STUNDE, usw. BOOLEAN Ein logischer Wert, d.h. TRUE oder FALSE. SQL-Beschränkungen Hier ein Überblick über die gängigsten SQL-Beschränkungen: Einschränkung Erläuterung Code-Beispiel Code-Ausgabe PRIMARY KEY Stellt sicher, dass die Werte in der Spalte eindeutig (nicht dupliziert) und nicht NULL sind. CREATE TABLE orders ( id INT PRIMARY KEY, value DECIMAL(10,2) ); Die Werte in der Spalte id der Tabelle orders sind eindeutig und akzeptieren keine NULL-Werte. FOREIGN KEY Verknüpft eine Spalte aus einer Tabelle mit dem Primärschlüssel einer anderen Tabelle. Dadurch wird eine Beziehung zwischen den beiden Tabellen hergestellt. CREATE TABLE orders ( id INT PRIMARY KEY, value DECIMAL(10,2), customer_id INT, FOREIGN KEY (customer_id) REFERENCES customers (id) ); Die Spalte customer_id aus der Tabelle orders ist ein Fremdschlüssel, der auf die Spalte id der Tabelle customers verweist. NOT NULL Stellt sicher, dass eine Spalte keine NULL-Werte akzeptiert. CREATE TABLE orders ( id INT PRIMARY KEY, value DECIMAL(10,2) NOT NULL ); Die Werte in der Spalte value dürfen nicht NULL sein, d.h. jede Bestellung muss einen Wert haben. UNIQUE Stellt sicher, dass die Werte in der Spalte eindeutig sind, erlaubt aber NULL-Werte. CREATE TABLE customer( id INT PRIMARY KEY, name VARCHAR(120), nin INT UNIQUE ); Die Werte in der Spalte nin (Nationale Identifikationsnummer) müssen eindeutig sein, aber NULL-Werte sind zulässig. DEFAULT Legt einen Standard-Spaltenwert fest, wenn für diese Spalte bei INSERT kein Wert angegeben wird. CREATE TABLE orders ( id INT PRIMARY KEY, value DECIMAL(10,2), order_date DEFAULT CURRENT_DATE ); Wenn order_date unter INSERT nicht definiert ist, wird als Standardwert das aktuelle Datum verwendet. CHECK Prüft, ob die Werte in einer Spalte eine angegebene Bedingung erfüllen; lehnt diejenigen ab, die dies nicht tun. CREATE TABLE orders ( id INT PRIMARY KEY, value DECIMAL(10,2), check(value>0) ); Erzwingt eine Regel, nach der ein Bestellwert nicht Null sein darf, wenn er in der Tabelle orders gespeichert werden soll. Zusätzliche Ressourcen für SQL-Interviews Nutzen Sie neben diesem Spickzettel für SQL-Interviews auch diese zusätzlichen Ressourcen, um Fragen und Themen für SQL-Interviews zu überprüfen: Vollständige SQL-Praxis für Vorstellungsgespräche Die 100+ besten SQL-Interview-Fragen und Übungsaufgaben Die 10 wichtigsten SQL JOIN-Interview-Fragen mit Antworten Die 9 wichtigsten SQL GROUP BY Interview-Fragen Die 10 wichtigsten SQL Fensterfunktionen Interview-Fragen Die 5 wichtigsten SQL CTE Interview-Fragen Top 27 Fortgeschrittenes SQL Interview-Fragen mit Antworten 15 knifflige SQL-Interview-Fragen für erfahrene Benutzer Mehr als der SQL-Interview-Spickzettel In diesem Spickzettel für das SQL-Vorstellungsgespräch haben wir alle grundlegenden Konzepte behandelt. Um bei Ihrem Vorstellungsgespräch zu überzeugen, müssen Sie zeigen, dass Sie diese Konzepte beherrschen. Mit diesem Spickzettel können Sie schnell die Definition oder ein Beispiel für einen bestimmten SQL-Befehl nachschlagen. Verwenden Sie ihn immer dann, wenn Sie bei der SQL-Terminologie oder bei Konzepten nicht weiterkommen. Dies ist jedoch keine eigenständige Lernressource. Am besten verwenden Sie ihn zusammen mit unserem SQL für Anfänger Kurs, SQL-Praxis Track oder anderen wichtigen Ressourcen zum Lernen und Üben von SQL. Kombinieren Sie diese Materialien, üben Sie weiter, und Sie werden das SQL-Interview mit Bravour bestehen! Tags: SQL-Interviewfragen Spickzettel SQL Cheat Sheet Deutsch