Uncategorized

Wie man SQL lernt

Kollationierung und SQL

Der Einstieg in das Erlernen von SQL ist heutzutage relativ einfach. Viele Ressourcen sind mit einer Websuche leicht zu finden, wenn Sie SQL lernen wollen. Die meisten RDBMS stellen Dokumentation zu ihrem SQL-Dialekt zur Verfügung, die oft auch Tutorials enthält. SQL ist sehr standardisiert, aber die meisten Anbieter haben proprietäre Erweiterungen, die man kennen muss. Die Verwendung solcher Erweiterungen macht Migrationen komplex. Die größten Unterschiede gibt es in der Verfahrenssprache und bei den erweiterten Funktionen. Die anbieterspezifischen Erweiterungen sind in der Regel nicht gut dokumentiert, da die Anbieter ihre Kunden so lange wie möglich an sich binden wollen.

Warum SQL lernen?

SQL wird seit den 1980er Jahren verwendet, und es gibt in absehbarer Zeit keinen Nachfolger, so dass es sich nicht um eine Fähigkeit handelt, die im Laufe Ihrer Karriere veralten wird. Relationale Datenbanken sind das am häufigsten verwendete DBMS auf dem Markt. Das RDBMS hat sich über Jahrzehnte hinweg weiterentwickelt, um sich an neue Datentypen, Datenformate, Plattformen und Zugriffsmethoden anzupassen, so dass SQL-Kenntnisse sehr wichtig sind. SQL ist eine Fähigkeit, die in vielen Bereichen geschätzt wird, darunter Softwareentwicklung, IT-Administration, Marketing-Automatisierung und Business Intelligence Funktionen. Diese Vielseitigkeit macht SQL zu einer übertragbaren und gefragten Fähigkeit. Mit der zunehmenden Demokratisierung von Business Intelligence , die nicht nur in der IT genutzt wird, kann SQL als Geschäfts- und IT-Kompetenz betrachtet werden.

Illustration der Welt über einem Vergrößerungsglas mit einer Frau, die auf dem Rand sitzt. Sehen Sie sich genauer an, wie man SQL lernt

Wer muss SQL lernen?

Viele Aufgaben in Unternehmen erfordern SQL-Kenntnisse. Technische Funktionen wie Softwareentwicklung und Datenbankadministratoren (DBA) müssen SQL-Kenntnisse haben, um effektiv arbeiten zu können. Funktionen wie Sales Operations, die intensiv mit Tools wie Salesforce arbeiten, stellen fest, dass SQL-Kenntnisse die Berichterstattung erheblich erleichtern, da Salesforce im Verborgenen eine Vielzahl von SQL-Abfragen verwendet. Business-Analysten, die für Führungskräfte oder in Geschäftsbereichen arbeiten, nutzen BI-Tools wie Qlik Sense, Tableau und Power BI, um Daten zur Darstellung der Unternehmensleistung zu visualisieren. IT-Admins, die Produkte wie System Center verwenden, müssen SQL kennen, da SQL Server die eingebettet Management-Datenbank ist.

Illustration von Menschen, die an Datensilos arbeiten. Erfahren Sie, wie Sie SQL lernen können

Was brauchen Sie, um SQL zu lernen?

SQL wird verwendet, um Daten verwalten , die in einer Reihe von zusammenhängenden Tabellen gespeichert sind. Die relationale Algebra ist die Grundlage der Interaktion auf einer niedrigen Ebene innerhalb der Datenbank. Als Nutzer von SQL ist es sehr nützlich, die Datenbank als eine Reihe von zusammenhängenden Tabellen zu visualisieren, die aus Zeilen und Spalten bestehen. Die Visualisierung von Beziehungen mithilfe eines Venn-Diagramms kann hilfreich sein. Das Verständnis der Datenmodellierung ist eine hervorragende Voraussetzung für das Erlernen von SQL. Sie helfen Ihnen zu verstehen, warum die Daten so strukturiert sind, wie sie sind. SQL ist nicht so schwer zu erlernen wie eine traditionelle Programmiersprache, da es deklarativ ist. Man teilt der Datenbank einfach mit, welche Daten man haben möchte, und sie kümmert sich darum, wie man sie bekommt.

Wenn Sie erfahren möchten, wie ein RDBMS funktioniert, bieten viele die Möglichkeit, Ausführungspläne oder Profiler für Anfrage einzusehen. Diese Anfrage zeigen Ihnen z. B., wann eine vollständige Tabellendurchsuchung durchgeführt wird, weil eine Tabelle keinen geeigneten Index hat oder zu klein ist, um sie zu indizieren, und wie Zwischenergebnismengen zusammengeführt und sortiert werden, wenn eine Bereichssuche durchgeführt wird. Die meisten Leute machen sich über diese Dinge nur Gedanken, wenn ihre Abfragen langsam laufen oder die IT-Abteilung sich über die ineffiziente Nutzung von Ressourcen beschwert, was teuer werden kann, wenn ein externer Cloud genutzt wird, der für CPU berechnet wird.

Illustration von drei Datenspeicherzentren. Kommen Sie und lesen Sie, wie man SQL lernt

Wie lange dauert es, SQL zu lernen?

Grundlegende SQL-Kenntnisse können in wenigen Tagen erlernt werden. Das Erlernen komplexer Verknüpfungen und verschachtelter Abfragen kann Wochen dauern. Das Tuning von Datenbanken kann Jahre dauern, bis man es beherrscht. Viele moderne Datenbanksysteme der Unternehmensklasse bieten Tools, die das Tuning wesentlich einfacher machen. Viele moderne Cloud bieten elastische Skalierung, um die Parallelisierung von SQL-Operationen zu automatisieren und so die Antwortzeiten kurz zu halten, selbst wenn Sie Terabytes an Daten bearbeiten müssen.

Eine Gruppe von mehreren Geräten, die mit einem Cloud verbunden sind. Wissen Sie, wie man SQL lernt?

Wo kann ich es lernen?

Ein beliebter Ausgangspunkt für das Erlernen von SQL ist die Code Academy.

Codecademy ist sehr intuitiv und bringt Ihnen die SQL-Syntax bei und bietet Ihnen die Möglichkeit, sie selbst auszuprobieren. Es ist auch eine hervorragende Ressource für die Zuordnung von Karrierewegen zu den erforderlichen Kursen für bestimmte Wege.

Es gibt zusätzliche Optionen zur Angabe von referenziellen Aktionen, Sequenzen und Partitionierung, die auf der Actian Documentation Website beschrieben werden.

Wenn Sie ein einfach zu bedienendes Tool suchen, um die verschiedenen SQL-Varianten der einzelnen Anbieter zu erlernen, dann ist die W3 School eine hervorragende Ressource.

Illustration einer Frau, die auf einem Datensilo arbeitet. Es ist Zeit, SQL zu lernen

Welches SQL Sie lernen sollten

Die Aspekte von SQL, die Sie lernen müssen, hängen von Ihrer Funktion ab. Wenn Ihre Aufgabe in der Datenanalyse besteht, ist das Erlernen aller Varianten der SELECT-Anweisung der beste Ausgangspunkt. Danach sollten Sie sich mit Views und Indizes vertraut machen. Wenn Sie die Berechtigung haben, Objekte zu erstellen, kann das Experimentieren mit Ihrem eigenen Schema sehr nützlich sein.

Wenn Sie in der Softwareentwicklung tätig sind, müssen Sie das Datenbankdesign erlernen, bevor Sie sich mit SQL beschäftigen. Möglicherweise benötigen Sie spezielle Kenntnisse im Schreiben von Nutzer Funktionen und SQL-Prozeduren, damit Sie den Anwendungscode in der Nähe der Daten speichern und ausführen können, mit denen er arbeitet.

Als DBA müssen Sie mit einem Kurs zur Datenbankverwaltung beginnen. In diesem Kurs lernen Sie, wie man eine Datenbank erstellt, Benutzer hinzufügt, Daten lädt und ein backup wiederherstellt.

Die nachstehende Beschreibung der SELECT-Anweisung soll die Macht und den Umfang dieser Anfrage verdeutlichen.

Wenn Sie zum Beispiel wissen wollen, wer Kunde 10 in der Tabelle KUNDEN ist. Sie können die folgende Anweisung verwenden:

SELECT KUNDEN-NAME FROM KUNDEN WO KUNDEN-ID =10;

Wenn die Tabelle eine Spalte STATE enthält, werden mit der folgenden SQL-Anweisung nur die Kunden in Colorado abgerufen:

SELECT * FROM KUNDEN WO STAAT = 'CO';

Mehrere Tabellen können über gemeinsame Spalten miteinander in Beziehung gesetzt werden. Diese Spalten können optional indiziert werden, um einen schnelleren Zugriff zu ermöglichen.
Tabellen können zur Ausführungszeit logisch verbunden werden, und die Art der Verbindung kann in SQL ausgedrückt werden.

Im Folgenden sind die Arten von Joins aufgeführt, bei denen links und rechts die Reihenfolge der in der SELECT-Anweisung genannten Tabellen ist:

  • INNER JOIN: Diese Verknüpfung gibt die Datensätze zurück, deren Werte in beiden Tabellen übereinstimmen.
  • FULL JOIN: Diese Verknüpfung gibt alle Datensätze zurück, die entweder in der linken oder in der rechten Tabelle eine Übereinstimmung aufweisen.
  • LEFT JOIN: Diese Art der Verknüpfung gibt Datensätze aus der linken Tabelle zusammen mit den Datensätzen, die die Bedingung erfüllen, aus der rechten Tabelle zurück.
  • RIGHT JOIN: Diese Art der Verknüpfung liefert Datensätze aus der rechten Tabelle zusammen mit den Datensätzen, die die Bedingung aus der linken Tabelle erfüllen.

Tabellen können durch Beziehungen zwischen Primär- und Fremdschlüsselspalten miteinander verbunden sein. Eine Kundentabelle kann zum Beispiel einen Primärschlüssel mit der Kunden-ID haben. Eine Tabelle "Aufträge", die eine Spalte "Kunden-ID" enthält, wird als Fremdschlüssel in dieser Tabelle bezeichnet.

Primärschlüssel sind in der Regel indiziert und enthalten eindeutige Werte.

Anwendungen verwenden SQL zum Abrufen und Einfügen von Daten aus Datenbanken, auch aus verteilten Datenbanken.

Die SELECT-Anweisung kann Aggregationsfunktionen enthalten, wie z. B.:

  • COUNT() - gibt die Gesamtzahl der Zeilen zurück, die die Kriterien der Anweisung erfüllen
  • MIN() - gibt den kleinsten Wert in der Ergebnismenge zurück
  • MAX() - gibt den größten Wert in der Ergebnismenge zurück
  • AVG() - gibt den Durchschnitt der Werte in der Ergebnismenge zurück
  • GROUP BY - gruppiert die Ergebnisse nach einem bestimmten Spaltenwert
  • ORDER BY - sortiert die Ergebnisse nach der angegebenen Spalte

Kommentare in SQL helfen, Anwendungen zu verstehen und zu pflegen. Nachstehend finden Sie ein- und mehrzeilige Beispiele für Kommentare:

- Dies ist mein Kommentar

/* Dies ist
mehrere Zeilen
Kommentar */

Es ist hilfreich, ein Datenbankschema mithilfe eines Venn-Diagramms zu visualisieren, insbesondere bei der Verwendung von Mengenoperatoren wie UNION, INTERSECT und EXCEPT in SELECT-Anweisungen.

  • UNION - Dieser Operator wird verwendet, um die Ergebnismenge von zwei oder mehr SELECT-Anweisungen zu kombinieren.
    Beispiel:
SELECT Spalten FROM Tabelle1
UNION
SELECT Spalten FROM Tabelle2;
  • INTERSECT - Diese Klausel wird verwendet, um zwei SELECT-Anweisungen zu kombinieren und die Schnittmenge der Datensätze der beiden SELECT-Anweisungen zurückzugeben.
    Beispiel:
SELECT Spalte1 , Spalte2 ....
FROM Tabellenname
WHERE Bedingung
INTERSECT
SELECT Spalte1, Spalte2 ....
FROM Tabellenname
WHERE Bedingung
  • EXCEPT - Dieser Operator gibt diejenigen Zeilen zurück, die von der ersten SELECT-Operation zurückgegeben werden und von der zweiten SELECT-Operation nicht zurückgegeben werden.
    Beispiel:
SELECT Spaltenname
FROM Tabellenname
EXCEPT
SELECT Spaltenname
FROM Tabellenname;

Fallausdrücke bieten eine Dekodierungsmöglichkeit, mit der ein Ausdruck in einen anderen umgewandelt werden kann. Groß-/Kleinschreibung kann überall dort vorkommen, wo auch andere Formen von Ausdrücken verwendet werden können.

Es gibt zwei Formen von Fallausdrücken:

  • Einfach
  • Gesucht

Die Syntax für einen einfachen Case-Ausdruck lautet wie folgt:

CASE expr WHEN expr1 THEN expr2 WHEN expr3 THEN expr4... [ELSE exprn] END

Der anfängliche case-Ausdruck wird nacheinander mit den Ausdrücken in jeder WHEN-Klausel verglichen. Das Ergebnis des Falls ist der Ausdruck aus der THEN-Klausel, die der ersten WHEN-Klausel entspricht, deren Ausdruck gleich dem case-Ausdruck ist. Wenn keiner der WHEN-Ausdrücke mit dem case-Ausdruck übereinstimmt, ist das Ergebnis der Wert des Ausdrucks aus der ELSE-Klausel. Wenn es keine ELSE-Klausel gibt, ist das Ergebnis der Nullwert.

Die Syntax für den gesuchten Fallausdruck lautet wie folgt:

CASE WHEN search_conditon1 THEN expr1 WHEN search_expression2 THEN expr2...[ELSE exprn] END

Die Suchbedingungen der einzelnen WHEN-Klauseln werden nacheinander ausgewertet. Das Ergebnis des Falls ist der Ausdruck aus der THEN-Klausel, der der ersten WHEN-Klausel entspricht, deren Suchbedingung als wahr ausgewertet wird. Wenn keine der Suchbedingungen der WHEN-Klausel als wahr bewertet wird, ist das Ergebnis der Wert des Ausdrucks aus der ELSE-Klausel. Wenn es keine ELSE-Klausel gibt, ist das Ergebnis der Nullwert.

Mehr als die SELECT-Anweisung

Sobald Sie die SELECT-Anweisung beherrschen, können Sie mit den folgenden SQL-Anweisungen Objekte in der Datenbank erstellen und ändern:

Im Folgenden finden Sie einige Beispiele für SQL-Anweisungen:

  • CREATE TABLE - wird verwendet, um ein Tabellenobjekt zu erstellen
  • INSERT - wird verwendet, um neue Zeilen in eine Tabelle einzufügen
  • UPDATE - wird verwendet, um Änderungen an Daten in einer Datenbanktabelle vorzunehmen
  • DELETE - wird verwendet, um Datenzeilen zu entfernen
  • GRANT - wird verwendet, um Benutzern das Recht zu geben, Datenbankobjekte wie Tabellen einzusehen oder zu ändern
  • REVOKE - wird verwendet, um Berechtigungen von Benutzern oder Benutzergruppen zu entfernen
  • ALTER - ermöglicht es dem Nutzer , Spalten eines Objekts hinzuzufügen oder zu entfernen, um die Berechtigungen zu aktualisieren
  • DROP TABLE - löscht eine Tabelle
  • CREATE INDEX - erstellt einen INDEX, um einen effizienten Zugriff auf Daten mit einem Schlüssel-Wert zu ermöglichen
  • TRUNCATE TABLE - ermöglicht es dem Nutzer , den Inhalt einer Tabelle schnell zu leeren

Die komplexeste der oben aufgeführten Anweisungen ist CREATE TABLE. Sie wird im Folgenden ausführlicher erläutert:

Erstellen einer Tabelle

Die Syntax der CREATE TABLE-Anweisung kann so einfach sein wie im folgenden Beispiel:

CREATE TABLE DEPT (Abt.-ID int, Abt.-Name varchar(255), Abt.-Kostenstelle int );

Sie können Tabellen mit einer anderen Tabelle als Vorlage erstellen. Die nachstehende Tabelle enthält zum Beispiel nur Zeilen, die sich auf die Abteilungsnummer 10 beziehen:

CREATE TABLE DEPARTMENT-10 AS SELECT * FROM DEPARTMENTS WHERE Department-ID = 10;

Die folgende CREATE TABLE-Syntax gilt für eine ActianDatenbank, die das folgende Format hat:

CREATE TABLE [schema.]tabellenname (spalten_spezifikation {, spalten_spezifizierung })
[table_constraint {, table_constraint}] [with_clause]
  • table_name - Legt den Namen der neuen Tabelle fest.
  • column_specification - Definiert die Eigenschaften der Spalte.
  • table_constraint - Gibt die Beschränkung auf Tabellenebene an, wie in Beschränkungen auf Tabellen- und Spaltenebene beschrieben.
  • with_clause - Gibt die Optionen der WITH-Klausel durch ein Komma getrennt an. Für weitere Informationen siehe WITH-Klausel.

Säulen-Spezifikation

Die Spaltenspezifikation in einer CREATE TABLE-Anweisung definiert die Eigenschaften einer Spalte in der Tabelle.

Die Spaltenspezifikation hat folgendes Format: spalten_name datatype

[[WITH] DEFAULT default_spec | WITH DEFAULT | NOT DEFAULT] [WITH NULL | NOT NULL] [MASKED [AS {BASIC | NULL | 0 | ' ' }] [GENERATED ALWAYS AS [seq_name] IDENTITY [(seq_options)] | GENERATED BY DEFAULT AS [seq_name] IDENTITY [(seq_options)]] [[CONSTRAINT constraint_name] column_constraint { [CONSTRAINT constraint_name] column_constraint}]
  • column_name - Weist der Spalte einen gültigen Namen zu (siehe Objektbenennungsregeln).
  • datatype - Weist der Spalte einen gültigen Datentyp zu.
  • DEFAULT-Klausel - Gibt an, ob die Spalte obligatorisch ist.
  • MIT NULL | NICHT NULL - Gibt an, ob die Spalte Nullen akzeptiert:
    • WITH NULL - (Standard) Gibt an, dass die Spalte Nullen akzeptiert. Wenn der Nutzer keinen Wert angibt, wird Null eingefügt.
    • NOT NULL - Gibt an, dass die Spalte keine Nullen akzeptiert.
  • [MASKED [AS {BASIC | NULL | 0 | ‘ ‘ }] – Displays the column with the specified mask characteristic. The mask characteristic defines how to display the masked data:
  • BASIC - Füllt die Breite der Spalte mit Sternchen
  • NULL - NULL
  • 0 - 0
  • ' ' - leer
GENERATED ALWAYS AS [seq_name] IDENTITY [(seq_options)] | GENERATED BY DEFAULT AS [seq_name] IDENTITY [(seq_options)]

Zeigt an, dass die Spalte eine IDENTITY-Spalte ist. Die Spalte muss als Integer oder Bigint definiert sein.

[CONSTRAINT constraint_name] column_constraint

Gibt an, welche Prüfungen für den Inhalt der Spalte durchgeführt werden sollen, um geeignete Datenwerte sicherzustellen.

DEFAULT-Klausel - Die WITH|NOT DEFAULT-Klausel in der Spaltenspezifikation gibt an, ob eine Spalte einen Eintrag erfordert.

Diese Klausel hat das folgende Format:

[WITH] DEFAULT default_spec | WITH DEFAULT | NOT DEFAULT

[WITH] DEFAULT default_spec - Gibt an, dass Actian den Standardwert einfügt, wenn kein Wert angegeben wird (weil keiner erforderlich ist). Der Standardwert muss mit dem Datentyp der Spalte kompatibel sein.

Für Zeichenspalten sind die Konstanten gültige Standardwerte: Nutzer, CURRENT_USER und SYSTEM_USER.

Für boolesche Spalten sind die Standardwerte FALSE oder TRUE gültig.

WITH DEFAULT - Gibt an, dass Actian bei numerischen und Geldspalten 0, bei Zeichenspalten einen leeren String, bei ANSI-Datenspalten das aktuelle Datum und bei Zeitstempelspalten den aktuellen Zeitstempel einfügt, wenn kein Wert angegeben wird.

NOT DEFAULT - Zeigt an, dass die Spalte obligatorisch ist (erfordert einen Eintrag).

Es folgt ein Beispiel für die Verwendung der DEFAULT-Klausel:

CREATE TABLE DEPT(dname CHAR(10),
    location   CHAR(10)  DEFAULT 'CO',
    creation   DATE      DEFAULT '01/01/22',
    Budget     MONEY     DEFAULT 10000);

Zwänge

Um sicherzustellen, dass der Inhalt der Spalten die Anforderungen Ihrer Datenbank erfüllt, geben Sie Einschränkungen (Constraints) an.

Beschränkungen können für einzelne Spalten oder die gesamte Tabelle angegeben werden. Weitere Informationen finden Sie unter Beschränkungen auf Tabellen- und Spaltenebene.

Die Arten von Beschränkungen sind:

  • Eindeutige Einschränkung - stellt sicher, dass ein Wert nur einmal in einer Spalte erscheint. Eindeutige Beschränkungen werden mit der Option UNIQUE angegeben.
  • Referentielle Einschränkung - Gewährleistet, dass ein einer Spalte zugewiesener Wert in einer entsprechenden Spalte einer anderen Tabelle erscheint. Referentielle Beschränkungen werden mit der Option REFERENCES angegeben.
  • Primärschlüssel-Beschränkung - Deklariert eine oder mehrere Spalten zur Verwendung in referentiellen Beschränkungen in anderen Tabellen. Primärschlüssel müssen eindeutig sein.

Constraints auf Tabellen- und Spaltenebene

Beschränkungen können für Gruppen von Spalten als Teil der Tabellendefinition (Beschränkungen auf Tabellenebene) oder für einzelne Spalten als Teil der Spaltenspezifikation (Beschränkungen auf Spaltenebene) angegeben werden.

Die Einschränkung hat die folgende Syntax:

[CONSTRAINT constraint_name] Einschränkung

  • constraint_name - Definiert einen Namen für das Constraint. Wenn der Name weggelassen wird, weist Actian Data Platform einen zu. Der Constraint-Name wird verwendet, wenn der Constraint mit der ALTER TABLE-Anweisung aufgehoben wird.
  • constraint - Ist entweder eine Einschränkung auf Tabellenebene (table_constraint) oder eine Einschränkung auf Spaltenebene (column_constraint).

table_constraint ist eine oder mehrere der folgenden Angaben:

UNIQUE (spalten_name {, spalten_name}) PRIMARY KEY (spalten_name {, spalten_name}) REFERENCES [schema.]table_name [(spalten_name {, spalten_name})] [enforce_option] [referential_actions]

column_constraint ist eine oder mehrere der folgenden Angaben:

  • UNIQUE
  • PRIMARY KEY
  • FOREIGN KEY (spalten_name {, spalten_name})
  • REFERENCES [schema.]table_name[(column_name)] [enforce_option] [referential_actions]

wo:

  • erzwingen_option - Gibt an, ob Beschränkungen erzwungen werden. Gültige Werte sind:
    • NOT ENFORCED - Erzwingt die Einschränkung nicht, wenn sie definiert wird oder wenn die Tabelle aktualisiert wird. Für NOT ENFORCED-Beschränkungen werden keine Indizes erstellt.
    • ENFORCED - (Standard) Erzwingt die Einschränkung.

Es gibt zusätzliche Optionen zur Angabe von referenziellen Aktionen, Sequenzen und Partitionierung, die auf der Actian Documentation Website beschrieben werden.