Übung: Verbinden mit der Datenbank und Hinzufügen von Beispieldaten

Abgeschlossen

Bevor Sie die Datenbank mit Ihrer App verbinden, sollten Sie überprüfen, ob Sie eine Verbindung mit ihr herstellen, ihr eine einfache Tabelle hinzufügen und mit Beispieldaten arbeiten können.

Wir verwalten die Infrastruktur, Softwareupdates und Patches für Ihre Azure SQL-Datenbank. Sie können Ihre Azure SQL-Datenbank wie jede andere SQL Server-Installation behandeln. Sie können z.B. Visual Studio, Azure Data Studio, SQL Server Management Studio oder andere Tools zum Verwalten von Azure SQL-Datenbank verwenden.

Wie Sie auf die Datenbank zugreifen und die Verbindung zwischen ihr und Ihrer App herstellen, bleibt Ihnen überlassen. Um ein wenig Erfahrung mit Ihrer Datenbank zu sammeln, stellen Sie direkt über das Portal eine Verbindung mit ihr her, erstellen eine Tabelle und führen einige grundlegende CRUD-Vorgänge aus. Hier lernen Sie:

  • Was Cloud Shell ist und wie Sie über das Portal darauf zugreifen.
  • Wie Sie über Azure CLI auf Informationen zu Ihrer Datenbank zugreifen, einschließlich der Verbindungszeichenfolgen.
  • Wie Sie mittels sqlcmd eine Verbindung mit Ihrer Datenbank herstellen.
  • Wie Sie die Datenbank mit einer grundlegenden Tabelle und einigen Beispieldaten initialisieren.

Was ist Azure Cloud Shell?

Azure Cloud Shell ist eine browserbasierte Shell zum Verwalten und Entwickeln von Azure-Ressourcen. Stellen Sie sich Cloud Shell als eine interaktive Konsole vor, die in der Cloud ausgeführt wird.

Hinter den Kulissen wird Cloud Shell unter Linux ausgeführt. Aber abhängig davon, ob Sie eine Linux- oder Windows-Umgebung bevorzugen, haben Sie zwei Oberflächen zur Auswahl: Bash und PowerShell.

Auf Cloud Shell können Sie von überall zugreifen. Neben dem Portal können Sie auch über shell.azure.com, über die mobile Azure-App oder über Visual Studio Code auf Cloud Shell zugreifen.

Cloud Shell umfasst beliebte Tools und Text-Editoren. Hier lernen Sie kurz die Hilfsprogramme az, jq und sqlcmd kennen, drei Tools, die Sie für diese Übung verwenden.

  • az wird auch als Azure CLI bezeichnet. Dies ist die Befehlszeilenschnittstelle für die Arbeit mit Azure-Ressourcen. Sie verwenden die Schnittstelle, um Informationen zu Ihrer Datenbank (einschließlich der Verbindungszeichenfolge) zu erhalten.
  • jq ist ein Befehlszeilen-JSON-Parser. Sie reichen die Ausgabe von az-Befehlen an dieses Tool weiter, um wichtige Felder aus der JSON-Ausgabe zu extrahieren.
  • Mit sqlcmd können Sie Anweisungen auf einer SQL Server-Instanz ausführen. Mit sqlcmd erstellen Sie eine interaktive Sitzung mit Ihrer Azure SQL-Datenbankinstanz.

Abrufen von Informationen zu Ihrer Azure SQL-Datenbank-Instanz

Bevor Sie eine Verbindung mit Ihrer Datenbank herstellen, sollten Sie überprüfen, ob sie vorhanden und online ist.

Hierzu listen Sie mithilfe des Hilfsprogramms az Ihre Datenbanken auf und zeigen Informationen zur Datenbank Logistics an (einschließlich maximaler Größe und Status).

  1. Die von Ihnen ausgeführten az-Befehle erfordern den Namen Ihrer Ressourcengruppe und den Namen Ihres logischen Azure SQL-Servers. Sie können sich die Eingabe über die Tastatur ersparen, indem Sie diesen azure configure-Befehl ausführen, um sie als Standardwerte anzugeben.

    Ersetzen Sie [server-name] durch den Namen des logischen Azure SQL-Servers, den Sie erstellt haben, und [resource-group] durch die Ressourcengruppe, die Sie für Ihren Server verwendet haben.

    az configure --defaults group=[resource-group] sql-server=[server-name]
    

    Hinweis

    Abhängig von dem Bereich, in dem Sie sich im Portal befinden, wird der Name Ihres SQL-Servers möglicherweise als ein vollqualifizierter Domänenname (z. B. „servername.database.windows.net“) angezeigt. Für diesen Befehl benötigen Sie jedoch nur den logischen Namen ohne das Suffix „.database.windows.net“.

  2. Führen Sie den folgenden az sql db list-Befehl aus, um alle Datenbanken auf dem logischen Azure SQL-Server aufzulisten.

    az sql db list
    

    Daraufhin wird ein umfangreicher JSON-Block ausgegeben.

  3. Führen Sie den Befehl ein zweites Mal aus, da nur die Datenbanknamen angezeigt werden sollen. Übergeben Sie die Ausgabe diesmal jedoch an jq, um nur die Namensfelder anzuzeigen.

    az sql db list | jq '[.[] | {name: .name}]'
    

    Die Ausgabe sollte wie folgt aussehen:

    [
      {
        "name": "Logistics"
      },
      {
        "name": "master"
      }
    ]
    

    Logistics ist Ihre Datenbank. Genau wie SQL Server enthält die Systemdatenbank master Servermetadaten wie Anmeldungen und Systemkonfigurationseinstellungen.

  4. Führen Sie den folgenden az sql db show-Befehl aus, um Details zur Logistics-Datenbank zu erhalten:

    az sql db show --name Logistics
    

    Wie bereits zuvor sehen Sie einen großen JSON-Block als Ausgabe.

  5. Führen Sie den Befehl ein zweites Mal aus. Reichen Sie die Ausgabe diesmal an jq weiter, um die Ausgabe auf den Namen, die maximale Größe und den Status der Logistics-Datenbank zu beschränken.

    az sql db show --name Logistics | jq '{name: .name, maxSizeBytes: .maxSizeBytes, status: .status}'
    

    Sie sehen, dass die Datenbank online ist, und es wird die maximale Menge an Daten angezeigt, die in der Datenbank gespeichert werden können.

    {
      "name": "Logistics",
      "maxSizeBytes": 2147483648,
      "status": "Online"
    }
    

Herstellen einer Verbindung mit Ihrer Datenbank

Da Sie nun etwas mit Ihrer Datenbank vertraut sind, lassen Sie uns eine Verbindung mit ihr unter Verwendung von sqlcmd herstellen, eine Tabelle erstellen, die Informationen über Transportfahrer enthält, und einige grundlegende CRUD-Vorgänge ausführen.

Beachten Sie, dass CRUD für Create (Erstellen), Read (Lesen), Update (Aktualisieren) und Delete (Löschen) steht. Diese Begriffe beziehen sich auf Vorgänge, die Sie für Tabellendaten ausführen, und diese vier grundlegenden Vorgänge benötigen Sie für Ihre App. Jetzt ist ein guter Zeitpunkt, um zu überprüfen, ob Sie sie jeweils ausführen können.

  1. Führen Sie den folgenden az sql db show-connection-string-Befehl aus, um die Verbindungszeichenfolge zum Herstellen der Verbindung mit der Logistics-Datenbank in einem Format abzurufen, das von sqlcmd verwendet werden kann:

    az sql db show-connection-string --client sqlcmd --name Logistics
    

    Die Ausgabe ähnelt dem folgenden Beispiel. Kopieren Sie diese Ausgabe, damit Sie sie im nächsten Schritt verwenden können.

    "sqlcmd -S tcp:<server-name>.database.windows.net,1433 -d Logistics -U <username> -P <password> -N -l 30"
    
  2. Führen Sie die sqlcmd-Anweisung aus der Ausgabe des vorherigen Schritts aus, um eine interaktive Sitzung zu erstellen. Entfernen Sie die umgebenden Anführungszeichen, und ersetzen Sie <username> und <password> durch den Benutzernamen und das Kennwort, die Sie beim Erstellen der Datenbank angegeben haben. Hier sehen Sie ein Beispiel:

    sqlcmd -S tcp:<server-name>.database.windows.net,1433 -d Logistics -U martina -P 'password1234$' -N -l 30
    

    Tipp

    Setzen Sie Ihr Kennwort in einfache Anführungszeichen, damit „&“ und andere Sonderzeichen nicht als Verarbeitungsanweisungen interpretiert werden.

    Wichtig

    Möglicherweise wird eine Fehlermeldung wie die folgende angezeigt:

    Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server:
    Cannot open server 'contoso' requested by the login.
    Client with IP address 'nnn.nnn.nnn.nnn' is not allowed to access the server.
    To enable access, use the Windows Azure Management Portal or run sp_set_firewall_rule
    on the master database to create a firewall rule for this IP address or address range.
    It may take up to five minutes for this change to take effect.
    

    Wenn dieser Fehler auftritt, müssen Sie eine weitere Firewallregel für Ihren Client hinzufügen. Führen Sie dazu die folgenden Schritte aus:

    • Melden Sie sich beim Azure-Portal an.

    • Klicken Sie auf der Azure-Startseite unter Azure-Dienste auf die Option Ressource erstellen. Der Bereich Alle Ressourcen wird angezeigt.

    • Suchen Sie nach Ihrer Datenbank, und wählen Sie sie aus. Der Bereich Logistik wird für Ihre SQL-Datenbank-Instanz angezeigt.

    • Klicken Sie in der oberen Menüleiste auf Serverfirewall festlegen. Der Bereich Netzwerk wird angezeigt.

    • Wählen Sie im Abschnitt Firewallregeln die Option Firewallregel hinzufügen aus. Der Bereich Firewallregel hinzufügen wird angezeigt.

    • Geben Sie einen eindeutigen Namen als Regelname an, und geben Sie dann die IP-Adresse aus der Fehlermeldung in die beiden Felder Start-IP und End-IP ein. Klicken Sie auf OK.

    • Wählen Sie Speichern aus.

    • Führen Sie die sqlcmd-Anweisung erneut aus, um Ihre interaktive sqlcmd-Sitzung zu starten. Das Ergebnis sollte etwa wie im folgenden Beispiel aussehen:

    sqlcmd -S tcp:<server-name>.database.windows.net,1433 -d Logistics -U martina -P 'password1234$' -N -l 30
    

    Nachdem Sie Ihre sqlcmd-Sitzung gestartet haben, verwenden die verbleibenden Befehle die Sprachen Transact-SQL oder T-SQL.

    Tipp

    Wenn Sie die T-SQL-Befehle in diesem Modul ausführen, wird GO in der zweiten Zeile möglicherweise nicht in die sqlcmd-Eingabeaufforderung kopiert. Nachdem Sie die erste Zeile des Befehls eingegeben haben, müssen Sie möglicherweise den GO-Befehl eingeben. Stellen Sie sicher, dass Sie den GO-Befehl ausführen, da der T-SQL-Befehl ohne ihn nicht ausgeführt werden kann.

  3. Führen Sie in Ihrer sqlcmd-Sitzung die folgenden T-SQL-Anweisungen aus, um eine Tabelle mit dem Namen Drivers zu erstellen:

    CREATE TABLE Drivers (DriverID int, LastName varchar(255), FirstName varchar(255), OriginCity varchar(255));
    GO
    

    Die Tabelle enthält vier Spalten: einen eindeutigen Bezeichner, Nach- und Vorname des Fahrers und den Herkunftsort des Fahrers.

  4. Führen Sie die folgenden T-SQL-Anweisungen aus, um sich zu vergewissern, dass die Drivers-Tabelle vorhanden ist:

    SELECT name FROM sys.tables;
    GO
    

    Die Ausgabe sollte wie folgt aussehen:

    name
    --------------------------------------------------------------------------------------------------------------------------------
    Drivers
    
    (1 rows affected)
    
  5. Führen Sie zum Testen des create-Vorgangs die folgenden T-SQL-Anweisungen aus, um der Tabelle eine Beispielzeile hinzuzufügen:

    INSERT INTO Drivers (DriverID, LastName, FirstName, OriginCity) VALUES (123, 'Zirne', 'Laura', 'Springfield');
    GO
    

    Die folgende Ausgabe gibt an, dass der Vorgang erfolgreich war:

    (1 rows affected)
    
  6. Wenn Sie den read-Vorgang testen möchten, führen Sie die folgenden T-SQL-Anweisungen aus, um die Spalten DriverID und OriginCity aus allen Zeilen der Tabelle aufzulisten:

    SELECT DriverID, OriginCity FROM Drivers;
    GO
    

    Sie erhalten ein Ergebnis mit DriverID und OriginCity für die Zeile, die Sie im vorherigen Schritt erstellt haben.

    DriverID    OriginCity
    ----------- --------------------------
            123 Springfield
    
    (1 rows affected)
    
  7. Wenn Sie den update-Vorgang testen möchten, führen Sie die folgenden T-SQL-Anweisungen aus, um den Herkunftsort des Fahrers oder der Fahrerin mit der Fahrer-ID (DriverID) „123“ von „Springfield“ in „Boston“ zu ändern:

    UPDATE Drivers SET OriginCity='Boston' WHERE DriverID=123;
    GO
    
  8. Führen Sie die folgenden T-SQL-Anweisungen aus, um die Spalten DriverID und OriginCity erneut aufzulisten:

    SELECT DriverID, OriginCity FROM Drivers;
    GO
    

    Nun sollten Sie die folgende Ausgabe erhalten: Beachten Sie, dass OriginCity die Aktualisierung zu „Boston“ widerspiegelt.

    DriverID    OriginCity
    ----------- --------------------------
            123 Boston
    
    (1 rows affected)
    
  9. Testen Sie abschließend den delete-Vorgang, indem Sie die folgenden T-SQL-Anweisungen ausführen, um den Datensatz zu löschen:

    DELETE FROM Drivers WHERE DriverID=123;
    GO
    
    (1 rows affected)
    
  10. Führen Sie die folgenden T-SQL-Anweisungen aus, um sich zu vergewissern, dass die Drivers-Tabelle leer ist:

    SELECT COUNT(*) FROM Drivers;
    GO
    

    Sie sehen, dass die Tabelle keine Zeilen enthält.

    -----------
              0
    
    (1 rows affected)
    

Da Sie nun eine allgemeine Vorstellung davon haben, wie Sie über Cloud Shell mit Azure SQL-Datenbank arbeiten, können Sie die Verbindungszeichenfolge für Ihr bevorzugtes SQL-Verwaltungstool abrufen (über SQL Server Management Studio, über Visual Studio oder über eine andere Lösung).

Cloud Shell erleichtert Ihnen den Zugriff auf Ihre Azure-Ressourcen und das Arbeiten damit. Da Cloud Shell browserbasiert ist, können Sie mit Windows, macOS oder Linux (im Wesentlichen mit jedem System, in dem ein Webbrowser zur Verfügung steht) darauf zugreifen.

Sie gewannen einige praktische Erfahrungen mit der Ausführung von Azure CLI-Befehlen zum Abrufen von Informationen zu Ihrer SQL Azure-Datenbank. Außerdem hatten Sie die Gelegenheit, Ihre T-SQL-Kenntnisse in der Praxis einzusetzen.

In der nächsten Lerneinheit wird dieses Modul zusammengefasst. Zudem wird erläutert, wie Sie Ihre Datenbank löschen können.