Lernprogramm: Entwerfen einer relationalen Datenbank in der Azure SQL-Datenbank mit Visual Studio Code

Gilt für:Azure SQL-Datenbank

Azure SQL-Datenbank ist eine relationale Datenbank as-a-Service (DBaaS) in der Microsoft Cloud (Azure). In diesem Lernprogramm erfahren Sie, wie Sie das Azure-Portal und die MSSQL-Erweiterung für Visual Studio Code verwenden, um:

  • Stellen Sie mit Visual Studio Code eine Verbindung zur Datenbank her
  • Erstellen von Tabellen mit Visual Studio Code
  • Massenladen von Daten mit BCP
  • Abfragen von Daten mit Visual Studio Code

Hinweis

Für dieses Tutorial wird Azure SQL-Datenbank verwendet. Sie können auch eine Pooldatenbank in einem Pool für elastische Datenbanken oder eine verwaltete SQL-Instanz verwenden. Informationen zur Konnektivität mit einer SQL Managed Instance finden Sie in den folgenden Schnellstarts zu SQL Managed Instance: Schnellstart: Konfigurieren einer Azure-VM zum Herstellen einer Verbindung mit der verwalteten Instanz von Azure SQL und Schnellstart: Konfigurieren einer Point-to-Site-Verbindung mit Azure SQL Managed Instance von einem lokalen Netzwerk aus.

Voraussetzungen

Um dieses Lernprogramm abzuschließen, stellen Sie sicher, dass Sie Folgendes installiert haben:

Melden Sie sich auf dem Azure-Portal an.

Melden Sie sich beim Azure-Portal an.

Erstellen einer IP-Firewallregel auf Serverebene

Azure SQL-Datenbank erstellt eine IP-Firewall auf Serverebene. Diese Firewall verhindert, dass externe Anwendungen und Tools eine Verbindung mit dem Server und Datenbanken auf dem Server herstellen, sofern die IP-Adresse nicht durch eine Firewallregel zugelassen wird. Um externe Verbindungen mit Ihrer Datenbank zuzulassen, müssen Sie zunächst eine IP-Firewallregel für Ihre IP-Adresse (oder einen IP-Adressbereich) hinzufügen. Führen Sie die folgenden Schritte aus, um eine IP-Firewallregel auf Serverebene zu erstellen.

Von Bedeutung

Azure SQL-Datenbank kommuniziert über Port 1433. Wenn Sie versuchen, eine Verbindung mit diesem Dienst aus einem Unternehmensnetzwerk herzustellen, ist der ausgehende Datenverkehr über Port 1433 möglicherweise nicht durch die Firewall Ihres Netzwerks zulässig. Wenn ja, können Sie keine Verbindung mit Ihrer Datenbank herstellen, es sei denn, Ihr Administrator öffnet Port 1433.

  1. Wählen Sie nach Abschluss der Bereitstellung im Menü des Azure-Portals die Option SQL-Datenbanken aus, oder suchen Sie auf einer beliebigen Seite nach SQL-Datenbanken, und wählen Sie die entsprechende Option aus.

  2. Wählen Sie auf der Seite SQL-Datenbanken die Datenbank yourDatabase aus. Daraufhin wird die Übersichtsseite für Ihre Datenbank geöffnet. Dort finden Sie unter Servername den vollqualifizierten Servernamen (z. B. contosodatabaseserver01.database.windows.net) sowie Optionen für die weitere Konfiguration.

    Screenshot des Azure-Portals, Datenbankübersichtsseite mit hervorgehobenem Servernamen.

  3. Kopieren Sie diesen vollqualifizierten Servernamen, um in SQL Server Management Studio eine Verbindung mit Ihrem Server und den Datenbanken herzustellen.

  4. Wählen Sie Netzwerk unter Einstellungen aus. Wählen Sie die Registerkarte Öffentlicher Zugriff und dann unter Öffentlicher Netzwerkzugriff die Option Ausgewählte Netzwerke aus, um den Abschnitt Firewallregeln anzuzeigen.

    Screenshot des Azure-Portals, Netzwerkseite, auf der gezeigt wird, wo die IP-Firewallregel auf Serverebene festgelegt werden soll.

  5. Wählen Sie auf der Symbolleiste Fügen Sie Ihre Client-IPv4-Adresse hinzu aus, um Ihre aktuelle IP-Adresse einer neuen IP-Firewallregel hinzuzufügen. Eine IP-Firewallregel kann Port 1433 für eine einzelne IP-Adresse oder einen Bereich von IP-Adressen öffnen.

  6. Wählen Sie Speichern aus. Für Ihre aktuelle IP-Adresse wird eine IP-Firewallregel auf Serverebene erstellt, und auf dem Server wird der Port 1433 geöffnet.

  7. Wählen Sie OK aus, und schließen Sie anschließend die Seite Firewalleinstellungen.

Ihre IP-Adresse kann nun die IP-Firewall passieren. Nun können Sie mit SQL Server Management Studio oder einem anderen Tool Ihrer Wahl die Verbindung mit der Datenbank herstellen. Verwenden Sie das Serveradministratorkonto, das Sie zuvor erstellt haben.

Von Bedeutung

Standardmäßig ist der Zugriff über die SQL-Datenbank-IP-Firewall für alle Azure-Dienste aktiviert. Wählen Sie auf dieser Seite OFF, um alle Azure-Dienste zu deaktivieren.

Herstellen der Verbindung mit der Datenbank

Verwenden Sie die MSSQL-Erweiterung für Visual Studio Code , um eine Verbindung mit Ihrer Datenbank herzustellen.

  1. Öffnen Sie Visual Studio Code.

  2. Erstellen Sie im Objekt-Explorer in der neuen Verbindung eine neue Verbindung, und geben Sie die folgenden Informationen ein. Behalten Sie für die anderen Optionen die Standardwerte bei.

    Setting Vorgeschlagener Wert Description
    Verbindungstyp Microsoft SQL Server Dieser Wert ist erforderlich.
    Servername Der vollqualifizierte Name des logischen Azure-SQL-Datenbankservers Beispiel: your_logical_azure_sql_server.database.windows.net.
    Authentifizierungstyp SQL Server-Authentifizierung Verwenden Sie die SQL Server-Authentifizierung, um einen Benutzernamen und ein Kennwort einzugeben.
    Microsoft Entra-Authentifizierung Wenn Sie der Microsoft Entra-Serveradministrator sind, wählen Sie Microsoft Entra ID – Universal mit MFA-Support aus, um eine Verbindung mit Microsoft Entra ID herzustellen. Weitere Informationen finden Sie unter Konfigurieren und Verwalten der Microsoft Entra-Authentifizierung mit Azure SQL.
    anmelden Das Serveradministratorkonto Hierbei handelt es sich um das Konto, das Sie bei der Servererstellung angegeben haben.
    Passwort Das Kennwort für das Serveradministratorkonto Das Kennwort, das Sie beim Erstellen des Servers angegeben haben

    Screenshot des Dialogfelds

  3. Wählen Sie Verbinden aus. Das Fenster "Objekt-Explorer " wird in ADS geöffnet.

  4. Erweitern Sie im Objekt-Explorer die Option Datenbanken und anschließend die Option yourDatabase, um die Objekte in der Beispieldatenbank anzuzeigen.

  5. Klicken Sie mit der rechten Maustaste im Objekt-Explorer auf yourDatabase, und wählen Sie Neue Abfrage aus. Ein leeres Abfragefenster mit einer Verbindung mit Ihrer Datenbank wird geöffnet.

Erstellen von Tabellen in Ihrer Datenbank

Erstellen Sie ein Datenbankschema mit vier Tabellen, die ein Studentenmanagementsystem für Universitäten modellieren, indem Sie den Tabellen-Designer verwenden:

  • Person
  • Course
  • Student
  • Credit

Die folgende Abbildung zeigt, wie diese Tabellen miteinander verknüpft sind. Aus einigen dieser Tabellen wird auf Spalten in anderen Tabellen verwiesen. Beispielsweise wird aus der Tabelle Student auf die Spalte PersonId der Tabelle Person verwiesen. Sehen Sie sich die Abbildung an, um zu verstehen, wie die Tabellen in diesem Tutorial miteinander verknüpft sind. Ausführliche Informationen zum Erstellen effektiver normalisierter Datenbanktabellen finden Sie unter Entwerfen einer normalisierten Datenbank. Informationen zum Auswählen von Datentypen finden Sie unter Datentypen. Standardmäßig werden Tabellen im Standardschema dbo erstellt, was bedeutet, dass der zweiteilige Name einer Tabelle beispielsweise dbo.Person lautet.

Screenshot der Tabellenbeziehungen.

  1. Wählen Sie im Objekt-ExplorerIhre Datenbank aus, wodurch das Dropdownmenü aller in dieser Datenbank gespeicherten Prozesse erweitert wird, klicken Sie mit der rechten Maustaste auf den Ordner "Tabellen ", wählen Sie "Neue Tabelle" aus. Ein leerer Tabellen-Designer wird geöffnet, der mit Ihrer Datenbank verbunden ist.

  2. Verwenden Sie die Tabellen-Designer-Schnittstelle, um diese vier Tabellen in Ihrer Datenbank zu erstellen. Weitere Informationen zum Erstellen von Tabellen mithilfe des Tabellen-Designers finden Sie unter "Tabellen-Designer":

    • Personentabelle

      Screenshot der Personentabelle im Tabellen-Designer.

      Stellen Sie sicher, dass Sie die Primärschlüsseleinstellungen für die Personentabelle wie unten gezeigt konfigurieren:

      Screenshot der Tabelle

    • Schülertabelle

      Screenshot der Tabelle

      Stellen Sie sicher, dass Sie die Primärschlüsseleinstellungen für die Schülertabelle wie unten dargestellt konfigurieren: Screenshot der Tabelle

      Stellen Sie sicher, dass Sie die Fremdschlüsseleinstellungen für die Schülertabelle wie unten gezeigt konfigurieren: Screenshot der Tabelle

    • Kurstabelle

      Screenshot der Kurstabelle im Tabellen-Designer.

      Stellen Sie sicher, dass Sie die Primärschlüsseleinstellungen für die Kurstabelle wie unten gezeigt konfigurieren: Screenshot der Kurstabelle im Tabellen-Designer mit den Einstellungen für Primärschlüssel.

    • Kredittabelle

      Screenshot der Kredittabelle im Tabellen-Designer.

      Stellen Sie sicher, dass Sie die Fremdschlüsseleinstellungen für die Kredittabelle wie unten gezeigt konfigurieren: Screenshot der Kredittabelle im Tabellen-Designer mit Fremdschlüsseleinstellungen.

      Stellen Sie sicher, dass Sie die Einstellungen für die Einschränkungsprüfung für die Kredittabelle wie unten gezeigt konfigurieren: Screenshot der Kredittabelle im Tabellen-Designer mit den Einstellungen für die Check-Einschränkung.

    Wenn Sie T-SQL zum Erstellen der vier neuen Tabellen verwenden möchten, finden Sie hier das T-SQL-Objekt, das in einem neuen Abfragefenster ausgeführt werden soll.

    -- Create Person table
    CREATE TABLE Person
    (
        PersonId INT IDENTITY PRIMARY KEY,
        FirstName NVARCHAR (128) NOT NULL,
        MiddleInitial NVARCHAR (10),
        LastName NVARCHAR (128) NOT NULL,
        DateOfBirth DATE NOT NULL
    );
    
    -- Create Student table
    CREATE TABLE Student
    (
        StudentId INT IDENTITY PRIMARY KEY,
        PersonId INT FOREIGN KEY REFERENCES Person (PersonId),
        Email NVARCHAR (256)
    );
    
    -- Create Course table
    CREATE TABLE Course
    (
        CourseId INT IDENTITY PRIMARY KEY,
        Name NVARCHAR (50) NOT NULL,
        Teacher NVARCHAR (256) NOT NULL
    );
    
    -- Create Credit table
    CREATE TABLE Credit
    (
        StudentId INT FOREIGN KEY REFERENCES Student (StudentId),
        CourseId INT FOREIGN KEY REFERENCES Course (CourseId),
        Grade DECIMAL (5, 2) CHECK (Grade <= 100.00),
        Attempt TINYINT,
        CONSTRAINT [UQ_studentgrades] UNIQUE CLUSTERED (StudentId, CourseId, Grade, Attempt)
    );
    
  3. Erweitern Sie im Objekt-Explorer unter yourDatabase den Knoten Tabellen, um die vier neuen von Ihnen erstellten Tabellen anzuzeigen.

    Screenshot der erstellten Tabellen in ADS.

Daten in die Tabellen laden

  1. Erstellen Sie in Ihrem Ordner Downloads einen Ordner namens sampleData, in dem die Beispieldaten für Ihre Datenbank gespeichert werden. Beispiel: c:\Users\<your user name>\Downloads.

  2. Klicken Sie mit der rechten Maustaste auf die folgenden Links, und speichern Sie sie im Ordner sampleData.

  3. Öffnen Sie ein neues Windows-Eingabeaufforderungsfenster, und navigieren Sie zum Ordner sampleData. Beispiel: cd c:\Users\<your user name>\Downloads.

  4. Führen Sie die folgenden bcp-Befehle aus, um Beispieldaten in die Tabellen einzufügen. Ersetzen Sie dabei die Werte für server, database, user und password durch die Werte für Ihre Umgebung.

    bcp Course in SampleCourseData -S <server>.database.windows.net -d <database> -U <user> -P <password> -q -c -t ","
    bcp Person in SamplePersonData -S <server>.database.windows.net -d <database> -U <user> -P <password> -q -c -t ","
    bcp Student in SampleStudentData -S <server>.database.windows.net -d <database> -U <user> -P <password> -q -c -t ","
    bcp Credit in SampleCreditData -S <server>.database.windows.net -d <database> -U <user> -P <password> -q -c -t ","
    

Sie haben jetzt Beispieldaten in die Tabellen geladen, die Sie zuvor erstellt haben.

Abfragedaten

Führen Sie die folgenden T-SQL-Abfragen aus, um Informationen aus den Datenbanktabellen abzurufen.

In dieser ersten Abfrage werden alle vier Tabellen verknüpft, um alle Kursteilnehmer zu finden, die von „Dominick Pope“ unterrichtet werden und ein Ergebnis (Grade) haben, das über 75 Prozent liegt. Führen Sie in einem Abfragefenster die folgende T-SQL-Abfrage aus:

-- Find the students taught by Dominick Pope who have a grade higher than 75%
SELECT person.FirstName,
       person.LastName,
       course.Name,
       credit.Grade
FROM Person AS person
     INNER JOIN Student AS student
         ON person.PersonId = student.PersonId
     INNER JOIN Credit AS credit
         ON student.StudentId = credit.StudentId
     INNER JOIN Course AS course
         ON credit.CourseId = course.courseId
WHERE course.Teacher = 'Dominick Pope'
      AND Grade > 75;

In dieser zweiten Abfrage werden alle vier Tabellen verknüpft und die Lehrveranstaltungen gesucht, für die „Noe Coleman“ jemals eingeschrieben war. Führen Sie in einem Abfragefenster die folgende T-SQL-Abfrage aus:

-- Find all the courses in which Noe Coleman has ever enrolled
SELECT course.Name,
       course.Teacher,
       credit.Grade
FROM Course AS course
     INNER JOIN Credit AS credit
         ON credit.CourseId = course.CourseId
     INNER JOIN Student AS student
         ON student.StudentId = credit.StudentId
     INNER JOIN Person AS person
         ON person.PersonId = student.PersonId
WHERE person.FirstName = 'Noe'
      AND person.LastName = 'Coleman';

Tipp

Um mehr über das Schreiben von SQL-Abfragen zu erfahren, rufen Sie das Tutorial zum Schreiben von T-SQL-Anweisungen auf.