Die 13 wichtigsten SQL-Befehle, die jeder Programmierer kennen sollte

Die 13 wichtigsten SQL-Befehle, die jeder Programmierer kennen sollte

Datenbanken treiben das moderne Web an. Jede große oder dynamische Website verwendet in irgendeiner Weise eine Datenbank und in Kombination mit Strukturierte Abfragesprache (SQL) , sind die Möglichkeiten der Datenmanipulation wirklich endlos. Wenn Sie SQL bereits kennen, sollten Sie sich diese Programmierkenntnisse ansehen, die alle Website-Entwickler kennen sollten.



Heute zeige ich euch einige der Kern-SQL-Befehle Sie müssen als Programmierer wissen.

Es gibt viele Namen für Daten, die von einer Datenbanktabelle zurückgegeben werden. Daten werden allgemein als . bezeichnet Reihen , Aufzeichnungen , oder Tupel . Ich werde diese Begriffe in diesem Artikel synonym verwenden.





Vorwort

Alle heutigen Beispiele basieren auf vier fiktiven Tabellen. Die Kunde Tabelle enthält den Namen und das Alter der Kunden:

Die Höhen Tabelle enthält den Namen und die Größe einer Person:



Die Mitarbeiter Tabelle enthält den Namen und das Alter der Mitarbeiter -- genau wie die Kundentabelle:

Der Finaltisch rief Personen enthält den Namen und das Alter von Personen, genau wie die Kunden- und Mitarbeitertabellen:

1. Wählen Sie

Die auswählen -Anweisung ist die einfachste, und Sie müssen sie unbedingt verstehen, da sie fast allen anderen Befehlen zugrunde liegt. Es wird als bewährte Methode angesehen, Ihre reservierten SQL-Wörter in Großbuchstaben zu schreiben, da dies den Befehl leichter lesbar und verständlich macht.

Wie der Name schon sagt, wird select verwendet, um auswählen Daten aus einer Datenbank. Hier ist die einfachste Verwendung:

SELECT * FROM table;

Dazu gibt es zwei Teile. Der erste Teil ( AUSWÄHLEN * ) gibt an, welche Spalten Sie auswählen möchten. Das Sternchen zeigt an, dass Sie alle Spalten in der Tabelle auswählen möchten. Der zweite Teil ( FROM-Tabelle ) teilt Ihrer Datenbank-Engine mit, woher Sie diese Daten abrufen möchten. Ersetzen Sie 'table' durch den Namen Ihrer Datenbanktabelle.

Diese Auswahl wird als 'Auswahlstern' bezeichnet. Die Verwendung des Sternchens ist eine gute Möglichkeit, um herauszufinden, welche Daten in einer Tabelle enthalten sind, aber ich empfehle Ihnen nicht, es für Produktionscode zu verwenden. Wenn Sie einen ausgewählten Stern verwenden, liegt es an der Datenbank-Engine, Ihnen die gewünschten Daten zu präsentieren. Sie haben keine Kontrolle über die Reihenfolge, in der die Daten zurückgegeben werden. Wenn also jemand der Tabelle eine neue Spalte hinzufügt, stellen Sie möglicherweise fest, dass Ihre Variablen in Ihrer Programmiersprache nicht mehr die richtigen Daten darstellen. Glücklicherweise gibt es eine Lösung.

Sie können explizit angeben, welche Spalten Sie abrufen möchten, wie folgt:

SELECT age, name FROM people;

Diese Abfrage ruft die Spalten 'Alter' und 'Name' aus der Tabelle 'Personen' ab. So explizit zu sein, kann etwas mühsam sein, wenn Sie viele Daten haben, aber dies reduziert zukünftige Probleme und macht Ihr SQL für zukünftige Programmierer leichter verständlich.

Wenn Sie ein zusätzliches Datenelement auswählen möchten, das jedoch in keiner Ihrer Tabellen gespeichert ist, können Sie dies wie folgt tun:

SELECT age, '1234' FROM people;

Jede Zeichenfolge in einfachen Anführungszeichen wird zurückgegeben, anstatt einem Spaltennamen zu entsprechen.

2. Wo

Der select-Befehl eignet sich hervorragend zum Abrufen von Daten, aber was ist, wenn Sie die Ergebnisse etwas stärker filtern möchten? Wie wäre es, nur Menschen mit blauen Augen zu holen? Was ist mit Menschen, die im Januar geboren wurden und als Mechaniker arbeiten? Hier ist der wo Befehl kommt. Dadurch können Sie Bedingungen auf die Auswahl anwenden und sie einfach an das Ende der Anweisung anhängen:

SELECT age, name FROM people WHERE age > 10;

Diese Abfrage ist jetzt auf Personen beschränkt, die älter als 10 Jahre sind. Sie können mehrere Bedingungen mit dem kombinieren UND Operator:

SELECT age, name FROM people WHERE age > 10 AND age <20;

Die UND Der Befehl funktioniert genauso wie in der englischen Sprache: Er wendet eine andere Bedingung auf die Anweisung an. In diesem Beispiel wären die zurückgegebenen Daten alle Datensätze mit einem Alter zwischen 10 und 20. Da keine übereinstimmenden Ergebnisse vorliegen, werden keine Daten zurückgegeben.

Android 7 Apps auf SD-Karte verschieben

Ein weiterer Befehl, der in Verbindung damit verwendet werden kann, ist ODER . Hier ist ein Beispiel:

SELECT age, name FROM people WHERE age > 10 OR name = 'Joe';

Diese Abfrage gibt Datensätze zurück, bei denen das Alter größer als 10 ist oder der Name gleich „Joe“ ist. Beachten Sie, dass es nur ein Gleichheitszeichen gibt? Die meisten Programmiersprachen verwenden doppelte Gleichheiten (==), um auf Äquivalenz zu prüfen. Dies ist für die überwiegende Mehrheit der Datenbank-Engines nicht erforderlich (aber es kann je nach Umgebung möglich sein, also überprüfen Sie es zuerst).

3. Bestellung

Die Auftrag Der Befehl wird verwendet, um die zurückgegebenen Ergebnisse zu sortieren. Es ist ein weiteres einfach zu bedienendes. Fügen Sie es einfach an das Ende Ihrer Aussage an:

SELECT name, age FROM people ORDER BY age DESC;

Sie müssen die Spalte und die Reihenfolge angeben, die sein können ASC für aufsteigend oder DESC zum Absteigen. Sie können wie folgt nach mehreren Spalten sortieren:

SELECT name, age FROM people ORDER BY name ASC, age DESC

SORTIEREN NACH ist vielleicht am nützlichsten, wenn es mit anderen Befehlen kombiniert wird. Nicht alle Abfragen geben Daten logisch oder geordnet zurück – mit diesem Befehl können Sie dies ändern.

4. Mitmachen

Die beitreten Befehl wird verwendet, um beitreten zugehörige Daten, die in einer oder mehreren Tabellen gespeichert sind. Du beitreten die zweite Tabelle mit der ersten Tabelle, und geben Sie an, wie die Daten verbunden sind. Hier ist ein grundlegendes Beispiel:

So erstellen Sie ein zweites Instagram-Konto
SELECT age, name, height FROM people LEFT JOIN heights USING (name);

Hier ist einiges los. Sie müssen mit der 'LEFT JOIN'-Syntax beginnen, die angibt, dass Sie eine Tabelle mit einem Join vom Typ left verbinden möchten. Geben Sie als Nächstes die Tabelle an, die Sie verbinden möchten (Höhen). Die VERWENDUNG (Name) Syntax besagt, dass die Spalte 'name' in beiden Tabellen zu finden ist und diese als Schlüssel zum Verbinden der Tabellen verwendet werden soll.

Machen Sie sich keine Sorgen, wenn Ihre Spalten in jeder Tabelle unterschiedliche Namen haben. Sie können 'ON' anstelle von 'USING' verwenden:

SELECT age, name, height FROM people LEFT JOIN heights ON (namea = nameb);

Die on-Anweisung gibt explizit an, welche Spalten eingegeben werden sollen. Es gibt viele Arten von Joins, und es würde lange dauern, auf die einzelnen Details einzugehen, daher hier eine kurze Zusammenfassung ihrer Verwendung:

  • (INNER) MITGLIED -- Gibt Zeilen mit einer Übereinstimmung in beiden Tabellen zurück.
  • LINKE ÄUSSERE VERBINDUNG -- Gibt alle Zeilen aus der linken Tabelle mit allen Übereinstimmungen aus der rechten Tabelle zurück. Wenn es keine Übereinstimmungen gibt, werden die Datensätze der linken Tabelle trotzdem zurückgegeben.
  • RECHTS (AUSSEN) BEITRETEN -- Dies ist das Gegenteil eines linken Joins: Alle Zeilen aus der rechten Tabelle werden zurückgegeben, zusammen mit allen Übereinstimmungen in der linken Tabelle.
  • VOLLSTÄNDIGE (ÄUSSERE) VERBINDUNG -- Gibt alle Datensätze mit einer Übereinstimmung in einer der Tabellen zurück.

Die Syntax 'INNER' oder 'OUTER' ist optional. Es kann die Dinge leichter verständlich machen, aber Sie müssen es in den meisten Fällen nicht angeben.

5. Aliasse

Jetzt kennen Sie die Grundlagen, schauen wir uns die an alias Befehl. Dies wird verwendet, um eine Tabelle vorübergehend umzubenennen – eher ein Spitzname als alles andere, da dieser neue Name nur innerhalb der einzelnen Transaktion existiert, die Sie ausführen. So verwenden Sie es:

SELECT A.age FROM people A;

Sie können jeden beliebigen gültigen Namen verwenden, aber ich verwende gerne Buchstaben des Alphabets. Vor jedem Spaltennamen wird der Alias ​​vorangestellt. Dieser Alias ​​wird der Tabelle unmittelbar nach der Deklaration zugewiesen. Dies ist genau das gleiche wie dies zu tun:

SELECT people.age FROM people;

Anstatt einen langen Tabellennamen eingeben zu müssen, können Sie einen einfachen und leicht zu merkenden Buchstaben eingeben – aber wozu? Nun, wenn Sie aus mehr als einer Tabelle auswählen, ist es leicht zu verwechseln, welche Spalten zu welcher Tabelle gehören. Wenn beide Tabellen Spalten mit demselben Namen haben, kann Ihre Datenbankabfrage möglicherweise sogar fehlschlagen, ohne explizit auf den Tabellennamen oder Alias ​​zu verweisen. Hier ein Beispiel mit zwei Tabellen:

SELECT staff.age, staff.name, customers.age, customers.name FROM staff, customers;

Und hier ist dieselbe Abfrage mit Aliasen:

SELECT A.age, A.name, B.age, B.name FROM staff A, customers B;

Der Staff-Tabelle wird der Alias ​​'A' und der Kunden-Tabelle der Alias ​​'B' gegeben. Aliasing-Tabellen tragen wirklich dazu bei, Ihren Code verständlicher zu machen, und reduzieren den Schreibaufwand.

Sie können eine Spalte auch mit einem Alias ​​umbenennen, indem Sie den Befehl 'AS' verwenden:

SELECT age AS person_age FROM people;

Wenn diese Abfrage ausgeführt wird, heißt die Spalte jetzt 'person_age' statt 'age'.

6. Gewerkschaft

Union ist ein toller Befehl. Es ermöglicht Ihnen, Zeilen aneinander anzuhängen. Im Gegensatz zu Joins, die übereinstimmende Spalten anhängen, kann Union nicht verwandte Zeilen anhängen, vorausgesetzt, sie haben dieselbe Anzahl und denselben Namen der Spalten. So verwenden Sie es:

SELECT age, name FROM customers
UNION
SELECT age, name FROM staff;

Sie können sich union als eine Möglichkeit vorstellen, die Ergebnisse zweier Abfragen zu kombinieren. Eine Union gibt nur Ergebnisse zurück, bei denen eine eindeutige Zeile zwischen den beiden Abfragen vorhanden ist. Sie können die Syntax 'UNION ALL' verwenden, um alle Daten unabhängig von Duplikaten zurückzugeben:

SELECT age, name FROM customers
UNION ALL
SELECT age, name FROM staff;

Beachten Sie, wie sich die Reihenfolge der Zeilen ändert? Union arbeitet auf die effizienteste Weise, sodass die Reihenfolge der zurückgegebenen Daten variieren kann.

Ein möglicher Anwendungsfall für Union ist eine Zwischensumme: Sie könnten eine Abfrage der Gesamtsumme mit einer Abfrage der Einzelsummen für ein bestimmtes Szenario verbinden.

7. Einfügen

Sie wissen jetzt alles über das Abrufen von Daten aus einer Datenbank, aber was ist mit dem Einfügen? Hier ist der Einfügung Befehl kommt. Hier ist ein Beispiel:

INSERT INTO people(name, age) VALUES('Joe', 102);

Sie müssen den Tabellennamen (Personen) und die gewünschten Spalten (Name und Alter) angeben. Die 'VALUES'-Syntax wird dann verwendet, um die einzufügenden Werte bereitzustellen. Diese müssen in der gleichen Reihenfolge wie die zuvor angegebenen Spalten sein.

Sie können keine where-Klausel für Einfügungen angeben, und Sie müssen sicherstellen, dass Sie alle erforderlichen Tabelleneinschränkungen einhalten, die vorhanden sind.

8. Aktualisieren

Nach dem Einfügen einiger Daten ist es nur natürlich erforderlich, bestimmte Zeilen zu ändern. Hier ist die aktualisieren Befehlssyntax:

UPDATE people SET name = 'Joe', age = 101;

Sie müssen die Tabelle angeben, die Sie ändern möchten, und dann die 'SET'-Syntax verwenden, um die Spalten und ihre neuen Werte anzugeben. Dieses Beispiel ist gut, aber es aktualisiert jeden einzelnen Datensatz – etwas, das nicht immer wünschenswert ist!

Um genauer zu sein, können Sie 'WHERE'-Klauseln verwenden, genau wie bei einer Auswahl:

UPDATE people SET name = 'Joe', age = 101 WHERE name = 'James';

Sie können sogar mehrere Bedingungen mit 'AND' und 'OR' angeben:

UPDATE people SET name = 'Joe', age = 101 WHERE (name = 'James' AND age = 100) OR name = 'Ryan';

Beachten Sie, wie die Klammern verwendet werden, um die Bedingungen einzuschränken.

externe festplatte wird nicht angezeigt windows 10

9. Upsert

Hoppla ist ein seltsam klingendes Wort, aber es ist ein unglaublich nützlicher Befehl. Angenommen, Sie haben eine Einschränkung für Ihre Tabelle und Sie haben angegeben, dass Sie immer nur Datensätze mit eindeutigen Namen haben möchten – Sie möchten beispielsweise nicht zwei Zeilen mit demselben Namen speichern. Wenn Sie versuchten, mehrere Werte von 'Joe' einzufügen, würde Ihre Datenbank-Engine einen Fehler ausgeben und dies verweigern (zu Recht). Ein UPSERT ermöglicht es Ihnen, einen Datensatz zu aktualisieren, wenn er bereits existiert. Das ist unglaublich nützlich! Ohne diesen Befehl müssten Sie eine Menge Logik schreiben, um zuerst zu überprüfen, ob ein Datensatz vorhanden ist, um ihn einzufügen, wenn dies nicht der Fall ist, andernfalls den richtigen Primärschlüssel abzurufen und dann zu aktualisieren.

Leider werden Upserts in verschiedenen Datenbank-Engines unterschiedlich implementiert. PostgreSQL hat diese Fähigkeit erst vor kurzem erlangt, während MySQL sie schon seit geraumer Zeit hat. Hier ist die MySQL-Syntax als Referenz:

INSERT INTO people(name, age)
VALUES('Joe', 101)
ON DUPLICATE KEY UPDATE age = 101;

Beachten Sie, dass dies im Wesentlichen eine Update- und eine Insert-Anweisung ist, die als 'Aktualisieren, wenn das Einfügen fehlgeschlagen ist' zusammengefasst werden kann.

10. Löschen

Löschen wird verwendet, um Datensätze vollständig zu entfernen - es kann bei Missbrauch sehr schädlich sein! Die grundlegende Syntax ist sehr einfach zu verwenden:

DELETE FROM people;

Wie bei den meisten anderen Befehlen wird dies gelöscht alles ! Sie müssen ein where verwenden, um es auf eine etwas vernünftigere Anzahl von Zeilen zu beschränken – idealerweise eine:

DELETE FROM people WHERE name = 'Joe';

Wenn Sie ein System entwickeln, ist es oft ratsam, ein 'vorläufiges Löschen' zu implementieren. Sie führen den Löschbefehl nie wirklich aus, sondern erstellen eine gelöschte Spalte und überprüfen diese Spalte dann in Ihrer Auswahl – es kann eine Menge potenzieller Peinlichkeiten vermeiden, wenn Sie vermeintlich gelöschte Datensätze schnell und einfach abrufen können. Dies ist jedoch kein Ersatz für ordnungsgemäße Backups.

11. Tabelle erstellen

Die Tabelle erstellen Befehl wird verwendet, um Tabellen zu erstellen. Es ist eine andere sehr einfache:

CREATE TABLE people (
name TEXT,
age, INTEGER,
PRIMARY KEY(name)
);

Beachten Sie, dass die Spaltennamen und Einschränkungen in Klammern stehen und den Spalten ein entsprechender Datentyp zugewiesen wird. Es wird ein Primärschlüssel angegeben, wie er in jedem guten Datenbankdesign erforderlich ist.

12. Tabelle ändern

Die Tabelle ändern Befehl wird verwendet, um die Struktur einer Tabelle zu ändern. Dies ist etwas eingeschränkt, da Ihre Datenbank Sie nicht zulässt, eine Tabelle zu ändern, wenn die vorhandenen Daten einen Konflikt verursachen würden - zum Beispiel eine Zeichenfolge in eine ganze Zahl ändern. Korrigieren Sie in diesen Fällen zuerst die Daten und ändern Sie dann die Tabelle. Hier ist ein Beispiel:

ALTER TABLE people ADD height integer;

In diesem Beispiel wird der Personentabelle eine Spalte namens 'height' vom Typ Integer hinzugefügt. Es gibt nicht wirklich eine Grenze für das, was Sie ändern können.

13. Drop-Tabelle

Der letzte Befehl ist Tabelle fallen lassen . Stellen Sie sich dies als Löschen vor, aber anstatt einen einzelnen Datensatz zu löschen, wird jeder einzelne Datensatz zusammen mit der Tabelle entfernt! So verwenden Sie es:

DROP TABLE people;

Es ist ein ziemlich drastischer Befehl, und es gibt keinen Grund, ihn in Ihr System zu programmieren. Sie sollte in den allermeisten Fällen nur manuell durchgeführt werden und kann sehr destruktiv.

Das ist alles für heute. Ich hoffe, Sie haben einige nützliche Tricks gelernt! Du könntest lernen, wie es geht eine Website erstellen , und verwenden Sie dann Ihre neu erworbenen Fähigkeiten, um es dynamisch zu machen – stellen Sie nur sicher, dass Sie diese Fehler nicht machen oder es anfällig für SQL-Injection machen. Wenn Sie sich nicht sicher sind, ob Sie SQL lernen müssen, haben Sie einen statischen Site-Generator in Betracht gezogen?

Warum hinterlassen Sie nicht unten einen Kommentar mit Ihren Lieblings-SQL-Tipps und -Tricks?

Bildnachweis: HYS_NP/Shutterstock

Teilen Teilen Tweet Email Lohnt sich ein Upgrade auf Windows 11?

Windows wurde neu gestaltet. Aber reicht das aus, um Sie davon zu überzeugen, von Windows 10 auf Windows 11 umzusteigen?

Weiter lesen
Verwandte Themen
  • Programmierung
  • Programmierung
  • SQL
Über den Autor Joe Coburn(136 veröffentlichte Artikel)

Joe hat einen Abschluss in Informatik an der University of Lincoln, Großbritannien. Er ist ein professioneller Softwareentwickler und wenn er nicht gerade Drohnen fliegt oder Musik schreibt, ist er oft beim Fotografieren oder Videoproduzieren anzutreffen.

Mehr von Joe Coburn

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um zu abonnieren