Die 80 besten SQL-Interview-Fragen und Antworten für Anfänger und Fortgeschrittene
Egal, ob du als Arbeitssuchender nach einer neuen Gelegenheit suchst, deine SQL-Kenntnisse anzuwenden, oder als Personalverantwortlicher einen Bewerber für eine offene Stelle in seinem Unternehmen befragen willst, du solltest die gängigen SQL-Interviewfragen und die Antworten darauf kennen.
In diesem Artikel werfen wir einen Blick auf die 80 wichtigsten SQL-Fragen und -Antworten für Anfänger und Fortgeschrittene, die dir helfen, dich besser auf das Vorstellungsgespräch vorzubereiten und zu wissen, was du von deinem Gesprächspartner erwarten kannst.
Beachte, dass sich dieser Artikel der Einfachheit halber hauptsächlich an Arbeitssuchende richtet, da sie die Hauptzielgruppe für solche Informationen sind. Dieser Inhalt ist jedoch auch für Personalverantwortliche von Nutzen, insbesondere für die Durchführung ihrer ersten SQL-Interviews.
Werde SQL-zertifiziert
SQL-Interviewfragen auf einen Blick
In diesem Artikel werden wir eine Reihe von SQL-Interviewfragen und -antworten für Anfänger und Fortgeschrittene untersuchen. Wenn du dir einen Überblick verschaffen willst, haben wir hier einige Top-Tipps zusammengestellt:
Für Anfänger
- Allgemeine Fragen. Erwarte Fragen zu deiner Erfahrung, den SQL-Varianten, mit denen du vertraut bist, und deinem Kenntnisstand.
- Technische Fragen. Darin werden die Grundlagen von SQL behandelt, z.B. was SQL ist, seine Anwendungen, SQL-Anweisungen, SQL-Befehle und Arten von SQL-Abfragen, um nur einige zu nennen.
Für fortgeschrittene Praktiker/innen
- Funktionen in SQL. Du solltest die Aggregat- und Skalarfunktionen sowie die eingebauten und benutzerdefinierten Funktionen kennen.
- Erweiterte Befehle. Die Fragen können sich auf Themen wie Joins, Primär- und Fremdschlüssel, Indizes und SQL-Beziehungen beziehen.
- Datenbankdesign. Erwarte Fragen zur Normalisierung, Denormalisierung und zu den Unterschieden zwischen verschiedenen SQL-Anweisungen wie DELETE, TRUNCATE und DROP.
- Erweiterte Abfragen. Du wirst vielleicht nach verschachtelten und korrelierten Unterabfragen gefragt oder danach, wie du bestimmte Aufgaben lösen kannst, z.B. den n-ten höchsten Wert in einer Spalte zu finden.
Allgemeine SQL-Interviewfragen für Einsteiger
Bevor du technische Fragen stellst, kann es sein, dass dein Gesprächspartner dir zunächst einige allgemeine Fragen zu deiner allgemeinen Erfahrung mit SQL stellt. Du kannst mit den folgenden Fragen rechnen:
- Mit welchen SQL-Varianten bist du vertraut?
- Wie kannst du dein SQL-Kenntnisniveau einschätzen?
- Wie lange arbeitest du schon mit SQL?
Diese Informationen können zwar in deinem Lebenslauf erwähnt werden, aber du solltest bereit sein, darüber zu sprechen. Natürlich gibt es keine "richtigen" Antworten auf solche Fragen und es gibt keinen Grund, sich bei der Beantwortung etwas auszudenken.
Mach dir keine Sorgen, wenn du nur wenig Erfahrung mit SQL hast: Das weiß dein Gesprächspartner höchstwahrscheinlich schon aus deinem Lebenslauf. Da sie ohnehin an einem Gespräch mit dir interessiert sind, wurde dein Profil als passend für ihr Unternehmen angesehen.
Es ist auch völlig in Ordnung, wenn du nur mit einer SQL-Variante gearbeitet hast. Denke daran, dass sich alle SQL-Dialekte untereinander ziemlich ähnlich sind. Wenn du nur eine davon kennst, ist das eine solide Grundlage, um alle anderen zu lernen.
Technische SQL-Interviewfragen für Einsteiger
Kommen wir nun zu den technischen SQL-Interviewfragen und einigen möglichen Antworten darauf.
Wenn du technische Fragen beantwortest, ist es die beste Strategie, so präzise wie möglich zu antworten. Es kann wie ein Versuch aussehen, vom Hauptthema abzuweichen. Außerdem kann sie zusätzliche Fragen aufwerfen, bei denen du dich weniger sicher fühlst.
1. Was ist SQL?
Sie steht für Structured Query Language. Eine Programmiersprache, die für die Interaktion mit relationalen Datenbankmanagementsystemen (RDBMS) verwendet wird. Dazu gehört das Abrufen, Aktualisieren, Einfügen und Entfernen von Daten aus Tabellen.
2. Was sind SQL-Dialekte? Nenne einige Beispiele.
Die verschiedenen Versionen von SQL, sowohl kostenlose als auch kostenpflichtige, werden auch SQL-Dialekte genannt. Alle SQL-Varianten haben eine sehr ähnliche Syntax und unterscheiden sich nur unwesentlich in zusätzlichen Funktionen. Einige Beispiele sind Microsoft SQL Server, PostgreSQL, MySQL, SQLite, T-SQL, Oracle und MongoDB.
3. Was sind die wichtigsten Anwendungen von SQL?
Mit SQL können wir:
- Tabellen in einer Datenbank erstellen, löschen und aktualisieren
- auf Daten in einer Tabelle zuzugreifen, sie zu bearbeiten und zu ändern
- die notwendigen Informationen aus einer Tabelle oder mehreren Tabellen abrufen und zusammenfassen
- bestimmte Zeilen oder Spalten in einer Tabelle hinzufügen oder entfernen
Alles in allem ermöglicht SQL die Abfrage einer Datenbank auf verschiedene Arten. Außerdem lässt sich SQL leicht mit anderen Programmiersprachen wie Python oder R integrieren, so dass wir ihre kombinierte Leistung nutzen können.
4. Was ist eine SQL-Anweisung? Nenne einige Beispiele.
Auch bekannt als SQL-Befehl. Es ist eine Zeichenkette, die von der SQL-Engine als legaler Befehl interpretiert und entsprechend ausgeführt wird. Einige Beispiele für SQL-Anweisungen sind SELECT
,CREATE
,DELETE
,DROP
,REVOKE
, und so weiter.
5. Welche Arten von SQL-Befehlen (oder SQL-Untergruppen) kennst du?
- Datendefinitionssprache (DDL) - um die Struktur einer Datenbank zu definieren und zu verändern.
- Datenmanipulationssprache (DML) - um auf Daten in einer Datenbank zuzugreifen, sie zu manipulieren und zu verändern.
- Data Control Language (DCL) - um den Benutzerzugriff auf die Daten in der Datenbank zu kontrollieren und einem bestimmten Benutzer oder einer Gruppe von Benutzern Rechte zu erteilen oder zu entziehen.
- Transaction Control Language (TCL) - um Transaktionen in einer Datenbank zu steuern.
- Datenabfragesprache (DQL) - um Abfragen auf die Daten in einer Datenbank durchzuführen, um die benötigten Informationen daraus zu erhalten.
6. Nenne einige Beispiele für gängige SQL-Befehle jedes Typs.
- DDL:
CREATE
,ALTER
TABLE
,DROP
,TRUNCATE
, undADD COLUMN
- DML:
UPDATE
,DELETE
, , undINSERT
- DCL:
GRANT
undREVOKE
- TCL:
COMMIT
,SET TRANSACTION
,ROLLBACK
, undSAVEPOINT
- DQL: –
SELECT
7. Was ist eine Datenbank?
Ein strukturierter Speicherplatz, auf dem die Daten in vielen Tabellen gespeichert und so organisiert sind, dass die benötigten Informationen leicht abgerufen, bearbeitet und zusammengefasst werden können.
8. Was ist ein DBMS, und welche Arten von DBMS kennst du?
Die Abkürzung steht für Database Management System, ein Softwarepaket, mit dem verschiedene Operationen mit den in einer Datenbank gespeicherten Daten durchgeführt werden können, z. B. der Zugriff auf, die Aktualisierung, die Bearbeitung, das Einfügen und das Löschen von Daten. Es gibt verschiedene Arten von DBMS, z. B. relationale, hierarchische, netzwerk-, graphen- oder objektorientierte. Diese Typen basieren auf der Art und Weise, wie die Daten organisiert, strukturiert und im System gespeichert sind.
9. Was ist ein RDBMS? Nenne einige Beispiele für RDBMS.
Es steht für Relational Database Management System. Es ist die häufigste Art von DBMS, die für die Arbeit mit Daten verwendet wird, die in mehreren Tabellen gespeichert sind, die durch gemeinsame Schlüssel miteinander verbunden sind. Die Programmiersprache SQL wurde speziell für die Interaktion mit RDBMS entwickelt. Einige Beispiele für RDBMS sind MySQL, PostgreSQL, Oracle, MariaDB, etc.
10. Was sind Tabellen und Felder in SQL?
Eine Tabelle ist eine organisierte Menge zusammengehöriger Daten, die in tabellarischer Form, d.h. in Zeilen und Spalten, gespeichert werden. Ein Feld ist ein anderer Begriff für eine Spalte in einer Tabelle.
11. Was ist eine SQL-Abfrage, und welche Arten von Abfragen kennst du?
Eine Abfrage ist ein Stück Code, das in SQL geschrieben wurde, um auf die Daten einer Datenbank zuzugreifen oder die Daten zu verändern. Dementsprechend gibt es zwei Arten von SQL-Abfragen: select und action Abfragen. Die ersten werden verwendet, um die benötigten Daten abzurufen (dazu gehört auch das Eingrenzen, Gruppieren, Ordnen der Daten, Extrahieren der Daten aus mehreren Tabellen usw.), während die zweiten zum Erstellen, Hinzufügen, Löschen, Aktualisieren, Umbenennen der Daten usw. verwendet werden.
12. Was ist eine Subquery?
Auch innere Abfrage genannt; eine Abfrage, die innerhalb einer anderen Abfrage steht, oder eine äußere Abfrage. Eine Unterabfrage kann in den Klauseln wie SELECT
,FROM
,WHERE
,UPDATE
, usw. vorkommen. Es ist auch möglich, eine Subquery innerhalb einer anderen Subquery zu haben. Die innerste Subquery wird zuerst ausgeführt und ihr Ergebnis wird an die enthaltende Query (oder Subquery) übergeben.
13. Welche Arten von SQL-Subqueries kennst du?
- Einzeilig - gibt höchstens eine Zeile zurück.
- Mehrzeilig - gibt mindestens zwei Zeilen zurück.
- Mehrspaltig - gibt mindestens zwei Spalten zurück.
- Korreliert - eine Unterabfrage, die sich auf die Informationen aus der äußeren Abfrage bezieht.
- Verschachtelte - eine Subquery innerhalb einer anderen Subquery.
14. Was ist ein Constraint und warum sollte man Constraints verwenden?
Eine Reihe von Bedingungen, die die Art der Daten festlegen, die in jede Spalte einer Tabelle eingegeben werden können. Constraints gewährleisten die Datenintegrität in einer Tabelle und blockieren unerwünschte Aktionen.
15. Welche SQL-Beschränkungen kennst du?
DEFAULT
- liefert einen Standardwert für eine Spalte.UNIQUE
- erlaubt nur eindeutige Werte.NOT NULL
- erlaubt nur Nicht-Null-Werte.PRIMARY KEY
- erlaubt nur eindeutige und streng nicht-null Werte (NOT NULL
undUNIQUE
).FOREIGN KEY
- bietet gemeinsame Schlüssel für zwei oder mehr Tabellen.
16. Was ist eine Verbindung?
Eine Klausel, mit der Datensätze aus zwei oder mehreren Tabellen kombiniert und abgerufen werden können. SQL-Tabellen können auf der Grundlage der Beziehung zwischen den Spalten dieser Tabellen verbunden werden. Schau dir unsere SQL-Joins Tutorial für mehr Kontext.
17. Welche Arten von Verbindungen kennst du?
(INNER) JOIN
- gibt nur die Datensätze zurück, die eine definierte Join-Bedingung in beiden (oder allen) Tabellen erfüllen. Das ist eine Standard-SQL-Verknüpfung.LEFT (OUTER) JOIN
- gibt alle Datensätze aus der linken Tabelle und die Datensätze aus der rechten Tabelle zurück, die eine definierte Join-Bedingung erfüllen.RIGHT (OUTER) JOIN
- gibt alle Datensätze aus der rechten Tabelle und die Datensätze aus der linken Tabelle zurück, die eine definierte Join-Bedingung erfüllen.FULL (OUTER) JOIN
- gibt alle Datensätze aus beiden (oder allen) Tabellen zurück. Sie kann als eine Kombination aus linker und rechter Verbindung betrachtet werden.
18. Was ist ein Primärschlüssel?
Eine Spalte (oder mehrere Spalten) einer Tabelle, auf die die EinschränkungPRIMARY KEY
angewendet wurde, um eindeutige und nicht-null Werte in dieser Spalte sicherzustellen. Mit anderen Worten: Ein Primärschlüssel ist eine Kombination aus den Beschränkungen NOT NULL
und UNIQUE
. Der Primärschlüssel identifiziert jeden Datensatz der Tabelle eindeutig. Jede Tabelle sollte einen Primärschlüssel enthalten und kann nicht mehr als einen Primärschlüssel enthalten.
19. Was ist ein eindeutiger Schlüssel?
Eine Spalte (oder mehrere Spalten) einer Tabelle, für die die UNIQUE
Einschränkung auferlegt wurde, um eindeutige Werte in dieser Spalte zu gewährleisten, einschließlich eines möglichen NULL
Wert (der einzige).
20. Was ist ein Fremdschlüssel?
Eine Spalte (oder mehrere Spalten) einer Tabelle, der die EinschränkungFOREIGN KEY
auferlegt wurde, um diese Spalte mit dem Primärschlüssel einer anderen Tabelle (oder mehrerer Tabellen) zu verknüpfen. Der Zweck von Fremdschlüsseln ist es, die verschiedenen Tabellen einer Datenbank miteinander zu verbinden.
21. Was ist ein Index?
Eine spezielle Datenstruktur, die sich auf eine Datenbanktabelle bezieht und dazu dient, deren wichtige Teile zu speichern und eine schnellere Suche und Abfrage von Daten zu ermöglichen. Indizes sind besonders effizient für große Datenbanken, wo sie die Abfrageleistung erheblich verbessern.
22. Welche Arten von Indizes kennst du?
- Einzigartiger Index - lässt keine Duplikate in einer Tabellenspalte zu und hilft so, die Datenintegrität zu wahren.
- Geclusterter Index - definiert die physische Reihenfolge der Datensätze einer Datenbanktabelle und führt die Datensuche anhand der Schlüsselwerte durch. Eine Tabelle kann nur einen geclusterten Index haben.
- Nicht geclusterter Index - behält die Reihenfolge der Tabellendatensätze bei, die nicht mit der physischen Reihenfolge der tatsächlichen Daten auf der Festplatte übereinstimmt. Das bedeutet, dass die Daten an einem Ort gespeichert werden und ein nicht geclusterter Index an einem anderen. Eine Tabelle kann mehrere nicht geclusterte Indizes haben.
23. Was ist ein Schema?
Eine Sammlung von Datenbankstrukturelementen wie Tabellen, Stored Procedures, Indizes, Funktionen und Triggern. Sie zeigt die gesamte Datenbankarchitektur, legt die Beziehungen zwischen den verschiedenen Objekten einer Datenbank fest und definiert verschiedene Zugriffsberechtigungen für sie.
24. Was ist ein SQL-Kommentar?
Eine für Menschen lesbare Erklärung, was ein bestimmter Code tut. SQL-Codekommentare können einzeilig sein (mit einem vorangestellten doppelten Gedankenstrich --
) oder sich über mehrere Zeilen erstrecken (wie folgt: /*comment_text*/
). Wenn die SQL-Engine läuft, ignoriert sie Codekommentare. Der Zweck des Hinzufügens von SQL-Codekommentaren ist es, den Code für diejenigen, die ihn in Zukunft lesen werden, verständlicher zu machen.
25. Was ist ein SQL-Operator?
Ein reserviertes Zeichen, eine Zeichenkombination oder ein Schlüsselwort, das in SQL-Abfragen verwendet wird, um eine bestimmte Operation durchzuführen. SQL-Operatoren werden häufig zusammen mit der WHERE
Klausel verwendet, um eine Bedingung (oder mehrere Bedingungen) zum Filtern der Daten festzulegen.
26. Welche Arten von SQL-Operatoren kennst du?
- Arithmetic (
+
,-
,*
,/
, etc.) - Comparison (
>
,<
,=
,>=
, etc.) - Verbindung (
+=
,-=
,*=
,/=
, etc.) - Logical (
AND
,OR
,NOT
,BETWEEN
, etc.) - String (
%
,_
,+
,^
, etc.) - Setze (
UNION
,UNION ALL
,INTERSECT
, undMINUS
(oderEXCEPT
))
27. Was ist ein Alias?
Ein temporärer Name, der einer Tabelle (oder einer Spalte in einer Tabelle) bei der Ausführung einer bestimmten SQL-Abfrage gegeben wird. Aliase werden verwendet, um die Lesbarkeit des Codes zu verbessern und den Code kompakter zu machen. Ein Alias wird mit dem Schlüsselwort AS
eingeführt:
SELECT col_1 AS column
FROM table_name;
28. Was ist eine Klausel?
Eine Bedingung, die einer SQL-Abfrage auferlegt wird, um die Daten zu filtern und das gewünschte Ergebnis zu erhalten. Einige Beispiele sind WHERE
,LIMIT
,HAVING
,LIKE
,AND
,OR
,ORDER BY
, usw.
29. Welche Aussagen werden häufig im Zusammenhang mit dem SELECT
abfragen?
Die häufigsten sind FROM
, GROUP BY
, JOIN
, WHERE
, ORDER BY
, LIMIT
, und HAVING
.
30. Wie erstellt man eine Tabelle?
Benutze die AnweisungCREATE TABLE
. Um zum Beispiel eine Tabelle mit drei Spalten mit vordefinierten Datentypen zu erstellen, verwenden wir die folgende Syntax:
CREATE TABLE table_name (col_1 datatype,
col_2 datatype,
col_3 datatype);
31. Wie kann ich eine Tabelle aktualisieren?
Mit der AnweisungUPDATE. Die Syntax lautet:
UPDATE table_name
SET col_1 = value_1, column_2 = value_2
WHERE condition;
32. Wie lösche ich eine Tabelle aus einer Datenbank?
Benutze die AnweisungDROP TABLE
. Die Syntax lautet: DROP TABLE table_name;
.
33. Wie kann ich die Anzahl der Datensätze in einer Tabelle ermitteln?
Die Verwendung der COUNT()
Aggregatfunktion mit dem Sternchen als Argument: SELECT COUNT(*) FROM table_name;
.
34. Wie sortiere ich Datensätze in einer Tabelle?
Mit der ORDER BY
Anweisung:
SELECT * FROM table_name
ORDER BY col_1;
Wir können mit dem SchlüsselwortDESC
angeben, dass wir eine absteigende Reihenfolge benötigen ; andernfalls wird die Reihenfolge standardmäßig aufsteigend sein. Wir können auch nach mehr als einer Spalte sortieren und für jede Spalte separat eine auf- oder absteigende Reihenfolge festlegen. Zum Beispiel:
SELECT * FROM table_name
ORDER BY col_1 DESC, col_3, col_6 DESC;
35. Wie wähle ich alle Spalten in einer Tabelle aus?
Verwendung des Sternchens * mit der AnweisungSELECT
. Die Syntax lautet: SELECT * FROM table_name;
.
36. Wie kann ich gemeinsame Datensätze aus zwei Tabellen auswählen?
Using the INTERSECT statement:
SELECT * FROM table_1
INTERSECT
SELECT * FROM table_1;
37. Was ist die DISTINCT-Anweisung und wie verwendest du sie?
Diese Anweisung wird zusammen mit der AnweisungSELECT
verwendet , um Duplikate herauszufiltern und nur eindeutige Werte aus einer Tabellenspalte zurückzugeben. Die Syntax lautet:
SELECT DISTINCT col_1
FROM table_name;
38. Was sind Entitäten? Nenne einige Beispiele.
Eine Entität ist ein Objekt, ein Lebewesen, ein Ort oder ein Phänomen der realen Welt, für das Daten erfasst und in einer Datenbanktabelle gespeichert werden können. Jede Entität entspricht einer Zeile in einer Tabelle, während die Spalten der Tabelle ihre Eigenschaften beschreiben. Einige Beispiele für Entitäten sind Banktransaktionen, Schüler in einer Schule, verkaufte Autos, etc.
39. Was sind Beziehungen? Nenne einige Beispiele.
Beziehungen sind die Verbindungen und Korrelationen zwischen Entitäten, d.h. wie zwei oder mehr Tabellen einer Datenbank miteinander verbunden sind. Wir können zum Beispiel eine ID desselben Kunden in einer Tabelle mit Verkaufsdaten und in einer Kundentabelle finden.
40. Was ist NULL wert? Was ist der Unterschied zu einer Null oder einer Leerstelle?
Ein NULL
Wert zeigt an, dass für eine bestimmte Zelle einer Tabelle keine Daten vorhanden sind. Stattdessen ist Null ein gültiger numerischer Wert und eine leere Zeichenkette ist eine gültige Zeichenkette mit der Länge Null.
40 Top Intermediate SQL Interview Fragen und Antworten
In diesem Abschnitt werfen wir einen Blick auf die 40 beliebtesten SQL-Zwischenfragen und -Antworten, damit du weißt, was du von deinem Gesprächspartner erwarten kannst. Diese Fragen sind eher für SQL-Praktiker mit ein paar Jahren Erfahrung geeignet.
1. Was ist eine Funktion in SQL und warum sollte man Funktionen verwenden?
Ein Datenbankobjekt, das eine Reihe von SQL-Anweisungen darstellt, die häufig für eine bestimmte Aufgabe verwendet werden. Eine Funktion nimmt einige Eingabeparameter entgegen, führt Berechnungen oder andere Manipulationen an ihnen durch und gibt das Ergebnis zurück. Funktionen helfen dabei, die Lesbarkeit des Codes zu verbessern und die Wiederholung der gleichen Codeschnipsel zu vermeiden.
2. Welche Arten von SQL-Funktionen kennst du?
- Aggregatfunktionen - arbeiten mit mehreren, in der Regel gruppierten Datensätzen für die angegebenen Spalten einer Tabelle und geben einen einzigen Wert zurück (in der Regel nach Gruppe).
- Skalare Funktionen - arbeiten mit jedem einzelnen Wert und geben einen einzigen Wert zurück.
Auf der anderen Seite können SQL-Funktionen eingebaut (vom System definiert) oder benutzerdefiniert (vom Benutzer für seine speziellen Bedürfnisse erstellt) sein.
3. Welche Aggregatfunktionen kennst du?
AVG()
- gibt den Durchschnittswert zurückSUM()
- gibt die Summe der Werte zurückMIN()
- gibt den Mindestwert zurückMAX()
- gibt den maximalen Wert zurückCOUNT()
- gibt die Anzahl der Zeilen zurück, einschließlich derer mit NullwertenFIRST()
- gibt den ersten Wert aus einer Spalte zurückLAST()
- gibt den letzten Wert aus einer Spalte zurück
4. Welche skalaren Funktionen kennst du?
LEN()
(in anderen SQL-Varianten -LENGTH()
) - gibt die Länge einer Zeichenkette zurück, einschließlich der LeerzeichenUCASE()
(in anderen SQL-Varianten -UPPER()
) - gibt eine in Großbuchstaben konvertierte Zeichenkette zurückLCASE()
(in anderen SQL-Varianten -LOWER()
) - gibt eine in Kleinbuchstaben konvertierte Zeichenkette zurückINITCAP(
) - gibt einen String zurück, der in die Groß- und Kleinschreibung des Titels umgewandelt wurde (d.h. jedes Wort des Strings beginnt mit einem Großbuchstaben)MID()
(in anderen SQL-Varianten -SUBSTR()
) - extrahiert eine Teilzeichenkette aus einem StringROUND()
- gibt den numerischen Wert gerundet auf eine bestimmte Anzahl von Dezimalstellen zurückNOW()
- gibt das aktuelle Datum und die Uhrzeit zurück
5. Was sind Fallmanipulationsfunktionen? Nenne einige Beispiele.
Funktionen zur Groß-/Kleinschreibung sind eine Untergruppe der Zeichenfunktionen und werden verwendet, um die Groß-/Kleinschreibung von Textdaten zu ändern. Mit diesen Funktionen können wir die Daten in Groß-, Klein- oder Titelbuchstaben umwandeln.
UCASE()
(in anderen SQL-Varianten -UPPER(
)) - gibt eine in Großbuchstaben konvertierte Zeichenkette zurückLCASE()
(in anderen SQL-Varianten -LOWER()
) - gibt eine in Kleinbuchstaben konvertierte Zeichenkette zurückINITCAP()
- gibt einen String zurück, der in die Groß- und Kleinschreibung des Titels umgewandelt wurde (d.h. jedes Wort des Strings beginnt mit einem Großbuchstaben)
6. Was sind Funktionen zur Zeichenmanipulation? Nenne einige Beispiele.
Zeichenmanipulationsfunktionen sind eine Untergruppe der Zeichenfunktionen und werden verwendet, um die Textdaten zu verändern.
CONCAT()
- Verbindet zwei oder mehr String-Werte und hängt den zweiten String an das Ende des ersten anSUBSTR()
- gibt einen Teil eines Strings zurück, der den angegebenen Start- und Endpunkten entsprichtLENGTH()
(in anderen SQL-Varianten -LEN()
) - gibt die Länge einer Zeichenkette zurück, einschließlich der LeerzeichenREPLACE()
- ersetzt alle Vorkommen einer definierten Teilzeichenkette in einer angegebenen Zeichenkette durch eine andere TeilzeichenketteINSTR()
- gibt die numerische Position einer definierten Teilzeichenkette in einer angegebenen Zeichenkette zurückLPAD()
undRPAD()
- die Auffüllung des links-/rechtsbündigen Zeichens für rechtsbündige/linksbündige Werte zurückgebenTRIM()
- entfernt alle definierten Zeichen sowie Leerzeichen von den linken, rechten oder beiden Enden einer angegebenen Zeichenkette
7. Was ist der Unterschied zwischen lokalen und globalen Variablen?
Auf lokale Variablen kann nur innerhalb der Funktion, in der sie deklariert wurden, zugegriffen werden. Stattdessen werden globale Variablen, die außerhalb jeder Funktion deklariert werden, in festen Speicherstrukturen gespeichert und können im gesamten Programm verwendet werden.
8. Wie lautet die Standardreihenfolge der Daten in der ORDER BY
Aussage, und wie änderst du sie?
Standardmäßig ist die Reihenfolge aufsteigend. Um es in absteigend zu ändern, müssen wir das Schlüsselwort DESC
wie folgt hinzufügen:
SELECT * FROM table_name
ORDER BY col_1 DESC;
9. Welche Set-Operatoren kennst du?
UNION
- gibt die Datensätze zurück, die durch mindestens eine von zwei Abfragen erhalten wurden (ohne Duplikate)UNION ALL
- gibt die Datensätze zurück, die durch mindestens eine von zwei Abfragen erhalten wurden (einschließlich Duplikate)INTERSECT
- gibt die von beiden Abfragen erhaltenen Datensätze zurückEXCEPT
(genanntMINUS
in MySQL und Oracle) - gibt nur die Datensätze zurück, die durch die erste Abfrage erhalten wurden, nicht aber die zweite
10. Welcher Operator wird in der Abfrage für den Mustervergleich verwendet?
Der LIKE
Operator in Kombination mit den Platzhaltern%
und _
. Der Platzhalter %
steht für eine beliebige Anzahl von Zeichen, einschließlich Null, während _
- ausschließlich ein Zeichen darstellt .
11. Was ist der Unterschied zwischen einem Primärschlüssel und einem eindeutigen Schlüssel?
Während beide Arten von Schlüsseln für eindeutige Werte in einer Tabellenspalte sorgen, identifiziert der erste Schlüssel jeden Datensatz der Tabelle eindeutig und der zweite verhindert Duplikate in dieser Spalte.
12. Was ist ein zusammengesetzter Primärschlüssel?
Der Primärschlüssel einer Tabelle, der auf mehreren Spalten basiert.
13. In welcher Reihenfolge erscheinen die gemeinsamen Anweisungen in der SELECT-Abfrage?
SELECT
– FROM
– JOIN
– ON
– WHERE
– GROUP BY
– HAVING
– ORDER BY
– LIMIT
14. In welcher Reihenfolge führt der Interpreter die gemeinsamen Anweisungen in der SELECT-Abfrage aus?
FROM
– JOIN
– ON
– WHERE
– GROUP BY
– HAVING
– SELECT
– ORDER BY
– LIMIT
15. Was ist eine Ansicht und warum sollte man sie verwenden?
Eine virtuelle Tabelle, die eine Teilmenge von Daten enthält, die aus einer oder mehreren Datenbanktabellen (oder anderen Ansichten) abgerufen werden. Views brauchen sehr wenig Platz, vereinfachen komplexe Abfragen, beschränken den Zugriff auf die Daten aus Sicherheitsgründen, ermöglichen Datenunabhängigkeit und fassen Daten aus mehreren Tabellen zusammen.
16. Können wir eine Ansicht erstellen, die auf einer anderen Ansicht basiert?
Ja. Dies wird auch als verschachtelte Ansichten bezeichnet. Wir sollten es jedoch vermeiden, mehrere Ansichten zu verschachteln, da der Code dann schwer zu lesen und zu debuggen ist.
17. Können wir eine Ansicht weiter verwenden, wenn die ursprüngliche Tabelle gelöscht wird?
Nein. Alle Ansichten, die auf dieser Tabelle basieren, werden ungültig, wenn du die Basistabelle löschst. Wenn wir trotzdem versuchen, eine solche Ansicht zu verwenden, erhalten wir eine Fehlermeldung.
18. Welche Arten von SQL-Beziehungen kennst du?
- Eins-zu-eins - jeder Datensatz in einer Tabelle entspricht nur einem Datensatz in einer anderen Tabelle
- One-to-many - jeder Datensatz in einer Tabelle entspricht mehreren Datensätzen in einer anderen Tabelle
- Many-to-many - jeder Datensatz in beiden Tabellen entspricht mehreren Datensätzen in einer anderen Tabelle
19. Was sind die möglichen Werte eines BOOLEAN-Datenfeldes?
In einigen SQL-Varianten, wie z.B. PostgreSQL, existiert der Datentyp BOOLEAN explizit und nimmt die Werte TRUE
,FALSE
, oder NULL
an . In anderen Varianten, wie z.B. Microsoft SQL Server, wird der Datentyp BIT verwendet, um boolesche Werte als ganze Zahlen 1
(wahr) oder 0
(falsch) zu speichern .
20. Was ist Normalisierung in SQL und warum wird sie verwendet?
Normalisierung ist ein Prozess des Datenbankdesigns, bei dem Daten so organisiert und umstrukturiert werden, dass Datenredundanz, Abhängigkeiten, Duplikationen und Inkonsistenzen reduziert werden. Dies führt zu einer verbesserten Datenintegrität, mehr Tabellen innerhalb der Datenbank, einer effizienteren Datenzugriffs- und Sicherheitskontrolle und einer größeren Abfrageflexibilität.
21. Was ist Denormalisierung in SQL und warum wird sie verwendet?
Die Denormalisierung ist das Gegenteil der Normalisierung: Sie führt Datenredundanz ein und kombiniert Daten aus mehreren Tabellen. Die Denormalisierung optimiert die Leistung der Datenbankinfrastruktur in Situationen, in denen Leseoperationen wichtiger sind als Schreiboperationen, da sie hilft, komplexe Joins zu vermeiden und die Zeit für die Ausführung von Abfragen zu reduzieren.
22. Was ist der Unterschied zwischen der Umbenennung einer Spalte und der Vergabe eines Aliasnamens?
Das Umbenennen einer Spalte bedeutet, dass ihr tatsächlicher Name in der ursprünglichen Tabelle dauerhaft geändert wird. Einer Spalte einen Alias zu geben, bedeutet, ihr bei der Ausführung einer SQL-Abfrage einen temporären Namen zu geben, um den Code lesbarer und kompakter zu machen.
23. Was ist der Unterschied zwischen verschachtelten und korrelierten Unterabfragen?
Eine korrelierte Subquery ist eine innere Abfrage, die in eine größere (äußere) Abfrage eingebettet ist und sich bei ihrer Ausführung auf die Werte der äußeren Abfrage bezieht. Das bedeutet, dass eine korrelierte Subquery von ihrer äußeren Abfrage abhängt. Stattdessen ist eine nicht korrelierte Subquery nicht auf die Daten der äußeren Abfrage angewiesen und kann unabhängig von ihr ausgeführt werden.
24. Was ist der Unterschied zwischen geclusterten und nicht geclusterten Indizes?
Während ein geclusterter Index die physische Reihenfolge der Datensätze einer Tabelle definiert und die Datensuche anhand der Schlüsselwerte durchführt, behält ein nicht geclusterter Index die Reihenfolge der Datensätze bei, die nicht mit der physischen Reihenfolge der tatsächlichen Daten auf der Festplatteübereinstimmt. Eine Tabelle kann nur einen geclusterten Index, aber viele nicht geclusterte Indizes haben.
25. Was ist die CASE()
Funktion?
Der Weg zur Implementierung der if-then-else Logik in SQL. Diese Funktion überprüft nacheinander die angegebenen Bedingungen in den WHEN
Klauseln und gibt den Wert aus der entsprechenden THEN
Klausel zurück , wenn die erste Bedingung erfüllt ist. Wenn keine der Bedingungen erfüllt ist, gibt die Funktion den Wert aus der ELSE
Klausel zurück, falls diese angegeben ist, andernfalls gibt sie NULL
zurück . Die Syntax lautet:
CASE
WHEN condition_1 THEN value_1
WHEN condition_2 THEN value_2
WHEN condition_3 THEN value_3
...
ELSE value
END;
26. Was ist der Unterschied zwischen dem DELETE
und TRUNCATE
Aussagen?
DELETE
ist ein umkehrbarer DML-Befehl (Data Manipulation Language), der verwendet wird, um eine oder mehrere Zeilen aus einer Tabelle auf der Grundlage der in der WHERE
Klausel angegebenen Bedingungen zu löschen . Stattdessen ist TRUNCATE
ein irreversibler DDL-Befehl (Data Definition Language), mit dem alle Zeilen aus einer Tabelle gelöscht werden. DELETE
arbeitet langsamer als TRUNCATE
. Außerdem können wir die Anweisung TRUNCATE
nicht für eine Tabelle verwenden, die einen Fremdschlüssel enthält.
27. Was ist der Unterschied zwischen dem DROP
und TRUNCATE
Aussagen?
DROP
löscht eine Tabelle vollständig aus der Datenbank, einschließlich der Tabellenstruktur und aller zugehörigen Constraints, Beziehungen zu anderen Tabellen und Zugriffsrechte. TRUNCATE
löscht alle Zeilen aus einer Tabelle, ohne die Tabellenstruktur und Constraints zu verändern. DROP
arbeitet langsamer als TRUNCATE
. Beides sind unumkehrbare DDL-Befehle (Data Definition Language).
28. Was ist der Unterschied zwischen den HAVING- und WHERE-Anweisungen?
Die erste arbeitet mit aggregierten Daten, nachdem sie gruppiert wurden, während die zweite jede Zeile einzeln überprüft. Wenn beide Anweisungen in einer Abfrage vorhanden sind, erscheinen sie in der folgenden Reihenfolge: WHERE
-GROUP BY
- HAVING
. Die SQL-Engine interpretiert sie auch in der gleichen Reihenfolge.
29. Wie fügst du einen Datensatz zu einer Tabelle hinzu?
Verwende die Anweisung INSERT INTO
in Kombination mit VALUES
. Die Syntax lautet:
INSERT INTO table_name
VALUES (value_1, value_2, ...);
30. Wie lösche ich einen Datensatz aus einer Tabelle?
Benutze die AnweisungDELETE
. Die Syntax lautet:
DELETE FROM table_name
WHERE condition;
Auf diese Weise können wir auch mehrere Datensätze löschen, wenn sie die angegebene Bedingung erfüllen.
31. Wie füge ich eine Spalte zu einer Tabelle hinzu?
Verwende die Anweisung ALTER TABLE
in Kombination mit ADD
. Die Syntax lautet:
ALTER TABLE table_name
ADD column_name datatype;
32. Wie benenne ich eine Spalte einer Tabelle um?
Die Verwendung der ALTER TABLE
Anweisung in Kombination mit RENAME COLUMN ... TO ...
Die Syntax lautet:
ALTER TABLE table_name
RENAME COLUMN old_column_name TO new_column_name;
33. Wie lösche ich eine Spalte aus einer Tabelle?
Verwende die Anweisung ALTER TABLE
in Kombination mit DROP COLUMN
. Die Syntax lautet:
ALTER TABLE table_name
DROP COLUMN column_name;
34. Wie wähle ich alle geraden oder alle ungeraden Datensätze in einer Tabelle aus?
Überprüfe den Rest der Division durch 2. In einigen SQL-Versionen (z. B. PostgreSQL und My SQL) verwenden wir die Funktion MOD
, in den anderen (Microsoft SQL Server und SQLite) - den Modulo-Operator (%
). Um alle geraden Datensätze mit MOD
auszuwählen:
SELECT * FROM table_name
WHERE MOD(ID_column, 2) = 0;
Um alle geraden Datensätze auszuwählen mit %
:
SELECT * FROM table_name
WHERE ID_column % 2 = 0;
Um alle ungeraden Datensätze auszuwählen, ist die Syntax in beiden Fällen identisch, nur dass wir den Ungleichheitsoperator <>
anstelle von =
.
35. Wie verhindert man doppelte Datensätze bei einer Abfrage?
Die Verwendung der DISTINCT
Anweisung in Kombination mit SELECT
oder die Erstellung eines eindeutigen Schlüssels für diese Tabelle.
36. Wie füge ich viele Zeilen in eine Tabelle ein?
Verwende die Anweisung INSERT INTO
in Kombination mit VALUES
. Die Syntax lautet:
INSERT INTO table_name
VALUES (value_1, value_2, ...),
(value_3, value_4, ...),
(value_5, value_6, ...),
...;
37. Wie finde ich den n-ten höchsten Wert in einer Spalte einer Tabelle?
Benutze die OFFSET
Klausel. Um zum Beispiel den sechsthöchsten Wert einer Spalte zu finden, würden wir die folgende Syntax verwenden:
SELECT * FROM table_name
ORDER BY column_name DESC
LIMIT 1
OFFSET 5;
38. Wie finde ich die Werte in einer Textspalte einer Tabelle, die mit einem bestimmten Buchstaben beginnen?
Verwendung des LIKE
Operators in Kombination mit den Platzhaltern%
und _
. Wir müssen zum Beispiel alle Nachnamen in einer Tabelle finden, die mit "A" beginnen. Die Frage ist:
SELECT * FROM table_name
WHERE surname LIKE 'A_';
Hier gehen wir davon aus, dass ein Nachname mindestens zwei Buchstaben enthalten muss. Ohne diese Annahme (d.h., dass ein Nachname nur A sein kann), lautet die Abfrage wie folgt:
SELECT * FROM table_name
WHERE surname LIKE 'A%';
39. Wie finde ich die letzte ID in einer Tabelle?
Benutze die FunktionMAX()
. Ansonsten können wir in vielen SQL-Versionen die folgende Syntax verwenden:
SELECT id
FROM table_name
ORDER BY id DESC
LIMIT 1;
oder in Microsoft SQL Server:
SELECT TOP 1 id
FROM table_name
ORDER BY id DESC
40. Wie wähle ich zufällige Zeilen aus einer Tabelle aus?
Benutze die Funktion RAND()
in Kombination mit ORDER BY
und LIMIT
. In einigen SQL-Varianten, wie z.B. PostgreSQL, heißt es RANDOM()
. Der folgende Code gibt zum Beispiel fünf zufällige Zeilen aus einer Tabelle in MySQL zurück:
SELECT * FROM table_name
ORDER BY RAND()
LIMIT 5;
Dein Team mit SQL weiterbilden
Während die Vorbereitung auf SQL-Interviews für Arbeitssuchende und Personalverantwortliche entscheidend ist, ist es für Unternehmen genauso wichtig, in kontinuierliche SQL-Schulungen für ihre Teams zu investieren. Die Fähigkeit, mit Daten zu arbeiten, ist wichtiger denn je. Wenn du also sicherstellst, dass deine Mitarbeiter/innen über gute SQL-Kenntnisse verfügen, kann das den Erfolg deines Unternehmens entscheidend beeinflussen.
Wenn du als Teamleiter oder Geschäftsinhaber sicherstellen willst, dass dein gesamtes Team SQL beherrscht, bietet DataCamp for Business maßgeschneiderte Trainingsprogramme an, die deinen Mitarbeitern helfen, SQL-Kenntnisse zu erwerben - von den Grundlagen bis hin zu fortgeschrittenen Konzepten. Wir können dir helfen:
- Gezielte Lernwege: Anpassbar an das aktuelle Qualifikationsniveau deines Teams und deine geschäftlichen Anforderungen.
- Praktische Übungen: Praxisnahe Szenarien und Übungen, die das Lernen verstärken und das Behalten verbessern.
- Fortschrittskontrolle: Werkzeuge, um die Fortschritte deines Teams zu überwachen und zu bewerten und sicherzustellen, dass sie ihre Lernziele erreichen.
Die Investition in SQL-Weiterbildung durch Plattformen wie DataCamp verbessert nicht nur die Fähigkeiten deines Teams, sondern verschafft deinem Unternehmen auch einen strategischen Vorteil, damit du wettbewerbsfähig bleibst und Ergebnisse liefern kannst. Sprich mit einem Mitglied unseres Teams und fordere noch heute eine Demo an.
Fazit
Zusammenfassend haben wir die 80 wichtigsten SQL-Interviewfragen für Anfänger und Fortgeschrittene und die richtigen Antworten darauf besprochen. Hoffentlich helfen dir diese Informationen, dich auf das Vorstellungsgespräch vorzubereiten und dich sicherer zu fühlen, egal ob du eine Stelle im Bereich SQL suchst oder Bewerber/innen für eine mittlere SQL-Stelle einstellst.
Wenn du das Gefühl hast, dass du mehr Training brauchst, um dich besser auf ein Vorstellungsgespräch vorzubereiten, solltest du die folgenden SQL-Kurse und Tracks von DataCamp in Betracht ziehen:
Verbessere die SQL-Kenntnisse deines Teams
Trainiere dein Team in SQL mit DataCamp for Business. Umfassende Schulungen, praktische Projekte und detaillierte Leistungskennzahlen für dein Unternehmen.
FAQs
Wie kann ich anfangen, SQL zu lernen?
Um SQL zu lernen, solltest du mit den Grundlagen von Datenbankkonzepten und relationalen Datenbankmanagementsystemen beginnen. DataCamp hat viele Ressourcen, die dir den Einstieg erleichtern, wie z.B. den Kurs Einführung in SQL, Data Analyst in SQL Career Track und den SQL-Spickzettel. Alternativ kannst du auch die Seite SQL-Kurse besuchen, um alle Ressourcen zu durchsuchen.
Wo kann ich echte SQL-Probleme zum Üben finden?
Auf der DataCamp-Plattform gibt es viele SQL-Projekte, mit denen du deine Fähigkeiten verbessern kannst und die für alle Niveaus geeignet sind.
Was sind häufige SQL-Interview-Fragen für Anfänger?
Anfänger werden oft gebeten, grundlegende SQL-Konzepte zu erklären, z.B. den Unterschied zwischen SELECT
und INSERT
Anweisungen, den Zweck von Schlüsseln in einer Datenbank (Primär- und Fremdschlüssel) und einfache Abfragen zum Abrufen von Daten aus einer einzelnen Tabelle mithilfe von Bedingungen (WHERE
Klausel).
Was sind häufige SQL-Interview-Fragen für Fortgeschrittene?
Fortgeschrittene Praktiker werden vielleicht mit Fragen zu komplexeren SQL-Konzepten konfrontiert, wie z.B. Joins (INNER, LEFT, RIGHT, FULL), Unterabfragen, Aggregationen und Gruppierung von Daten (GROUP BY
) und der Verwendung von Mengenoperationen wie UNION, INTERSECT und EXCEPT. Sie können auch gebeten werden, Probleme zu lösen, bei denen es um die Optimierung von Abfragen für die Leistung geht.
Wie sollte ich mich auf ein SQL-Interview vorbereiten?
Die Vorbereitung auf ein SQL-Interview sollte Folgendes beinhalten:
- Wiederholung von SQL-Grundlagen und fortgeschrittenen Konzepten.
- Übe das Schreiben von Abfragen, um gängige Probleme zu lösen.
- Verstehen von Datenbankdesign und Normalisierung.
- Sich mit dem spezifischen SQL-Dialekt vertraut machen, den der Arbeitgeber verwendet (z.B. PostgreSQL, MySQL, SQL Server).
- Online verfügbare Beispielfragen und -aufgaben zum Vorstellungsgespräch lösen.
Was sollte ich bei einem technischen SQL-Interview erwarten und wie kann ich meine Fähigkeiten am besten unter Beweis stellen?
In einem technischen SQL-Interview kannst du Fragen erwarten, die deine Kenntnisse der SQL-Syntax, des Datenbankdesigns, der Abfrageoptimierung und der Problemlösungsfähigkeiten mit SQL testen. Um deine Fähigkeiten zu demonstrieren:
- Übe, deinen Gedankengang beim Lösen von SQL-Aufgaben zu erklären.
- Sei darauf vorbereitet, fehlerfreie SQL-Abfragen an einem Whiteboard oder in einer Online-Codierumgebung zu schreiben.
- Zeige anhand von Beispielen, wie du komplexe Konzepte wie Joins, Unterabfragen und Transaktionen verstehst.
- Sprich über deine praktischen Erfahrungen bei der Arbeit mit Datenbanken und nenne Herausforderungen, die du gemeistert oder Optimierungen vorgenommen hast.
Wie wichtig ist es, bestimmte SQL-Dialekte zu lernen, und auf welche sollte ich mich konzentrieren?
Während die Kernsyntax von SQL in verschiedenen RDBMS einheitlich ist, hat jedes System (wie MySQL, PostgreSQL, SQL Server, Oracle) seinen eigenen Dialekt mit einzigartigen Eigenschaften und Funktionen. Das Erlernen eines bestimmten SQL-Dialekts ist wichtig, wenn du auf Rollen abzielst, die ein bestimmtes RDBMS verwenden. Konzentriere dich auf den Dialekt, der für deine Karriereziele am wichtigsten ist oder der in deiner Branche am häufigsten verwendet wird. Wenn du jedoch eine solide Grundlage in Standard-SQL hast, ist es einfacher, sich bei Bedarf an verschiedene Dialekte anzupassen.
Der Blog