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
- Użyj programu SQL Server Management Studio (najnowsza wersja) lub witryny Azure Portal Edytor Power Query dla usługi Azure SQL Database.
- Możesz również wykonać czynności opisane w tym samym samouczku przy użyciu narzędzia Azure Data Studio (ADS).
- BCP i SQLCMD (najnowsza wersja).
- Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
- Jeśli nie masz jeszcze utworzonej bazy danych Azure SQL Database, odwiedź stronę Szybki start: tworzenie pojedynczej bazy danych. Poszukaj opcji korzystania z oferty, aby wypróbować usługę Azure SQL Database bezpłatnie (wersja zapoznawcza).
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.
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.
Wybierz bazę danych Na stronie 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.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.
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.
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.
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.
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.
Otwórz program SQL Server Management Studio.
W oknie dialogowym Łączenie z serwerem 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. 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.
Wybierz pozycję Połącz. W programie SSMS zostanie otwarte okno Eksplorator obiektów.
W Eksploratorze obiektów rozwiń pozycję Bazy danych, a następnie rozwiń pozycję yourDatabase, aby wyświetlić obiekty w przykładowej bazie danych.
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.
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 ) )
Rozwiń węzeł Tabele w obszarze yourDatabase w Eksplorator obiektów, aby wyświetlić cztery utworzone nowe tabele.
Ładowanie danych do tabel
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
.Kliknij prawym przyciskiem myszy poniższe linki i zapisz je w folderze sampleData.
Otwórz nowe okno wiersza polecenia systemu Windows i przejdź do folderu sampleData . Na przykład
cd c:\Users\<your user name>\Downloads
.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.
Powiązana zawartość
- Samouczek: projektowanie relacyjnej bazy danych w usłudze Azure SQL Database przy użyciu programu Azure Data Studio (ADS)
- Wypróbuj bezpłatnie usługę Azure SQL Database (wersja zapoznawcza)
- Co nowego w usłudze Azure SQL Database?
- Konfigurowanie dokumentacji zawartości i zarządzanie nią — Azure SQL Database
- Planowanie kosztów i zarządzanie nimi dla usługi Azure SQL Database
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#.