Was ist SQL?
Structured Query Language (SQL) ist eine Programmiersprache zum Speichern und Verarbeiten von Informationen in einer relationalen Datenbank. Eine relationale Datenbank speichert Informationen in tabellarischer Form, wobei Zeilen und Spalten verschiedene Datenattribute und die verschiedenen Beziehungen zwischen den Datenwerten darstellen. Sie können SQL-Anweisungen zum Speichern, Aktualisieren, Entfernen, Suchen und Abrufen von Informationen aus der Datenbank verwenden. Sie können SQL auch verwenden, um die Datenbankleistung aufrechtzuerhalten und zu optimieren.
Warum ist SQL wichtig?
Structured Query Language (SQL) ist eine beliebte Abfragesprache, die häufig in allen Arten von Anwendungen verwendet wird. Datenanalysten und Entwickler lernen und verwenden SQL, da es sich gut in verschiedene Programmiersprachen integrieren lässt. Sie können beispielsweise SQL-Abfragen mithilfe der Programmiersprache Java einbetten, um leistungsstarke Datenverarbeitungsanwendungen mit wichtigen SQL-Datenbanksystemen wie Oracle oder MS SQL Server zu erstellen. SQL ist außerdem recht einfach zu erlernen, da es in seinen Anweisungen gebräuchliche englische Schlüsselwörter verwendet.
Geschichte von SQL
SQL wurde in den 1970er Jahren auf Grundlage des relationalen Datenmodells entwickelt. Es war ursprünglich als strukturierte englische Abfragesprache (Structured English Query Language, SEQUEL) bekannt. Der Begriff wurde später auf SQL abgekürzt. Oracle, früher bekannt als Relational Software, war der erste Anbieter, der ein kommerzielles relationales SQL-Datenbankmanagementsystem anbot.
Was sind die Komponenten eines SQL-Systems?
Relationale Datenbankverwaltungssysteme verwenden Structured Query Language (SQL) zum Speichern und Verwalten von Daten. Das System speichert mehrere Datenbanktabellen, die sich auf einander beziehen. MS SQL Server, MySQL oder MS Access sind Beispiele für relationale Datenbankmanagementsysteme. Im Folgenden sind die Komponenten eines solchen Systems aufgeführt.
SQL-Tabelle
Eine SQL-Tabelle ist das Grundelement einer relationalen Datenbank. Die SQL-Datenbanktabelle besteht aus Zeilen und Spalten. Datenbankingenieure erstellen Beziehungen zwischen mehreren Datenbanktabellen, um den Speicherplatz zu optimieren.
Beispielsweise erstellt der Datenbankingenieur eine SQL-Tabelle für Produkte in einem Geschäft:
Produkt-ID |
Produktname |
Farb-ID |
0001 |
Matratze |
Farbe 1 |
0002 |
Kissen |
Farbe 2 |
Anschließend verknüpft der Datenbankingenieur die Produkttabelle mit der Farbtabelle mithilfe der Farb-ID:
Farb-ID |
Farbname |
Farbe 1 |
Blau |
Farbe 2 |
Rot |
SQL-Anweisungen
SQL-Anweisungen oder SQL-Abfragen sind gültige Anweisungen, die relationale Datenbankmanagementsysteme verstehen. Softwareentwickler erstellen SQL-Anweisungen, indem sie verschiedene SQL-Sprachelemente verwenden. SQL-Sprachelemente sind Komponenten wie Bezeichner, Variablen und Suchbedingungen, die eine korrekte SQL-Anweisung bilden.
Die folgende SQL-Anweisung verwendet beispielsweise einen SQL INSERT-Befehl, um Matratze Marke A mit einem Preis von 499 USD in einer Tabelle namens Mattress_table mit den Spaltennamen brand_name und cost zu speichern:
INSERT INTO Mattress_table (brand_name, cost)
VALUES('A','499');
Gespeicherte Prozeduren
Gespeicherte Prozeduren sind eine Sammlung von einer oder mehreren in der relationalen Datenbank gespeicherten SQL-Anweisungen. Softwareentwickler verwenden gespeicherte Prozeduren, um Effizienz und Leistung zu verbessern. Sie können beispielsweise eine gespeicherte Prozedur zum Aktualisieren von Verkaufstabellen erstellen, anstatt dieselbe SQL-Anweisung in verschiedenen Anwendungen zu schreiben.
Wie funktioniert SQL?
Die Implementierung einer strukturierten Abfragesprache (SQL) umfasst einen Servercomputer, der die Datenbankabfragen verarbeitet und die Ergebnisse zurückgibt. Der SQL-Prozess durchläuft mehrere Softwarekomponenten, darunter die folgenden.
Parser
Der Parser beginnt mit der Tokenisierung oder dem Ersetzen einiger Wörter in der SQL-Anweisung durch spezielle Symbole. Anschließend wird die Anweisung auf Folgendes überprüft:
Korrektheit
Der Parser überprüft, ob die SQL-Anweisung der SQL-Semantik oder Regeln entspricht, die die Richtigkeit der Abfrageanweisung sicherstellen. Der Parser prüft beispielsweise, ob der SQL-Befehl mit einem Semikolon endet. Wenn das Semikolon fehlt, gibt der Parser einen Fehler zurück.
Autorisierung
Der Parser überprüft auch, ob der Benutzer, der die Abfrage ausführt, über die erforderliche Berechtigung zum Bearbeiten der entsprechenden Daten verfügt. Beispielsweise können nur Admin-Benutzer das Recht haben, Daten zu löschen.
Relationale Engine
Die relationale Engine oder der Abfrageprozessor erstellt einen Plan zum Abrufen, Schreiben oder Aktualisieren der entsprechenden Daten auf die effektivste Weise. Beispielsweise prüft es auf ähnliche Abfragen, verwendet frühere Datenmanipulationsmethoden wieder oder erstellt eine neue. Es schreibt den Plan in eine Darstellung der SQL-Anweisung auf mittlerer Ebene, die als Bytecode bezeichnet wird. Relationale Datenbanken verwenden Bytecode, um Datenbanksuchen und -änderungen effizient durchzuführen.
Speicher-Engine
Die Speicher-Engine oder Datenbank-Engine ist die Softwarekomponente, die den Bytecode verarbeitet und die beabsichtigte SQL-Anweisung ausführt. Sie liest und speichert die Daten in den Datenbankdateien auf dem physischen Festplattenspeicher. Nach Abschluss gibt die Speicher-Engine das Ergebnis an die anfordernde Anwendung zurück.
Was sind SQL-Befehle?
SQL-Befehle (Structured Query Language) sind spezielle Schlüsselwörter oder SQL-Anweisungen, die Entwickler verwenden, um die in einer relationalen Datenbank gespeicherten Daten zu bearbeiten. Sie können SQL-Befehle wie folgt kategorisieren.
Data Definition Language
Data Definition Language (DDL; Datendefinitionssprache) bezieht sich auf SQL-Befehle, die die Datenbankstruktur entwerfen. Datenbankingenieure verwenden DDL, um Datenbankobjekte basierend auf den Geschäftsanforderungen zu erstellen und zu ändern. Beispielsweise verwendet der Datenbankingenieur den Befehl CREATE, um Datenbankobjekte wie Tabellen, Ansichten und Indizes zu erstellen.
Data Query Language
Data Query Language (DQL; Datenabfragesprache) besteht aus Anweisungen zum Abrufen von Daten, die in relationalen Datenbanken gespeichert sind. Softwareanwendungen verwenden den Befehl SELECT, um bestimmte Ergebnisse aus einer SQL-Tabelle zu filtern und zurückzugeben.
Data Manipulation Language
Data Manipulation Language (DML; Datenbearbeitungssprache)-Anweisungen schreiben neue Informationen oder ändern bestehende Datensätze in einer relationalen Datenbank. Beispielsweise verwendet eine Anwendung den Befehl INSERT, um einen neuen Datensatz in der Datenbank zu speichern.
Data Control Language
Datenbankadministratoren verwenden Data Control Language (DCL; Datenkontrollsprache), um den Datenbankzugriff für andere Benutzer zu verwalten oder zu autorisieren. Sie können beispielsweise den Befehl GRANT verwenden, um bestimmten Anwendungen die Bearbeitung einer oder mehrerer Tabellen zu ermöglichen.
Transaction Control Language
Die relationale Engine verwendet die Transaction Control Language (TCL; Transaktionskontrollsprache), um automatisch Datenbankänderungen vorzunehmen. Die Datenbank verwendet beispielsweise den Befehl ROLLBACK, um eine fehlerhafte Transaktion rückgängig zu machen.
Was sind die SQL-Standards?
Die SQL-Standards sind ein Satz formal definierter Richtlinien der Structured Query Language (SQL). Das American National Standards Institute (ANSI) und die International Organization for Standardization (ISO) haben die SQL-Standards 1986 übernommen. Softwareanbieter verwenden die ANSI SQL-Standards, um SQL-Datenbanksoftware für Entwickler zu erstellen.
Was ist SQL-Injection?
SQL-Injection ist ein Cyberangriff, bei dem die Datenbank mit SQL-Abfragen getäuscht wird. Hacker verwenden SQL-Injection, um Daten in einer SQL-Datenbank abzurufen, zu ändern oder zu beschädigen. Beispielsweise können sie eine SQL-Abfrage anstelle des Namens einer Person in einem Übermittlungsformular ausfüllen, um einen SQL-Injection-Angriff auszuführen.
Was ist MySQL?
MySQL ist ein relationales Open-Source-Datenbankmanagementsystem, das von Oracle angeboten wird. Entwickler können MySQL herunterladen und verwenden, ohne eine Lizenzgebühr zu zahlen. Sie können MySQL auf verschiedenen Betriebssystemen oder Cloud-Servern installieren. MySQL ist ein beliebtes Datenbanksystem für Webanwendungen.
SQL im Vergleich zu MySQL
Structured Query Language (SQL) ist eine Standardsprache für die Erstellung und Bearbeitung von Datenbanken. MySQL ist ein relationales Datenbankprogramm, das SQL-Abfragen verwendet. Während SQL-Befehle durch internationale Standards definiert sind, wird die MySQL-Software kontinuierlich aktualisiert und verbessert.
Was ist NoSQL?
NoSQL bezieht sich auf nicht-relationale Datenbanken, die keine Tabellen zum Speichern von Daten verwenden. Entwickler speichern Informationen in verschiedenen Arten von NoSQL-Datenbanken, einschließlich Grafiken, Dokumenten und Schlüsselwerten. NoSQL-Datenbanken sind für moderne Anwendungen beliebt, da sie horizontal skalierbar sind. Horizontale Skalierung bedeutet eine Erhöhung der Rechenleistung durch Hinzufügen weiterer Computer, auf denen NoSQL-Software ausgeführt wird.
SQL im Vergleich zu NoSQL
Structured Query Language (SQL) bietet eine einheitliche Datenmanipulationssprache, die NoSQL-Implementierung basiert dagegen auf verschiedenen Technologien. Entwickler verwenden SQL für Transaktions- und Analyseanwendungen, während NoSQL für reaktionsschnelle, stark beanspruchte Anwendungen geeignet ist.
Was ist ein SQL-Server?
SQL Server ist der offizielle Name des relationalen Datenbankmanagementsystems von Microsoft, das Daten mit SQL bearbeitet. Der MS SQL Server verfügt über mehrere Editionen, von denen jede für bestimmte Workloads und Anforderungen ausgelegt ist.
Wie unterstützt AWS SQL?
Microsoft SQL Server in AWS ermöglicht es Entwicklern, Microsoft SQL-Workloads auf AWS auszuführen. Das SQL-Datenbanksystem schneidet mit skalierbaren AWS-Rechenressourcen besser ab. Durch die Ausführung von MS SQL auf AWS erreichen Unternehmen eine höhere Serviceverfügbarkeit, da AWS über die umfassendste globale Infrastruktur in 24 Regionen verfügt. SQL Server on AWS lässt sich in mehr als 230 Sicherheits-, Compliance- und Governance-Services integrieren, um Ihre Daten vor externen Bedrohungen zu schützen. Einige andere Möglichkeiten, wie AWS SQL unterstützt, umfassen die folgenden:
- Kunden nutzen den Amazon Database Migration Service, um das Verschieben von SQL-Datenbanken nach AWS zu vereinfachen.
- Amazon Elastic Block Store (EBS) bietet leistungsstarken Blockspeicher für geschäftskritische SQL-Anwendungen.
Beginnen Sie noch heute mit SQL Server auf AWS, indem Sie sich für ein AWS-Konto anmelden.
AWS SQL – nächste Schritte
Sie erhalten sofort Zugriff auf das kostenlose Kontingent von AWS.
Beginnen Sie mit der Entwicklung in der AWS-Managementkonsole.