Database
 sql >> Datenbank >  >> RDS >> Database

SQL Basic-Befehle:So schreiben Sie einfache Abfragen mit Beispielen

Dieser Artikel erklärt das Schreiben einfacher SQL-Abfragen von den grundlegendsten und das schrittweise Verbessern des Skripts, um einige mathematische und datumsbezogene Probleme zu lösen. Außerdem werden wir die Konzepte rund um SQL-Abfragen verdeutlichen.

Obwohl dieser Artikel hauptsächlich für Anfänger gedacht ist, enthält er Hinweise, die für alle Erfahrungsstufen hilfreich sind.

Was ist eine SQL-Abfrage in der Datenbank?

Lassen Sie uns zunächst ein wenig über SQL-Abfragen sprechen, um sie richtig zu verstehen, bevor wir praktische Erfahrungen mit dem Schreiben sammeln.

SQL steht für Structured Query Language das ist eine grundlegende Sprache, die verwendet wird, um relationale Datenbanken abzufragen.

T-SQL vs. SQL – Was ist der Unterschied?

T-SQL oder Transact-SQL ist die Microsoft-Version von SQL mit mehr Funktionen und Merkmalen als die herkömmliche SQL-Sprache, auch bekannt als ANSI SQL.

Daher ist T-SQL eine traditionelle SQL-Sprache plus weitere Dinge, die von Microsoft hinzugefügt wurden. Es wird häufiger verwendet und erwähnt, wenn wir über SQL sprechen.

Dieser Artikel bezieht sich auf die Microsoft SQL-Version, unabhängig davon, ob wir das Wort SQL oder T-SQL verwenden.

Warum verwenden wir SQL-Abfragen in einer relationalen Datenbank?

Eine relationale Datenbank ist eine Datenbank mit Schlüsseln, die verwendet werden, um Tabellen zu verbinden, anstatt Tabellen physisch zu verbinden.

Sie haben beispielsweise eine Tabelle namens Buch die Sie mit einer anderen Tabelle namens BookType verknüpfen über Tasten, um den Datensätzen weitere Bedeutungen hinzuzufügen.

Die Tabellen auf der Abbildung sind durch einen Schlüssel verknüpft. Sie müssen nicht physisch verbunden werden. Dies ist die Grundregel relationaler Datenbanken – Sie erstellen Beziehungen zwischen den beiden Tabellen mit Hilfe von Schlüsseln.

Lesen Sie auch relationale Datenbank vs. NoSQL – was für Big Data Management wählen?

Was ist das Abfragen einer Datenbank?

Sie fragen die Datenbank ab, um Antworten auf Fragen zu erhalten, die sich auf diese Datenbank beziehen. Mit anderen Worten, Sie schreiben Abfragen für eine Datenbank, um Informationen über die darin enthaltenen Daten zu erhalten.

Beispielsweise möchten Sie alle Bucheinträge zusammen mit ihren Typen in der jeweiligen Datenbank anzeigen. Sie müssen diese Datenbank abfragen, um die erforderlichen Daten anzuzeigen. Dazu müssen Sie ein Skript für die Datenbank schreiben und ausführen.

Was benötigen Sie für eine Abfrage?

Es müssen einige Voraussetzungen vorhanden sein, um eine Datenbank abzufragen, da wir nicht einfach irgendwo eine Abfrage schreiben und für irgendetwas ausführen können.

Die folgenden Dinge sind obligatorisch, um eine Datenbank abzufragen:

  1. Ein Datenbankserver wie SQL Server (lokal oder remote installiert), auf dem Sie die Datenbank speichern.
  2. Ein Datenbankverwaltungstool wie SQL Server Management Studio oder dbForge Studio für SQL Server, das Sie zum Schreiben und Ausführen Ihrer Abfragen verwenden werden
  3. Eine Datenbank, für die Sie Ihre Abfragen ausführen. Sie können zu Lernzwecken eine beliebige Beispieldatenbank erstellen.

Außerdem müssen Sie ein grundlegendes Verständnis Ihrer Datenbank haben, z. B. welche Tabelle die gewünschten Informationen enthält und so weiter. Das Verständnis von relationalen Datenbankkonzepten ist ebenfalls von Vorteil.

Wir gehen davon aus, dass Sie die oben genannten Voraussetzungen bereits erfüllt haben. Weitere Informationen finden Sie jedoch auch im folgenden Artikel:

Grundlagen von SQL Server Management Studio (SSMS) – Teil 1

Vorgehen vor dem Schreiben von Abfragen in SQL

Wir werden jetzt einfache SQL-Abfragen schreiben.

Bitte richten Sie die Umgebung ein, um mit dem Schreiben Ihrer SQL-Abfragen zu beginnen. Legen Sie die Werkzeuge bereit. Öffnen Sie dbForge Studio für SQL Server oder SQL Server Management Studio und verbinden Sie sich mit der SQL-Instanz. Hier beginnen wir unsere SQL-Reise:

Drücken Sie nach erfolgreicher Verbindung STRG+N oder gehen Sie zu Datei> Neu> Abfrage mit aktueller Verbindung :

Jetzt sind Sie erfolgreich mit dem Master (Systemdatenbank) des aktuell verbundenen Servers verbunden.

Wichtiger Tipp: Erstellen Sie immer eine Beispieldatenbank, um Ihre Abfragen (Skripts) damit auszuführen. Das Ausführen von Abfragen für die Systemdatenbanken ist keine gute Praxis, außer in drei Fällen:

  1. Sie arbeiten mit einer Beispieldatenbank, und dann wird das dafür erstellte Skript gegen die System-(Master-)Datenbank ausgeführt.
  2. Sie fragen die Master-Datenbank absichtlich ab, um Informationen daraus zu bekommen.
  3. Die Abfragen können sicher gegen die System-(Master-)Datenbank ausgeführt werden.

Eine Musterdatenbank einrichten

Lassen Sie uns eine Beispieldatenbank mit dem Namen BookSimple erstellen ohne Tabellen. Schreiben Sie das folgende Skript für die Master-Datenbank, um eine Beispieldatenbank zu erstellen, und Drücken Sie F5 um die Abfrage auszuführen:

-- Create sample database BookSimple
USE MASTER
GO

CREATE DATABASE BookSimple
GO

USE BookSimple

Das mengenbasierte Konzept hinter SQL-Abfragen

Bevor Sie auch nur die einfachste SQL-Abfrage schreiben, müssen Sie verstehen, dass SQL eine mengenbasierte Sprache ist.

Das bedeutet, wenn Sie Ihre Datenbank mit SQL abfragen möchten, sollten Sie in Mengen oder Gruppen denken.

SQL ist von Natur aus sehr effizient und standardmäßig sehr effizient, um satzbasierte Anforderungen zu bedienen. Wenn Sie Ihre Skripte (Abfragen) unter Berücksichtigung der mengenbasierten Logik entwerfen, verstehen und implementieren Sie SQL schneller als diejenigen, die dem typischen Lernpfad folgen (was seine eigenen Vorteile hat).

Denken wir an eine natürlich vorkommende Menge, wie Klasse oder Gruppe. Wenn wir uns auf eine Klasse beziehen, beziehen wir uns auf alle Schüler in dieser Klasse. SQL kann dabei helfen, diese Klasse als Ganzes abzufragen.

Ebenso ein Buch ist ein Büchertisch. Es enthält alle Datensätze für Bücher. Wir können diese Tabelle einfach so abfragen, als würden wir über ein einzelnes Buch sprechen, aber eigentlich fragen wir die gesamte Tabelle mit Büchern ab, die durch das Buch repräsentiert wird Tabelle.

Wir werden später mehr Vorteile des mengenbasierten Konzepts sehen, wenn wir uns einige grundlegende Beispiele ansehen.

Einfache SQL-SELECT-Anweisung

SELECT ist eine T-SQL-Anweisung, die alle oder ausgewählte Zeilen und Spalten (basierend auf einem Kriterium) aus einer Datenbank abruft.

Mit anderen Worten, SELECT lässt uns Daten aus einer Tabelle oder mehreren Tabellen basierend auf bestimmten Kriterien anzeigen (auswählen), die, wenn nicht allgemein erwähnt, alle Daten anzeigen.

Daher ist SELECT die erste Anweisung, nach der gesucht werden muss, wenn Zeilen und Spalten aus einer Datenbank abgerufen werden sollen. Die einfachste Form der SELECT-Syntax lautet wie folgt:

SELECT * FROM <Table>

Denken Sie daran, dass wir die Syntax mit der Zeit ändern werden, um den Lernprozess schrittweise zu verbessern.

Eine andere Möglichkeit, die SELECT-Anweisung zu verwenden, ist wie folgt:

SELECT <Expression>

Der Ausdruck kann viele Dinge beinhalten, einschließlich der folgenden:

  1. Konstante (z. B. eine feste Zahl wie 1).
  2. Variable (z. B. @X, das in eine beliebige Zahl geändert werden kann).
  3. Kombination von Konstanten oder Variablen (z. B. 1+2 oder @X [email protected]).

Unabhängig davon, ob Sie SELECT oder SELECT * FROM

verwenden, müssen Sie in Mengen denken.

Wie man eine einfache SQL-Abfrage schreibt

Lassen Sie uns das BookSimple abfragen Datenbank durch Aktualisieren der Datenbanken Knoten unter Objekt-Explorer. Klicken Sie mit der rechten Maustaste auf BookSimple > Neue Abfrage :

Schreiben Sie die einfachste SQL-Abfrage auf – schreiben Sie das folgende Skript und führen Sie es für die Beispieldatenbank aus:

-- Display 1
SELECT 1

Das Ausführen der Abfrage (durch Drücken von F5) zeigt die folgenden Ergebnisse:

SELECT 1 gibt also 1 zurück, aber mit einer unbenannten Spalte (Kein Spaltenname).

1 ist eine Konstante. Es bleibt 1, also erwarten wir, dass das Ergebnis ebenfalls 1 ist. Es gibt jedoch noch eine wichtige Sache zu verstehen:Unsere Ausgabe wird in einen Satz von 1 Spalte und 1 Zeile umgewandelt. Da wir der Spalte keinen Namen gegeben haben und keine Tabelle beteiligt ist (um den Namen zu erhalten), erhalten wir den Wert 1 für eine unbenannte Spalte einer unbenannten Tabelle (Set).

Die mengenbasierte Sprache hat unseren bereitgestellten Wert automatisch an eine unbenannte Spalte einer unbenannten Tabelle mit einer Zeile zurückgegeben.

Lassen Sie uns die Spalte benennen, indem Sie das Skript wie folgt ändern:

-- Show value 1 for the column Number of an unnamed table (set)
SELECT 1 AS Number

Führen Sie das Skript aus, um dieses Mal die folgende Ergebnismenge anzuzeigen:

Da diese Abfrage immer denselben Wert (Zahl) zurückgibt, den wir eingeben (bereitstellen), gibt es nicht viel zu diskutieren, außer zu verstehen, warum das mengenbasierte Denken für das Verständnis der Funktionsweise von Abfragen unerlässlich ist.

Berechnung in Select-Anweisung

Lassen Sie uns den obigen Fall für schnelle Berechnungen in SQL verwenden – wir verwandeln den einzelnen Wert in einen Ausdruck.

Zum Beispiel möchten wir schnell zwei Zahlen 1000 und 200 addieren. Wir können einfach die folgende Abfrage schreiben, ohne eine Tabelle zu erwähnen, indem wir nur die SELECT-Anweisung verwenden:

-- Adding two numbers 1000 and 200 
SELECT 1000+200 AS [Sum Of 1000 And 200]

Das Ergebnis ist unten:

Ebenso können wir Zahlen addieren, multiplizieren, dividieren und subtrahieren.

Es ist hilfreich, zwei Spalten einer Tabelle mit numerischen Werten hinzuzufügen. Wir können diesen Ansatz jedoch auch verwenden, um zwei Variablen hinzuzufügen. Die Verwendung von Variablen ist vorteilhaft, da wir zwei beliebige Zahlen addieren können, indem wir diese Variablen mit den gewünschten Werten initialisieren. Dies wird durch das folgende Skript veranschaulicht:

-- SQL script to add any two numbers
DECLARE @X INT, @Y INT, @Addition INT

SET @X=550 -- Initialise variable X with a value (number)
SET @Y=350 -- Initialise variable Y with a value (number)
 
SET @[email protected]@sqldat.com -- SUM X and Y

SELECT @X AS FirstNumber_X,@Y as SecondNumber_Y,@Addition as SumOfNumbers

Das Ausführen des Skripts zeigt uns die folgende Ausgabe:

Wir können diese Abfrage speichern, um sie jederzeit wiederzuverwenden, um zwei beliebige Zahlen zu addieren (indem wir die Werte von @X und @Y ändern). Wenn wir uns das im Sinne eines Sets vorstellen, können wir sagen, dass die Ausgabe als unbenannte Tabelle (Set) mit einer Zeile und den folgenden drei Spalten zurückgegeben wird:

  1. ErsteNummer_X
  2. SecondNumber_Y
  3. SummeZahlen

Allerdings können Sie mit dem SELECT mit einer leeren Datenbank (ohne Tabellen) mehr tun.

Noch ein Datenberechnungsbeispiel

Hier verwenden wir die Funktion GETDATE(), um das aktuelle Datum und das voraussichtliche Lieferdatum einer unbekannten Bestellung abzurufen, die noch nicht Teil unserer Tabelle ist.

Angenommen, wir haben noch keine Bestelltabelle, möchten aber schnell ein voraussichtliches Lieferdatum für die Produktbestellung berechnen. Wenn wir der GETDATE()-Funktion eine beliebige Zahl hinzufügen, wird uns das Datum mitgeteilt, das mit der angegebenen Anzahl der Tage hinzugefügt wird.

Mit anderen Worten, wenn wir das Lieferdatum der Bestellung zwei Tage nach der Bestellung erwarten, können wir es berechnen, indem wir SELECT mit GETDATE()+2 verwenden.

Um es in Aktion zu sehen, führen Sie das folgende SQL-Skript aus:

-- Calculating order date and expected delivery date
SELECT GETDATE() AS [Order Date],GETDATE()+2 as [Expected Delivery Date]

Die Ergebnismenge lautet wie folgt:

Diesmal könnten wir das voraussichtliche Lieferdatum der Bestellung direkt berechnen, indem wir die SELECT-Anweisung mit der Funktion GETDATE() verwenden, ohne dass eine Tabelle vorhanden ist.

Wenn wir jedoch eine Tabelle hätten, hätten wir das erwartete Lieferdatum für alle Bestellungen in dieser Tabelle erhalten.

Noch einmal, wenn wir diese Ausgabe in Bezug auf die Set-Logik analysieren, haben wir eine unbenannte Tabelle (Set) mit zwei Spalten und einer Zeile. SQL ist eine mengenbasierte Sprache, die sehr schnell mit Mengen wie Tabellen arbeitet. Wenn keine Tabellen vorhanden sind, behandelt es die (zu verarbeitenden) Eingabewerte als unbenannte Mengen.

Kurz gesagt, eine SQL-Abfrage erfordert eine SELECT-Anweisung, gefolgt von einem Ausdruck, um einige zahl- oder datumsbasierte Berechnungen sogar gegen eine leere Datenbank (keine Tabellen) durchzuführen.

Herzliche Glückwünsche! Sie haben die Grundlagen von SQL-Abfragen gelernt und einige einfache Abfragen mit Hilfe der SELECT-Anweisung für eine Beispieldatenbank geschrieben.

Bleiben Sie in Kontakt, da das Schreiben einfacher SQL-Abfragen für die Datenbanktabellen noch bevorsteht.

Dinge, die Sie lernen sollten, um SQL-Abfragen besser zu schreiben

Nachdem Sie nun einige grundlegende SQL-Abfragen schreiben können, versuchen Sie die folgenden Übungen:

  1. Erstellen Sie eine Beispieldatenbank BookSimple2.
  2. Erstellen Sie eine Abfrage, um zwei beliebige Zahlen zu multiplizieren, indem Sie sie als Variablen definieren.
  3. Schreiben Sie eine Abfrage, um ein Bestelldatum als aktuelles Datum, ein Versanddatum als zwei Tage nach dem Bestelldatum und ein voraussichtliches Lieferdatum als zwei Tage nach dem Versanddatum zu erstellen.