Esercitazione: Progettare un database relazionale nel database SQL di Azure
Si applica a: Database SQL di Azure
Il database SQL di Azure è un database relazionale distribuito come servizio (DBaaS) in Microsoft Azure. In questa esercitazione apprenderai a:
- Stabilire la connessione al database
- Creare tabelle con i comandi T-SQL
- Eseguire il caricamento bulk dei dati con BCP
- Eseguire query sui dati con i comandi di T-SQL
Nota
Per le finalità di questa esercitazione viene usato il database SQL di Azure. È anche possibile usare un database in un pool elastico o un'istanza gestita di SQL. Per la connettività a un’istanza gestita di SQL, consultare i seguenti avvii rapidi per l’istanza gestita di SQL: Avvio rapido: configurare una VM di Azure per connettersi a un’istanza gestita di SQL di Azure e Avvio rapido: configurare una connessione da punto a sito a un’istanza gestita di SQL di Azure da locale.
Prerequisiti
- Usare SQL Server Management Studio (ultima versione) o il portale di Azure Editor di query per database SQL di Azure.
- È anche possibile seguire la stessa esercitazione usando Azure Data Studio (ADS).
- BCP e SQLCMD (ultima versione).
- Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
- Se non è già stato creato un database SQL di Azure, consultare Avvio rapido: creare un database singolo. Cercare l'opzione per usare l'offerta per provare il database SQL di Azure in modo gratuito (anteprima).
Accedere al portale di Azure
Accedere al portale di Azure.
Creare una regola del firewall IP a livello di server
Database SQL di Azure crea un firewall IP a livello di server. Questo impedisce alle applicazioni e agli strumenti esterni di connettersi al server e ai database nel server a meno che una regola del firewall non consenta allo specifico indirizzo IP di superare il firewall. Per abilitare la connettività esterna al database, è prima di tutto necessario aggiungere una regola del firewall IP per l'indirizzo IP o l'intervallo di indirizzi IP. Per creare una regola del firewall IP a livello di server, seguire questa procedura.
Importante
Il database SQL di Azure comunica sulla porta 1433. Se si intende connettersi al servizio da una rete aziendale, il firewall della rete potrebbe non consentire il traffico in uscita sulla porta 1433. In questo caso, non è possibile connettersi al database a meno che l'amministratore non apra la porta 1433.
Al termine della distribuzione, selezionare database SQL dal menu del portale di Azure oppure cercare e selezionare database SQL da qualsiasi pagina.
Selezionare yourDatabase nella pagina database SQL. Verrà visualizzata la pagina di panoramica del database, che mostra il nome completo del server, ad esempio
contosodatabaseserver01.database.windows.net
, e offre altre opzioni per la configurazione.Copiare il nome completo del server per usarlo per la connessione al server e ai database da SQL Server Management Studio.
Selezionare Rete in IMPOSTAZIONI. Scegliere la scheda Accesso pubblico e quindi selezionare Reti selezionate in Accesso alla rete pubblica per mostrare la sezione Regole del firewall.
Selezionare Aggiungi IPv4 client sulla barra degli strumenti per aggiungere l'indirizzo IP corrente a una nuova regola del firewall IP. Una regola del firewall per gli indirizzi IP può aprire la porta 1433 per un singolo indirizzo IP o un intervallo di indirizzi IP.
Seleziona Salva. Viene creata una regola del firewall IP a livello di server per l'indirizzo IP corrente, che apre la porta 1433 nel server.
Selezionare OK e quindi chiudere la pagina Impostazioni del firewall.
L'indirizzo IP può ora superare il firewall per gli indirizzi IP. È quindi possibile connettersi al database usando SQL Server Management Studio o un altro strumento di propria scelta. Assicurarsi di usare l'account amministratore del server creato in precedenza.
Importante
Per impostazione predefinita, l'accesso attraverso il firewall per gli indirizzi IP di Database SQL è abilitato per tutti i servizi di Azure. Selezionare NO in questa pagina per disabilitare tutti i servizi di Azure.
Stabilire la connessione al database
I database SQL di Azure sono presenti all'interno di SQL Server logici. È possibile connettersi al server SQL logico master
usando un account di accesso, quindi connettersi al database. In alternativa, è possibile connettersi direttamente al database SQL di Azure usando un utente indipendente.
Usare SQL Server Management Studio per connettersi al database SQL di Azure.
Aprire SQL Server Management Studio.
Immettere le informazioni seguenti nella finestra di dialogo Connetti al server. Lasciare tutte le altre opzioni come impostazione predefinita.
Impostazione Valore suggerito Descrizione Tipo di server Motore di database Questo valore è obbligatorio. Nome server Nome completo del server logico del database SQL di Azure Ad esempio: your_logical_azure_sql_server.database.windows.net
.Autenticazione Autenticazione di SQL Server Usare l'autenticazione di SQL Server per immettere nome utente e password. Autenticazione Microsoft Entra Se si è l’amministratore del server Microsoft Entra, scegliere Microsoft Entra Assistente cartelle gestite per collegarsi usando Microsoft Entra ID. Per altre informazioni, vedere Configurare e gestire l'autenticazione di Microsoft Entra con Azure SQL. Accesso Account amministratore del server Se si usa l'autenticazione di SQL Server, usare l'account specificato durante la creazione del server. Password Password per l'account amministratore del server Se si usa l'autenticazione di SQL Server, usare la password specificata durante la creazione del server. Selezionare Opzioni nella finestra di dialogo Connetti al server. Nella sezione Connetti al database immettere yourDatabase per connettersi a tale database.
Selezionare Connetti. In SSMS verrà visualizzata la finestra Esplora oggetti.
In Esplora oggetti espandere Database e quindi yourDatabase per visualizzare gli oggetti presenti nel database di esempio.
In Esplora oggetti fare clic con il pulsante destro del mouse su yourDatabase e scegliere Nuova query. Viene visualizzata una finestra di query vuota, connessa al database.
Creare tabelle nel database
Creare tabelle che modellano un sistema sistema di gestione degli studenti per le università usando Transact-SQL:
Person
Course
Student
Credit
Nel diagramma seguente viene illustrato come queste tabelle sono correlate tra loro. Alcune di queste tabelle fanno riferimento a delle colonne in altre tabelle. Per esempio, la tabella Student
fa riferimento alla colonna PersonId
della tabella Person
. Studiare il diagramma per comprendere come sono correlate tra loro le tabelle in questa esercitazione. Per informazioni approfondite su come fare a creare tabelle di database normalizzate efficaci, consultare Progettazione di un database normalizzato. Per informazioni sulla scelta dei tipi di dati, vedere Tipi di dati. Per impostazione predefinita, le tabelle vengono create nello schema dbo
, il che significa che il nome a due parti di una tabella sarà, ad esempio, dbo.Person
.
Nota
È anche possibile usare la Progettazione delle tabelle in SQL Server Management Studio per creare e progettare le tabelle.
Nell'intervallo di query, eseguire la query T-SQL seguente per creare quattro tabelle nel database:
-- 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 ) )
In Esplora oggetti, espandere il nodo Tabelle sotto la voce yourDatabase per visualizzare le quattro nuove tabelle create.
Caricare i dati nelle tabelle
Creare una cartella chiamata sampleData nella cartella Download della workstation locale per archiviare dati campione per il database. Ad esempio:
c:\Users\<your user name>\Downloads
.Fare clic con il pulsante destro del mouse sui collegamenti seguenti e salvare i dati nella cartella sampleData.
Aprire una nuova finestra del prompt dei comandi Windows e spostarsi nella cartella sampleData. Ad esempio:
cd c:\Users\<your user name>\Downloads
.Eseguire i seguenti comandi
bcp
per inserire i dati campione nelle tabelle, sostituendo i valori per server, database, utenti e password con i valori dell'ambiente in uso.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 ","
A questo punto, sono stati caricati i dati di esempio nelle tabelle create in precedenza.
Eseguire query sui dati
Eseguire le query T-SQL seguenti per riprendere le informazioni dalle tabelle del database.
La prima query crea un join di tutte le quattro tabelle per trovare tutti gli studenti che hanno "Dominick Pope" come insegnante e un voto superiore al 75%. In una intervallo di query, eseguire la query T-SQL di seguito:
-- 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;
questa query crea un join di tutte le quattro tabelle e trova i corsi a cui è stato iscritto "Noe Coleman". In una intervallo di query, eseguire la query T-SQL di seguito:
-- 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';
Suggerimento
Per altre informazioni sulla scrittura di query SQL, consultare Esercitazione: Scrivere istruzioni Transact-SQL.
Contenuto correlato
- Esercitazione: Progettare un database relazionale nel database SQL di Azure usando Azure Data Studio (ADS)
- Provare il database SQL di Azure in modo gratuito (anteprima)
- Novità del database SQL di Azure
- Configurare e gestire i riferimenti al contenuto: database SQL di Azure
- Pianificare e gestire i costi per il database SQL di Azure
Suggerimento
È tutto pronto per iniziare a sviluppare un'applicazione .NET? Questo modulo di apprendimento gratuito mostra come fare a Sviluppare e configurare un'applicazione ASP.NET che esegue query su un database SQL di Azure, inclusa la creazione di un database semplice.
Passaggio successivo
Per informazioni sulla progettazione di un database con Visual Studio e C#, passare all'esercitazione successiva.