Udostępnij przez


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 puli elastycznej lub SQL Managed Instance. 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-witryna 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 przez port 1433 może nie być dozwolony przez zaporę sieci. 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 yourDatabase na stronie baz 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.

    Zrzut ekranu przedstawiający stronę przeglądu bazy danych w witrynie Azure Portal z wyróżnioną nazwą serwera.

  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.

    Zrzut ekranu przedstawiający stronę sieciową witryny Azure Portal, na której ma być ustawiona reguła zapory adresów IP na poziomie serwera.

  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 OFF na tej stronie, aby wyłączyć dla wszystkich usług Azure.

Łączenie z bazą danych

Bazy danych Azure SQL Database istnieją wewnątrz logicznych serwerów SQL. Można połączyć się z serwerem logicznym SQL master przy użyciu danych logowania, a następnie połączyć się 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 SQL Server Management Studio.

  2. W oknie dialogowym Łączenie z serwerem wprowadź następujące informacje. Pozostaw inne opcje jako domyślne.

    Setting Sugerowana wartość Description
    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.

    zrzut ekranu okna dialogowego Łączenie z serwerem w programie SQL Server Management Studio (SSMS).

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

    Zrzut ekranu przedstawiający kartę opcji okna dialogowego Nawiązywanie połączenia z serwerem w programie 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.

    Zrzut ekranu programu SQL Server Management Studio (SSMS) przedstawiający obiekty bazy danych w Eksploratorze obiektów.

  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.

Zrzut ekranu przedstawiający projektanta tabel w programie SQL Server Management Studio (SSMS) przedstawiający relacje tabeli.

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

    Zrzut ekranu z programu SSMS pokazujący, że skrypt tworzenia tabel został pomyślnie wykonany.

  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 folderze Pobrane na lokalnej 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 ","
    

Załadowano już przykładowe dane do utworzonych wcześniej tabel.

Zapytaj 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 'Noe Coleman' kiedykolwiek się zapisał. 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';

Wskazówka

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

Następny krok