13 Wichtigste SQL-Befehle, die jeder Programmierer wissen sollte
Datenbanken treiben das moderne Web an. Jede große oder dynamische Website verwendet in gewisser Weise und in Kombination mit einer Datenbank eine Datenbank Strukturierte Abfragesprache (SQL), Die Möglichkeiten zur Bearbeitung von Daten sind wirklich unbegrenzt. Wenn Sie sich bereits mit SQL auskennen, stellen Sie sicher, dass Sie diese Programmierfähigkeiten überprüfen. 7 Programmierfertigkeiten, die alle Website-Entwickler kennen sollten 7 Programmierkenntnisse, die alle Website-Entwickler kennen sollten Website-Design und -Entwicklung bietet gute Entlohnung und Vorteile, gute Arbeitszeiten und die Aussicht auf Weiterentwicklung. Wir zeigen Ihnen, welche wesentlichen Fähigkeiten Sie jetzt erlernen können, um in dieses spannende Feld einzusteigen. Lesen Sie mehr, was alle Website-Entwickler wissen sollten.
Heute zeige ich Ihnen einige der wichtigsten Befehle, die Sie als Programmierer kennen müssen.
Es gibt viele Namen für Daten, die aus einer Datenbanktabelle zurückgegeben werden. Daten werden im Allgemeinen als bezeichnet Reihen, Aufzeichnungen, oder Tuples. Ich werde diese Begriffe in diesem Artikel austauschbar verwenden.
Vorwort
Alle heutigen Beispiele basieren auf vier fiktiven Tabellen. Das Kunde Tabelle enthält den Namen und das Alter der Kunden:
Das Höhen Tabelle enthält den Namen und die Höhe einer Person:
Das Mitarbeiter Die Tabelle enthält den Namen und das Alter der Mitarbeiter - genau wie die Kundentabelle.
Der letzte Tisch rief an Menschen enthält den Namen und das Alter der Personen, genau wie die Tabellen mit Kunden und Mitarbeitern:
1. Wählen Sie
Das wählen Anweisung ist die einfachste und es ist wichtig, dass Sie sie verstehen, da sie fast alle anderen Befehle unterstützt. Es ist eine bewährte Methode, um Ihre reservierten SQL-Wörter in Großbuchstaben zu schreiben, da der Befehl dadurch leichter zu lesen und zu verstehen ist.
Wie der Name schon vermuten lässt, wird Select verwendet wählen Daten aus einer Datenbank. Hier ist die einfachste Verwendung:
SELECT * FROM-Tabelle;
Das hat zwei Teile. Der erste Teil (WÄ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 Tisch) teilt Ihrer Datenbank-Engine mit, von wo Sie diese Daten abrufen möchten. Ersetzen “Tabelle” mit dem Namen Ihrer Datenbanktabelle.
Diese Auswahl ist bekannt als “Stern auswählen.” Die Verwendung des Sterns ist eine gute Methode, um herauszufinden, welche Daten in einer Tabelle enthalten sind. Ich empfehle Ihnen jedoch nicht, sie für jeden Produktionscode zu verwenden. Wenn Sie einen ausgewählten Stern verwenden, ist es Sache 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, werden Ihre Variablen in Ihrer Programmiersprache möglicherweise nicht mehr die richtigen Daten darstellen. Zum Glück gibt es eine Lösung.
Sie können explizit angeben, welche Spalten Sie abrufen möchten, wie folgt:
Alter auswählen, Name VON Personen;
Diese Abfrage ruft die “Alter” und “Name” Spalten aus der “Menschen” Tabelle. Wenn Sie so explizit sind, kann dies mitunter sehr mühsam sein, wenn Sie über viele Daten verfügen. Dies verringert jedoch künftig Probleme und macht SQL für zukünftige Programmierer verständlicher.
Wenn Sie ein zusätzliches Datenelement auswählen möchten, das jedoch in keiner Ihrer Tabellen gespeichert ist, können Sie dies folgendermaßen tun:
SELECT Alter, '1234' von Menschen;
Jede Zeichenfolge in einfachen Anführungszeichen wird zurückgegeben, anstatt einen Spaltennamen zu finden.
2. Wo
Der Befehl select eignet sich hervorragend zum Abrufen von Daten. Was aber, wenn Sie die Ergebnisse etwas mehr filtern möchten? Was ist mit dem Abrufen nur von Menschen, die blaue Augen haben? Was ist mit den im Januar geborenen Personen, die als Mechaniker arbeiten? Dies ist, wo die woher Kommando kommt herein. Damit können Sie Bedingungen auf das select anwenden und Sie hängen es einfach an das Ende der Anweisung an:
WÄHLEN Sie das Alter aus, Name VON Personen, bei denen> 10 Jahre alt sind;
Diese Abfrage ist jetzt auf Personen beschränkt, die älter als 10 Jahre sind. Sie können mehrere Bedingungen mit kombinieren UND Operator:
WÄHLEN Sie das Alter und den Namen von Personen aus, bei denen> 10 Jahre alt sind < 20;
Das 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 Datensätze mit einem Alter zwischen 10 und 20 Jahren. Da keine übereinstimmenden Ergebnisse vorliegen, werden keine Daten zurückgegeben.
Ein weiterer Befehl, der in Verbindung damit verwendet werden kann, ist ODER. Hier ist ein Beispiel:
WÄHLEN Sie das Alter und den Namen aus, von denen die Personen über 10 Jahre alt sind oder den Namen = 'Joe'.
Diese Abfrage gibt Datensätze zurück, bei denen das Alter mehr als 10 beträgt oder der Name gleich ist “Joe”. Beachten Sie, dass es nur ein Gleichheitszeichen gibt. Die meisten Programmiersprachen verwenden Double Equals (==), um die Äquivalenz zu überprüfen. Dies ist für die überwiegende Mehrheit der Datenbankmodule nicht erforderlich (dies kann jedoch pro Umgebung sehr wichtig sein, also zuerst prüfen).
3. Bestellung
Das Auftrag Befehl wird zum Sortieren der zurückgegebenen Ergebnisse verwendet. Es ist ein weiteres einfaches zu verwenden. Hängen Sie es einfach an das Ende Ihrer Aussage an:
WÄHLEN Name, Alter VON Personen BESTELLEN NACH Alter DESC;
Sie müssen die Spalte und die Reihenfolge angeben, die sein kann ASC für aufsteigend oder DESC zum Absteigen. Sie können nach mehreren Spalten wie folgt bestellen:
SELECT Name, Alter FROM Personen ORDER BY Name ASC, Alter DESC
SORTIEREN NACH ist vielleicht am nützlichsten, wenn es mit anderen Befehlen kombiniert wird. Nicht alle Abfragen geben Daten auf eine logische oder geordnete Weise zurück. Mit diesem Befehl können Sie dies ändern.
4. Join
Das Beitreten Befehl wird verwendet Beitreten verwandte Daten, die in einer oder mehreren Tabellen gespeichert sind. Sie Beitreten die zweite Tabelle zur ersten Tabelle und geben Sie an, wie die Daten verbunden sind. Hier ist ein grundlegendes Beispiel:
SELECT Alter, Name, Höhe VON Personen LEFT JOIN Höhen USING (Name);
Hier ist einiges los. Du musst mit dem anfangen “LINKS VERBINDEN” Syntax, die angibt, dass Sie eine Tabelle mit einem Join vom Typ left verbinden möchten. Als Nächstes geben Sie die Tabelle an, die Sie verbinden möchten (Höhen). Das VERWENDUNG (Name) Syntax besagt, dass die Spalte “Name” kann in beiden Tabellen gefunden werden, und dies sollte als Schlüssel zum Verbinden der Tabellen verwendet werden.
Machen Sie sich keine Sorgen, wenn Ihre Spalten in jeder Tabelle unterschiedliche Namen haben. Sie können verwenden “AUF” anstatt “VERWENDUNG”:
SELECT Alter, Name, Höhe FROM Personen LEFT JOIN Höhen ON (namea = nameb);
Die on-Anweisung gibt explizit an, welche Spalten eingegeben werden müssen. Es gibt viele Arten von Verknüpfungen, und es würde lange dauern, bis auf die einzelnen Details näher eingegangen wurde. Hier eine kurze Zusammenfassung ihrer Verwendung:
- (INNEN) JOIN - Gibt Zeilen mit Übereinstimmung in beiden Tabellen zurück.
- LINKE ÄUSSERE VERBINDUNG - Gibt alle Zeilen aus der linken Tabelle mit Übereinstimmungen aus der rechten Tabelle zurück. Wenn keine Übereinstimmungen vorhanden sind, werden die Datensätze der linken Tabelle immer noch zurückgegeben.
- RECHTE (AUSSEN) VERBINDEN - Dies ist das Gegenteil eines Links-Joins: Alle Zeilen der rechten Tabelle werden zusammen mit allen Übereinstimmungen in der linken Tabelle zurückgegeben.
- FULL (OUTER) JOIN - Gibt alle Datensätze zurück, die in beiden Tabellen übereinstimmen.
Das “INNERE” oder “ÄUSSERE” Die Syntax ist optional. Es kann Dinge leichter verständlich machen, aber Sie müssen es nicht die meiste Zeit angeben.
5. Alias
Jetzt kennen Sie die Grundlagen, schauen wir uns das an alias Befehl. Dies wird verwendet, um eine Tabelle vorübergehend umzubenennen - mehr ein Spitzname als alles andere, da dieser neue Name nur innerhalb der einzelnen Transaktion existiert, die Sie ausführen. So verwenden Sie es:
WÄHLEN Sie A aus AB Personen A;
Sie können jeden beliebigen gültigen Namen verwenden, aber ich benutze gerne Buchstaben des Alphabets. Vor jedem Spaltennamen wird der Alias vorangestellt. Dieser Alias wird der Tabelle unmittelbar nach der Deklaration zugewiesen. Das ist genau das Gleiche wie folgt:
Wählen Sie people.age FROM people aus.
Anstatt einen langen Tabellennamen eingeben zu müssen, können Sie einen einfachen und leicht zu merkenden Buchstaben eingeben - aber was ist der Sinn? Wenn Sie aus mehr als einer Tabelle auswählen, können Sie leicht verwirren, welche Spalten zu welcher Tabelle gehören. Wenn beide Tabellen Spalten mit demselben Namen haben, kann die Datenbankabfrage möglicherweise nicht ausgeführt werden, ohne explizit auf den Tabellennamen oder den Alias zu verweisen. Hier ist ein Beispiel mit zwei Tabellen:
SELECT staff.age, staff.name, customers.age, customers.name FROM Mitarbeiter, Kunden;
Und hier ist die gleiche Abfrage mit Aliasnamen:
SELECT A.age, A.name, B.age, B.name FROM Mitarbeiter A, Kunden B;
Der Mitarbeitertisch erhält den Alias von “EIN”, und der Kundentabelle wird der Alias von gegeben “B”. Aliasing-Tabellen helfen wirklich, Ihren Code verständlicher zu machen, und Sie müssen weniger tippen.
Sie können eine Spalte auch mit einem Aliasnamen umbenennen “WIE” Befehl:
SELECT age AS person_age FROM Personen;
Wenn diese Abfrage ausgeführt wird, wird die Spalte jetzt aufgerufen “Persönlichkeit” anstatt “Alter”.
6. Union
Union ist ein großartiger Befehl. Sie können Zeilen aneinander anhängen. Im Gegensatz zu Joins, die übereinstimmende Spalten anhängen, kann union nicht zusammenhängende Zeilen anhängen, vorausgesetzt, sie haben die gleiche Anzahl und Namen der Spalten. So verwenden Sie es:
SELECT Alter, Name FROM Kunden UNION SELECT Alter, Name FROM Mitarbeiter;
Sie können sich union als eine Möglichkeit vorstellen, die Ergebnisse zweier Abfragen zu kombinieren. Eine Union gibt nur Ergebnisse zurück, wenn zwischen den beiden Abfragen eine eindeutige Zeile besteht. Du kannst den ... benutzen “UNION ALL” Syntax, um alle Daten unabhängig von Duplikaten zurückzugeben:
SELECT Alter, Name FROM Kunden UNION ALL SELECT Alter, Name FROM Mitarbeiter;
Beachten Sie, wie sich die Reihenfolge der Zeilen ändert. Union arbeitet auf die effizienteste Weise, sodass die zurückgegebenen Daten in der Reihenfolge variieren können.
Ein möglicher Anwendungsfall für Union ist eine Zwischensumme: Sie können eine Abfrage der Gesamtsumme mit einer Abfrage der einzelnen Summen für ein bestimmtes Szenario zusammenfassen.
7. einfügen
Sie wissen jetzt alles über das Abrufen von Daten aus einer Datenbank, aber wie sieht es mit dem Einfügen dieser Daten aus? Dies ist, wo die einfügen Kommando kommt rein. Hier ein Beispiel:
EINFÜGEN IN Personen (Name, Alter) WERTE ('Joe', 102);
Sie müssen den Tabellennamen (Personen) und die Spalten angeben, die Sie verwenden möchten (Name und Alter). Das “WERTE” Die Syntax wird dann verwendet, um die Werte zum Einfügen bereitzustellen. Diese müssen in der gleichen Reihenfolge sein wie die zuvor angegebenen Spalten.
Sie können keine where-Klausel für Einfügungen angeben, und Sie müssen sicherstellen, dass Sie alle erforderlichen Tabelleneinschränkungen einhalten.
8. Aktualisieren
Nach dem Einfügen einiger Daten müssen bestimmte Zeilen nur geändert werden. Hier ist die aktualisieren Befehlssyntax:
UPDATE Personen SET Name = 'Joe', Alter = 101;
Sie müssen die Tabelle angeben, die Sie ändern möchten, und dann die “EINSTELLEN” Syntax, um die Spalten und ihre neuen Werte anzugeben. Dieses Beispiel ist gut, aber es wird jeden Datensatz aktualisiert - etwas, das nicht immer wünschenswert ist!
Um genauer zu sein, können Sie verwenden “WOHER” Klauseln wie bei einem select:
UPDATE Personen SET Name = 'Joe', Alter = 101 WHERE Name = 'James';
Sie können sogar mehrere Bedingungen angeben “UND” und “ODER”:
UPDATE Personen SET Name = 'Joe', Alter = 101 WO (Name = 'James' UND Alter = 100) ODER Name = 'Ryan';
Beachten Sie, wie die Klammern verwendet werden, um die Bedingungen einzuschränken.
9. Upsert
Upsert 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 nur Datensätze mit eindeutigen Namen wünschen - Sie möchten beispielsweise nicht zwei Zeilen mit demselben Namen speichern. Wenn Sie versucht haben, mehrere Werte von 'Joe' einzufügen, würde Ihre Datenbank-Engine einen Fehler auslösen und dies (zu Recht) verweigern. Mit einem UPSERT können Sie einen Datensatz aktualisieren, wenn er bereits vorhanden ist. Das ist unglaublich nützlich! Ohne diesen Befehl müssten Sie eine Menge Logik schreiben, um zunächst zu prüfen, ob ein Datensatz vorhanden ist. Wenn nicht, fügen Sie ihn ein. Andernfalls rufen Sie den korrekten Primärschlüssel ab und aktualisieren dann.
Upgrades werden in unterschiedlichen Datenbankmodulen leider unterschiedlich implementiert. PostgreSQL hat diese Fähigkeit erst vor kurzem erworben, während MySQL es seit geraumer Zeit hat. Hier ist die MySQL-Syntax als Referenz:
EINFÜGEN IN Personen (Name, Alter) WERTE ('Joe', 101) ON DUPLICATE KEY UPDATE Alter = 101;
Beachten Sie, dass dies im Wesentlichen eine Aktualisierungs- und eine Einfügeanweisung ist, die als zusammengefasst werden kann “Update, falls Einfügen fehlgeschlagen ist.”
10. Löschen
Löschen wird verwendet, um Aufzeichnungen vollständig zu entfernen - bei Missbrauch kann es sehr schädlich sein! Die Grundsyntax ist sehr einfach zu bedienen:
LÖSCHEN VON Menschen
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 Personen WO Name = 'Joe';
Wenn Sie ein System entwickeln, ist es oft ratsam, ein “weiches löschen.” Sie führen den Löschbefehl nie wirklich aus, erstellen stattdessen eine gelöschte Spalte und überprüfen diese Spalte in Ihren Auswahlfeldern. Wenn Sie vermeintlich gelöschte Datensätze schnell und einfach abrufen können, kann dies zu viel Peinlichkeit führen. Dies ist jedoch kein Ersatz für ordnungsgemäße Sicherungen.
11. Tabelle erstellen
Das Tabelle erstellen Befehl wird zum Erstellen von Tabellen verwendet. Es ist noch eine sehr einfache Sache:
CREATE TABLE Personen (Name TEXT, Alter, INTEGER, PRIMARY KEY (Name));
Beachten Sie, dass die Spaltennamen und -einschränkungen in eckigen Klammern stehen und die Spalten einen geeigneten Datentyp erhalten. Ein Primärschlüssel wird angegeben, wie er für ein gutes Datenbankdesign erforderlich ist.
12. Ändern Sie die Tabelle
Das Tabelle ändern Befehl wird verwendet, um die Struktur einer Tabelle zu ändern. Dies ist etwas eingeschränkt, da Sie in Ihrer Datenbank keine Tabelle ändern können, wenn die vorhandenen Daten einen Konflikt verursachen würden - beispielsweise eine Zeichenfolge in eine Ganzzahl. In diesen Fällen müssen Sie zuerst die Daten korrigieren und dann die Tabelle ändern. Hier ist ein Beispiel:
ALTER TABLE Personen ADD Höhe ganze Zahl;
In diesem Beispiel wird eine Spalte mit dem Namen hinzugefügt “Höhe” vom Typ Ganzzahl zur Personentabelle. Es gibt keine Grenzen für das, was Sie ändern können.
13. Tabelle ablegen
Der letzte Befehl lautet Tisch ablegen. Stellen Sie sich das als Löschen vor, aber anstatt einen einzelnen Datensatz zu löschen, werden alle einzelnen Datensätze zusammen mit der Tabelle gelöscht! So verwenden Sie es:
DROP TABLE Menschen;
Es ist ein ziemlich drastischer Befehl, und es gibt keinen Grund, warum er in Ihr System programmiert werden muss. Es sollte in den allermeisten Fällen nur manuell ausgeführt werden und kann auch durchgeführt werden sehr destruktiv.
Das ist alles für heute. Ich hoffe du hast ein paar nützliche Tricks gelernt! Sie können lernen, wie man eine Website erstellt. Wie man eine Website erstellt: Für Anfänger Wie man eine Website erstellt: Für Anfänger Heute werde ich Sie durch den Prozess der Erstellung einer vollständigen Website von Grund auf führen. Mach dir keine Sorgen, wenn das schwierig klingt. Ich werde Sie bei jedem Schritt des Weges durch das Haus führen. Lesen Sie mehr, und nutzen Sie Ihre neu entdeckten Fähigkeiten, um sie dynamisch zu machen. Stellen Sie nur sicher, dass Sie diese Fehler nicht machen. 9 Fehler, die Sie beim Erstellen einer Website nicht machen sollten Page 9 Fehler, die Sie beim Erstellen einer Webseite nicht machen sollten Die folgenden HTML-Codierungsfehler sind leicht zu begehen, aber wenn Sie sie früher und später abstellen, wird Ihre Seite besser aussehen, einfacher zu warten und funktioniert so, wie Sie es möchten. Lesen Sie mehr oder lassen Sie es anfällig für SQL-Injection Was ist eine SQL-Injection? [MakeUseOf erklärt] Was ist eine SQL-Injektion? [MakeUseOf erklärt] Die Welt der Internetsicherheit ist mit offenen Ports, Hintertüren, Sicherheitslücken, Trojanern, Würmern, Firewall-Sicherheitslücken und einer Reihe anderer Probleme geplagt, die uns jeden Tag auf Trab halten. Für Privatanwender… Lesen Sie weiter. Wenn Sie sich nicht sicher sind, ob Sie SQL lernen müssen, haben Sie einen statischen Standortgenerator in Betracht gezogen. 7 Gründe, Ihren CMS aufzulösen und einen statischen Standortgenerator zu berücksichtigen war für viele Benutzer schwierig. CMSs wie WordPress haben das geändert, aber sie können immer noch verwirrend sein. Eine andere Alternative ist ein statischer Standortgenerator. Weiterlesen ?
Hinterlassen Sie unten einen Kommentar mit Ihren bevorzugten SQL-Tipps und Tricks?
Bildnachweise: HYS_NP / Shutterstock
Erfahren Sie mehr über: Programmierung, SQL.