教學課程:使用 Azure Data Studio (ADS) 在 Azure SQL Database 中設計關聯式資料庫
適用於:Azure SQL 資料庫
Azure SQL Database 是 Microsoft Cloud (Azure) 中的關聯式資料庫即服務 (DBaaS)。 在本教學課程裡,您將了解如何搭配使用 Azure 入口網站和 Azure Data Studio (ADS) 執行下列操作:
- 利用 Azure Data Studio 連線至資料庫
- 利用 Azure Data Studio 建立資料表
- 使用 BCP 大量載入資料
- 利用 Azure Data Studio 查詢資料
注意
基於本教學課程的目的,我們是使用 Azure SQL Database。 您也可以使用彈性集區中的集區資料庫或 SQL 受控執行個體。 如需連線至 SQL 受控執行個體,請參閱這些 SQL 受控執行個體快速入門:快速入門:設定 Azure VM 以連結到 Azure SQL 受控執行個體和快速入門:設定從內部部署連線至 Azure SQL 受控執行個體的點對站連結。
必要條件
若要完成本教學課程,請確定您已安裝︰
- Azure Data Studio (最新版本)
- BCP 和 SQLCMD (最新版本)。
- 如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶。
- 如果您尚未建立 Azure SQL 資料庫,請瀏覽快速入門:建立單一資料庫。 尋找使用優惠免費試用 Azure SQL 資料庫 (預覽版) 的選項。
登入 Azure 入口網站
登入 Azure 入口網站。
建立伺服器層級 IP 防火牆規則
Azure SQL Database 會在伺服器層級建立 IP 防火牆。 此防火牆會防止外部應用程式和工具連線到伺服器及伺服器上的任何資料庫,除非防火牆規則允許其 IP 通過防火牆。 若要啟用對資料庫的外部連結,您必須先新增 IP 位址 (或 IP 位址範圍) 的 IP 防火牆規則新增。 依照下列步驟來建立伺服器層級的 IP 防火牆規則。
重要
Azure SQL Database 會透過連接埠 1433 通訊。 如果您嘗試從公司網路連線到這項服務,您網路的防火牆可能不允許透過連接埠 1433 的輸出流量。 若情況如此,除非系統管理員開啟連接埠 1433,否則您無法連線至您的資料庫。
部署完成後,從 Azure 入口網站的功能表中選取 SQL 資料庫 ,或從任何頁面搜尋並選取 SQL 資料庫。
在 SQL 資料庫 頁面上,選取 您的資料庫。 資料庫的概觀頁面隨即開啟,其中會顯示完整伺服器名稱 (例如
contosodatabaseserver01.database.windows.net
),並提供進一步的組態選項。請複製此完整伺服器名稱,以便從 SQL Server Management Studio 連線到伺服器和資料庫。
在 設定 底下,選取 網路。 選擇 [公用存取] 索引標籤,然後選取 [公用網路存取] 底下的 [指定網路] 以顯示 [防火牆規則] 區段。
選取工具列上的 [新增您的用戶端 IPv4],將目前的 IP 位址新增至新的 IP 防火牆規則。 IP 防火牆規則可以針對單一 IP 位址或 IP 位址範圍開啟連接埠 1433。
選取 儲存。 系統便會為目前的 IP 位址建立伺服器層級 IP 防火牆規則,以便在伺服器上開啟連接埠 1433。
選取 確定 ,然後關閉 防火牆設定 頁面。
您的 IP 位址現在可以通過 IP 防火牆。 您現在可以使用 SQL Server Management Studio 或您選擇的其他工具來連結至您的資料庫。 務必使用先前建立的伺服器管理帳戶。
重要
根據預設,已對所有 Azure 服務啟用透過 SQL Database IP 防火牆存取。 選取此頁面上的 [關閉] 即可對所有 Azure 服務停用。
連接至資料庫
使用 Azure Data Studio 建立對資料庫伺服器的連線。
開啟 Azure Data Studio。
在從物件總管新增連線中建立新的連線,然後輸入下列資訊。 將其他選項保留為預設值。
設定 建議的值 描述 連線類型 Microsoft SQL Server 這是必要的值。 伺服器名稱 完整 Azure SQL Database 邏輯伺服器名稱 例如: your_logical_azure_sql_server.database.windows.net
。驗證類型 SQL Server 驗證 使用您的 SQL Server 驗證輸入使用者名稱和密碼。 Microsoft Entra 驗證 若要使用 Microsoft Entra ID 進行連線,如果您是 Microsoft Entra 伺服器管理員,請選擇 Microsoft Entra ID - 與 MFA 支援通用。 如需詳細資訊,請參閱使用 Azure SQL 設定和管理 Microsoft Entra 驗證。 登入 伺服器系統管理員帳戶 您在建立伺服器時所指定的帳戶。 密碼 伺服器系統管理員帳戶的密碼 這是您在建立伺服器時所指定的密碼。 選取 [連線]。 [物件總管] 視窗隨即在 ADS 中開啟。
在 物件總管中,展開 資料庫 ,然後展開 yourDatabase 以檢視範例資料庫中的物件。
在 物件總管 中,以滑鼠右鍵按一下 yourDatabase,然後選取 新增查詢。 隨即開啟已連結到您資料庫的空白查詢視窗。
在資料庫中建立資料表
使用四個資料表建立資料庫結構描述,其會使用Azure Data Studio 的資料表設計工具建立大學的學生管理系統模型:
Person
Course
Student
Credit
下圖顯示這些資料表是如何彼此相互關聯。 在這當中有部分資料表會參考其他資料表的資料欄。 例如, Student
資料表會參考 PersonId
資料表的 Person
資料行。 研究圖表,以了解在本教學課程中資料表彼此關連的方式。 如需如何建立有效標準化資料庫資料表的深入探討,請參閱設計標準化的資料庫。 如需選擇資料類型的相關資訊,請參閱資料類型 (英文)。 根據預設,資料表會在預設 dbo
結構描述中建立,舉例來說,意味著資料表的兩部分名稱會是 dbo.Person
。
在物件總管中,選取 [yourDatabase] 以展開此資料庫中儲存之所有進程的下拉式功能表,以滑鼠右鍵按一下 [資料表] 資料夾,然後選取 [新增資料表]。 隨即開啟已連線到您資料庫的空白資料表設計工具。
使用資料表設計工具介面,在資料庫中建立這四個資料表。 若要深入瞭解如何使用資料表設計工具建立資料表,請參閱資料表設計工具文件 :
人員資料表
請務必設定人員資料表的主索引鍵設定,如下所示:
學生資料表
課程資料表
信用額度資料表
如果您想要使用 T-SQL 來建立四個新的資料表,以下是在新的查詢視窗中執行的 T-SQL。
-- 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 ) )
在 [物件總管] 中展開 yourDatabase 之下的 Tables 節點,以查看您建立的四個新資料表。
將資料載入到資料表
在本地工作區 [下載] 資料夾中建立一個名為 sampleData 的資料夾,以存放您資料庫的範例資料。 例如:
c:\Users\<your user name>\Downloads
。以滑鼠右鍵按一下下列連結,將其儲存至 sampleData 資料夾。
開啟新的 Windows 命令提示字元視窗,並瀏覽至 sampleData 資料夾。 例如:
cd c:\Users\<your user name>\Downloads
。執行下列
bcp
命令,將範例資料插入資料表中,並以適用於您環境的值取代 server、database、user 和 password 的值。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 ","
您現在已將範例資料載入至先前建立的資料表。
查詢資料
執行下列 T-SQL 查詢,以從資料庫資料表中擷取資訊。
第一個查詢會聯結所有四個資料表,以尋找由「Dominick Pope」授課且成績高於 75% 的學生。 在查詢視窗中,執行下列 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;
此查詢會連結所有四個資料表,以尋找「Noe Coleman」曾註冊的課程。 在查詢視窗中,執行下列 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';
提示
若要進一步了解如何撰寫 SQL 查詢,請瀏覽 教學課程:撰寫 Transact-SQL 陳述式。
相關內容
- 教學課程:在 Azure SQL 資料庫中設計關聯式資料庫
- 免費試用 Azure SQL 資料庫 (預覽版)
- Azure SQL 資料庫的新增功能?
- 設定與管理內容參考 - Azure SQL 資料庫
- 規劃和管理 Azure SQL Database 的成本
提示
準備好開始開發 .NET 應用程式了嗎? 這款免費的 Learn 模組描述如何開發和設定可查詢 Azure SQL Database 的 ASP.NET 應用程式 (包括建立簡易資料庫)。
後續步驟
前進到下一個教學課程,了解如何使用 Visual Studio 和 C# 設計資料庫。