Delen via


Zelfstudie: Een relationele database ontwerpen in Azure SQL Database met behulp van Visual Studio Code

Van toepassing op:Azure SQL Database

Azure SQL Database is een relationele database-as-a-service (DBaaS) in de Microsoft Cloud (Azure). In deze zelfstudie leert u hoe u Azure Portal en de MSSQL-extensie voor Visual Studio Code gebruikt om:

  • Verbinding maken met de database met Visual Studio Code
  • Tabellen maken met Visual Studio Code
  • Gegevens bulksgewijs laden met BCP
  • Query's uitvoeren op gegevens met Visual Studio Code

Opmerking

Voor deze zelfstudie gebruiken we Azure SQL Database. U kunt ook een pooldatabase gebruiken in een elastische pool of een met SQL beheerd exemplaar. Zie de volgende quickstarts voor SQL Managed Instance: Quickstart: Een Virtuele Azure-machine configureren om verbinding te maken met Azure SQL Managed Instance en quickstart: Een punt-naar-site-verbinding met Azure SQL Managed Instance configureren vanuit on-premises.

Vereiste voorwaarden

Als u deze zelfstudie wilt voltooien, controleert u of u het volgende hebt geïnstalleerd:

Meld u aan bij het Azure Portal

Meld u aan bij het Azure-portaal.

Een IP-firewallregel op serverniveau maken

Azure SQL Database maakt een IP-firewall op serverniveau. Deze firewall voorkomt dat externe toepassingen en hulpprogramma's verbinding maken met de server en databases op de server, tenzij een firewallregel het IP-adres via de firewall toestaat. Als u externe connectiviteit met uw database wilt inschakelen, moet u eerst een IP-firewallregel toevoegen voor uw IP-adres (of IP-adresbereik). Volg deze stappen om een IP-firewallregel op serverniveau te maken.

Belangrijk

Azure SQL Database communiceert via poort 1433. Als u verbinding probeert te maken met deze service vanuit een bedrijfsnetwerk, is uitgaand verkeer via poort 1433 mogelijk niet toegestaan door de firewall van uw netwerk. Zo ja, dan kunt u geen verbinding maken met uw database, tenzij uw beheerder poort 1433 opent.

  1. Nadat de implementatie is voltooid, selecteert u SQL-databases in het menu van Azure Portal of zoekt en selecteert u SQL-databases op een willekeurige pagina.

  2. Selecteer yourDatabase op de pagina SQL-databases. De overzichtspagina voor uw database wordt geopend, met de volledig gekwalificeerde servernaam (zoals contosodatabaseserver01.database.windows.net) en opties voor verdere configuratie.

    Schermopname van de azure-portal, de overzichtspagina van de database met de servernaam gemarkeerd.

  3. Kopieer deze volledig gekwalificeerde servernaam voor gebruik om verbinding te maken met uw server en databases vanuit SQL Server Management Studio.

  4. Selecteer Netwerken onder Instellingen. Kies het tabblad Openbare toegang en selecteer vervolgens Geselecteerde netwerken onder Openbare netwerktoegang om de sectie Firewallregels weer te geven.

    Schermopname van azure Portal, netwerkpagina, waarin wordt weergegeven waar de IP-firewallregel op serverniveau moet worden ingesteld.

  5. Selecteer Voeg je client-IPv4 toe op de werkbalk om uw huidige IP-adres toe te voegen aan een nieuwe IP-firewallregel. Een IP-firewallregel kan poort 1433 openen voor één IP-adres of een bereik van IP-adressen.

  6. Selecteer Opslaan. Er wordt een IP-firewallregel op serverniveau gemaakt voor uw huidige IP-adres dat poort 1433 op de server opent.

  7. Selecteer OK- en sluit vervolgens de pagina firewallinstellingen.

Uw IP-adres kan nu via de IP-firewall worden doorgegeven. U kunt nu verbinding maken met uw database met behulp van SQL Server Management Studio of een ander hulpprogramma van uw keuze. Zorg ervoor dat u het serverbeheerdersaccount gebruikt dat u eerder hebt gemaakt.

Belangrijk

Toegang via de IP-firewall van SQL Database is standaard ingeschakeld voor alle Azure-services. Selecteer UIT op deze pagina om uit te schakelen voor alle Azure-services.

Verbinding maken met de database

Gebruik de MSSQL-extensie voor Visual Studio Code om verbinding te maken met uw database.

  1. Open Visual Studio Code.

  2. Voer in de Nieuwe Verbinding van de Objectverkenner een nieuwe verbinding aan te maken en voer de volgende gegevens in. Laat andere opties standaard staan.

    Configuratie Voorgestelde waarde Description
    Verbindingstype Microsoft SQL Server Deze waarde is vereist.
    servernaam De volledig gekwalificeerde naam van de logische Azure SQL Database-server Bijvoorbeeld: your_logical_azure_sql_server.database.windows.net.
    Authenticatietype SQL Server-verificatie Gebruik SQL Server-verificatie om een gebruikersnaam en wachtwoord in te voeren.
    Microsoft Entra-authenticatie Als u verbinding wilt maken met behulp van Microsoft Entra ID, kiest u Microsoft Entra ID - Universeel met MFA-ondersteuning als u de Microsoft Entra-serverbeheerder bent. Zie Microsoft Entra-verificatie configureren en beheren met Azure SQLvoor meer informatie.
    Inloggen Het beheerdersaccount van de server Het account dat u hebt opgegeven tijdens het maken van de server.
    wachtwoord Het wachtwoord voor uw serverbeheerdersaccount Het wachtwoord dat u hebt opgegeven bij het maken van de server.

    Schermopname van het dialoogvenster Verbinding in ADS.

  3. Selecteer Maak verbinding met. Het venster Objectverkenner wordt geopend in ADS.

  4. Vouw in ObjectverkennerDatabases uit en vouw vervolgens yourDatabase uit om de objecten in de voorbeelddatabase weer te geven.

  5. Klik in Objectverkennermet de rechtermuisknop op jouwDatabase en selecteer Nieuwe query. Er wordt een leeg queryvenster geopend dat is verbonden met uw database.

Tabellen maken in uw database

Maak een databaseschema met vier tabellen die een studentbeheersysteem modelleren voor universiteiten met behulp van Table Designer:

  • Person
  • Course
  • Student
  • Credit

In het volgende diagram ziet u hoe deze tabellen aan elkaar zijn gerelateerd. Sommige van deze tabellen verwijzen naar kolommen in andere tabellen. De Student tabel verwijst bijvoorbeeld naar de kolom PersonId van de Person tabel. Bekijk het diagram om te begrijpen hoe de tabellen in deze zelfstudie zijn gerelateerd aan elkaar. Zie Een genormaliseerde database ontwerpenvoor een uitgebreid overzicht van het maken van effectieve genormaliseerde databasetabellen. Zie Gegevenstypenvoor meer informatie over het kiezen van gegevenstypen. Standaard worden tabellen gemaakt in het standaardschema dbo, wat betekent dat de tweedelige naam van een tabel bijvoorbeeld wordt dbo.Person.

Schermopname van tabelrelaties.

  1. Selecteer in ObjectverkenneruwDatabase , waarmee de vervolgkeuzelijst van alle processen die in deze database zijn opgeslagen, wordt uitgebreid, klikt u met de rechtermuisknop op de map Tabellen en selecteert u Nieuwe tabel. Er wordt een lege ontwerpfunctie voor tabellen geopend die is verbonden met uw database.

  2. Gebruik de interface Table Designer om deze vier tabellen in uw database te maken. Zie Table Designer voor meer informatie over het maken van tabellen met de ontwerpfunctie voor tabellen:

    • Persoonstabel

      Schermopname van de Person Table in de Table Designer.

      Zorg ervoor dat u de instellingen voor de primaire sleutel voor de persoonstabel configureert, zoals hieronder wordt weergegeven:

      Schermopname van de tabel Person in Table Designer met de instellingen voor de primaire sleutel.

    • Studententabel

      Schermopname van de tabel Student in Table Designer.

      Zorg ervoor dat u de instellingen voor de primaire sleutel voor de studenttabel configureert, zoals hieronder wordt weergegeven: Schermopname van de tabel Student in Tabelontwerper met instellingen voor primaire sleutel.

      Zorg ervoor dat u de instellingen voor refererende sleutel voor de studententabel configureert, zoals hieronder wordt weergegeven: Schermopname van de tabel Student in Tabelontwerper met de instellingen voor refererende sleutels.

    • Cursustabel

      Schermopname van Cursustabel in Tabelontwerper.

      Zorg ervoor dat u de instellingen voor de primaire sleutel voor de cursustabel configureert, zoals hieronder wordt weergegeven: Schermopname van de tabel Cursus in Tabelontwerper met instellingen voor primaire sleutel.

    • Tegoedtabel

      Screenshot van Krediettabel in Table Designer.

      Zorg ervoor dat u de instellingen voor refererende sleutel voor de credittabel configureert, zoals hieronder wordt weergegeven: Schermopname van credittabel in Tabelontwerper met instellingen voor refererende sleutel.

      Zorg ervoor dat u de instellingen voor de Check Constraint voor de krediettabel configureert, zoals hieronder wordt weergegeven: Schermopname van de krediettabel in de Tabelontwerper met de Check Constraint-instellingen.

    Als u liever T-SQL gebruikt om de vier nieuwe tabellen te maken, gaat u als volgt te werk om T-SQL uit te voeren in een nieuw queryvenster.

    -- 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. Vouw het knooppunt Tabellen uit onder yourDatabase- in de Objectverkenner om de vier nieuwe tabellen te zien die u hebt gemaakt.

    Schermopname van gemaakte tabellen in ADS.

Gegevens in de tabellen laden

  1. Maak een map met de naam sampleData op uw lokale werkstation Download map om voorbeeldgegevens voor uw database op te slaan. Bijvoorbeeld: c:\Users\<your user name>\Downloads.

  2. Klik met de rechtermuisknop op de volgende koppelingen en sla deze op in de map sampleData.

  3. Open een nieuw Windows-opdrachtpromptvenster en navigeer naar de map sampleData. Bijvoorbeeld: cd c:\Users\<your user name>\Downloads.

  4. Voer de volgende bcp opdrachten uit om voorbeeldgegevens in te voegen in de tabellen, waarbij de waarden voor server, database, gebruikeren wachtwoord worden vervangen door de waarden voor uw omgeving.

    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 ","
    

U hebt nu voorbeeldgegevens geladen in de tabellen die u eerder hebt gemaakt.

Gegevens opvragen

Voer de volgende T-SQL-query's uit om informatie op te halen uit de databasetabellen.

Met deze eerste query worden alle vier de tabellen samengevoegd om de studenten te vinden die zijn geleerd door 'Dominick Pope' die een cijfer hoger dan 75%hebben. Voer in een queryvenster de volgende T-SQL-query uit:

-- 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;

Met deze query worden alle vier de tabellen samengevoegd en worden de cursussen gevonden waarin Noe Coleman ooit is ingeschreven. Voer in een queryvenster de volgende T-SQL-query uit:

-- 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';

Aanbeveling

Ga naar Zelfstudie: instructies voor het schrijven van Transact-SQL statementsvoor meer informatie over het schrijven van SQL-query's.