Samouczek: projektowanie relacyjnej bazy danych w usłudze Azure SQL Database

Dotyczy:Azure SQL Database

Azure SQL Database to relacyjna baza danych jako usługa (DBaaS) na platformie Microsoft Azure. Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Łączenie z bazą danych
  • Tworzenie tabel za pomocą poleceń języka T-SQL
  • Ładowanie zbiorcze danych za pomocą narzędzia BCP
  • Wykonywanie zapytań dotyczących danych za pomocą poleceń języka T-SQL

Uwaga

Na potrzeby tego samouczka używamy usługi Azure SQL Database. Można również użyć bazy danych w puli elastycznej lub wystąpienia zarządzanego SQL. Aby uzyskać informacje na temat łączności z usługą SQL Managed Instance, zobacz następujące przewodniki Szybki start: Konfigurowanie maszyny wirtualnej platformy Azure w celu nawiązania połączenia z usługą Azure SQL Managed Instance i Szybki start: Konfigurowanie połączenia punkt-lokacja z usługą Azure SQL Managed Instance ze środowiska lokalnego.

Wymagania wstępne

Zaloguj się do witryny Azure Portal.

Zaloguj się w witrynie Azure Portal.

Tworzenie reguły zapory bazującej na adresach IP na poziomie serwera

Usługa Azure SQL Database tworzy zaporę adresów IP na poziomie serwera. Ta zapora uniemożliwia zewnętrznym aplikacjom i narzędziom łączenie się z serwerem i wszelkimi bazami danych na tym serwerze, chyba że reguła zapory zezwala na przechodzenie ruchu z ich adresów IP przez zaporę. Aby włączyć łączność zewnętrzną z bazą danych, musisz najpierw dodać regułę zapory ip dla adresu IP (lub zakresu adresów IP). Wykonaj następujące kroki, aby utworzyć regułę zapory adresów IP na poziomie serwera.

Ważne

Usługa Azure SQL Database komunikuje się przez port 1433. Jeśli próbujesz nawiązać połączenie z tą usługą z sieci firmowej, ruch wychodzący na porcie 1433 może być blokowany przez zaporę sieciową. Jeśli tak, nie możesz nawiązać połączenia z bazą danych, chyba że administrator otworzy port 1433.

  1. Po zakończeniu wdrażania wybierz pozycję Bazy danych SQL z menu witryny Azure Portal lub wyszukaj i wybierz pozycję Bazy danych SQL na dowolnej stronie.

  2. Wybierz bazę danych Nastronie Bazy danych SQL. Zostanie otwarta strona przeglądu bazy danych zawierająca w pełni kwalifikowaną nazwę serwera (na przykład contosodatabaseserver01.database.windows.net) i opcje dalszej konfiguracji.

    Screenshot of the Azure portal, database overview page with the server name highlighted.

  3. Skopiuj tę w pełni kwalifikowaną nazwę serwera w celu nawiązania połączenia z serwerem i bazami danych w programie SQL Server Management Studio.

  4. Wybierz pozycję Sieć w obszarze Ustawienia. Wybierz kartę Dostęp publiczny, a następnie wybierz pozycję Wybrane sieci w obszarze Dostęp do sieci publicznej, aby wyświetlić sekcję Reguły zapory.

    Screenshot of the Azure portal, networking page, showing where to set the server-level IP firewall rule.

  5. Wybierz pozycję Dodaj adres IPv4 klienta na pasku narzędzi, aby dodać bieżący adres IP do nowej reguły zapory adresów IP. Reguła zapory bazująca na adresach IP może otworzyć port 1433 dla pojedynczego adresu IP lub zakresu adresów IP.

  6. Wybierz pozycję Zapisz. Reguła zapory adresów IP na poziomie serwera jest tworzona dla bieżącego adresu IP otwierającego port 1433 na serwerze.

  7. Wybierz przycisk OK, a następnie zamknij stronę Ustawienia zapory.

Adres IP może teraz być przekazywany przez zaporę IP. Teraz możesz nawiązać połączenie z bazą danych przy użyciu programu SQL Server Management Studio lub innego wybranego narzędzia. Używaj wcześniej utworzonego konta administratora serwera.

Ważne

Domyślnie dostęp przez zaporę IP usługi SQL Database jest włączony dla wszystkich usług platformy Azure. Wybierz przycisk WYŁ. na tej stronie, aby wyłączyć tę opcję dla wszystkich usług platformy Azure.

Łączenie z bazą danych

Bazy danych Azure SQL Database istnieją wewnątrz logicznych serwerów SQL. Może nawiązać połączenie z serwerem logicznym SQL master przy użyciu identyfikatora logowania, a następnie nawiązać połączenie z bazą danych. Możesz też połączyć się bezpośrednio z bazą danych Azure SQL Database przy użyciu zawartego użytkownika.

Użyj programu SQL Server Management Studio , aby nawiązać połączenie z bazą danych Azure SQL Database.

  1. Otwórz program SQL Server Management Studio.

  2. W oknie dialogowym Połączenie do serwera wprowadź następujące informacje. Pozostaw inne opcje jako domyślne.

    Ustawienie Sugerowana wartość Opis
    Typ serwera Aparat bazy danych Wartość ta jest wymagana.
    Nazwa serwera W pełni kwalifikowana nazwa serwera logicznego usługi Azure SQL Database Na przykład your_logical_azure_sql_server.database.windows.net.
    Authentication Uwierzytelnianie programu SQL Server Użyj uwierzytelniania programu SQL Server, aby wprowadzić nazwę użytkownika i hasło.
    Uwierzytelnianie Microsoft Entra Aby nawiązać połączenie przy użyciu identyfikatora Entra firmy Microsoft, jeśli jesteś administratorem serwera Entra firmy Microsoft, wybierz pozycję Microsoft Entra MFA. Więcej informacji można znaleźć w temacie Konfigurowanie uwierzytelniania usługi Microsoft Entra i zarządzanie nim za pomocą usługi Azure SQL.
    Logowanie Konto administratora serwera Jeśli używasz uwierzytelniania programu SQL Server, konto określone podczas tworzenia serwera.
    Hasło Hasło konta administratora serwera Jeśli używasz uwierzytelniania programu SQL Server, hasło określone podczas tworzenia serwera.

    Screenshot of the connect to an Azure SQL Database logical server server dialog box in SQL Server Management Studio (SSMS).

  3. Wybierz pozycję Opcje w oknie dialogowym Połączenie do serwera. W sekcji Nawiązywanie połączenia z bazą danych wprowadź ciąg yourDatabase, aby nawiązać połączenie z tą bazą danych.

    Screenshot of the options tab of the connect to server dialog box in SQL Server Management Studio (SSMS).

  4. Wybierz pozycję Połącz. W programie SSMS zostanie otwarte okno Eksplorator obiektów.

  5. W Eksploratorze obiektów rozwiń pozycję Bazy danych, a następnie rozwiń pozycję yourDatabase, aby wyświetlić obiekty w przykładowej bazie danych.

    Screenshot of SQL Server Management Studio (SSMS) showing database objects in object explorer.

  6. W Eksploratorze obiektów kliknij prawym przyciskiem myszy pozycję yourDatabase i wybierz pozycję Nowe zapytanie. Zostanie otwarte puste okno zapytania, które jest połączone z Twoją bazą danych.

Tworzenie tabel w bazie danych

Utwórz cztery tabele, które modeluje system zarządzania studentami dla uniwersytetów przy użyciu języka Transact-SQL:

  • Person
  • Course
  • Student
  • Credit

Na poniższym diagramie przedstawiono, jak te tabele są ze sobą powiązane. Niektóre z tych tabel odwołują się do kolumn w innych tabelach. Na przykład Student tabela odwołuje się do PersonId kolumny Person tabeli. Zapoznaj się z tym diagramem, aby zrozumieć, jak tabele w tym samouczku są ze sobą powiązane. Aby uzyskać szczegółowe informacje na temat tworzenia efektywnych znormalizowanych tabel baz danych, zobacz Projektowanie znormalizowanej bazy danych. Aby uzyskać informacje dotyczące wybierania typów danych, zobacz Typy danych. Domyślnie tabele są tworzone w schemacie domyślnym dbo , co oznacza, że na przykład dwuczęściowa nazwa tabeli to dbo.Person, na przykład .

Uwaga

W celu tworzenia i projektowania tabel można również użyć projektanta tabel w programie SQL Server Management Studio.

Screenshot of the table designer in SQL Server Management Studio (SSMS) showing the table relationships.

  1. W oknie zapytania wykonaj następujące zapytanie T-SQL, aby utworzyć cztery tabele w bazie danych:

    -- Create Person table
    CREATE TABLE Person
    (
        PersonId INT IDENTITY PRIMARY KEY,
        FirstName NVARCHAR(128) NOT NULL,
        MiddelInitial NVARCHAR(10),
        LastName NVARCHAR(128) NOT NULL,
        DateOfBirth DATE NOT NULL
    )
    
    -- Create Student table
    CREATE TABLE Student
    (
        StudentId INT IDENTITY PRIMARY KEY,
        PersonId INT 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 REFERENCES Student (StudentId),
        CourseId INT REFERENCES Course (CourseId),
        Grade DECIMAL(5,2) CHECK (Grade <= 100.00),
        Attempt TINYINT,
        CONSTRAINT [UQ_studentgrades] UNIQUE CLUSTERED
        (
            StudentId, CourseId, Grade, Attempt
        )
    )
    

    Screenshot from SSMS showing the create tables script has been successfully executed.

  2. Rozwiń węzeł Tabele w obszarze yourDatabase w Eksplorator obiektów, aby wyświetlić cztery utworzone nowe tabele.

Ładowanie danych do tabel

  1. Utwórz folder o nazwie sampleData w lokalnym folderze pobranej stacji roboczej, aby przechowywać przykładowe dane dla bazy danych. Na przykład c:\Users\<your user name>\Downloads.

  2. Kliknij prawym przyciskiem myszy poniższe linki i zapisz je w folderze sampleData.

  3. Otwórz nowe okno wiersza polecenia systemu Windows i przejdź do folderu sampleData . Na przykład cd c:\Users\<your user name>\Downloads.

  4. Wykonaj następujące bcp polecenia, aby wstawić przykładowe dane do tabel, zastępując wartości serwera, bazy danych, użytkownika i hasła wartościami środowiska.

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

Przykładowe dane zostaną załadowane do utworzonych wcześniej tabel.

Zapytania o dane

Wykonaj następujące zapytania T-SQL, aby pobrać informacje z tabel bazy danych.

To pierwsze zapytanie łączy wszystkie cztery tabele, aby znaleźć uczniów nauczanych przez "Dominick Pope", którzy mają ocenę wyższą niż 75%. W oknie zapytania wykonaj następujące zapytanie T-SQL:

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

To zapytanie łączy wszystkie cztery tabele i znajduje kursy, w których kiedykolwiek zarejestrowano "Noe Coleman". W oknie zapytania wykonaj następujące zapytanie T-SQL:

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

Napiwek

Aby dowiedzieć się więcej na temat pisania zapytań SQL, odwiedź stronę Samouczek: pisanie instrukcji języka Transact-SQL.

Napiwek

Chcesz rozpocząć tworzenie aplikacji platformy .NET? W tym bezpłatnym module Learn pokazano, jak opracowywać i konfigurować aplikację ASP.NET, która wysyła zapytania do usługi Azure SQL Database, w tym tworzenie prostej bazy danych.

Następny krok

Przejdź do następnego samouczka, aby dowiedzieć się, jak projektować bazy danych przy użyciu programu Visual Studio i języka C#.