Esercizio - Connettersi al database e aggiungere dati di esempio
Prima di connettere il database all'app, è necessario verificare che sia possibile connettersi, aggiungere una tabella di base e lavorare con dati di esempio.
L'infrastruttura, gli aggiornamenti software e le patch per il database SQL di Azure sono gestiti da Microsoft. È possibile gestire il database SQL di Azure come qualsiasi altra installazione di SQL Server. È ad esempio possibile usare Visual Studio, SQL Server Management Studio, Azure Data Studio o altri strumenti per gestire il database SQL di Azure.
È l'utente che deve scegliere come accedere al database e connetterlo all'app. Per acquisire familiarità con il database, è possibile connettersi direttamente al database dal portale, creare una tabella ed eseguire alcune operazioni CRUD di base. Si apprenderanno i concetti seguenti:
- Che cos'è Cloud Shell e come accedervi dal portale.
- Come accedere alle informazioni sul database dall'interfaccia della riga di comando di Azure, incluse le stringhe di connessione.
- Come connettersi al database tramite
sqlcmd
. - Come inizializzare il database con una tabella di base e alcuni dati di esempio.
Che cos'è Azure Cloud Shell?
Azure Cloud Shell è un'esperienza shell basata su browser per gestire e sviluppare risorse di Azure. Cloud Shell può essere paragonato a una console interattiva che viene eseguita nel cloud.
In background, Cloud Shell viene eseguito su Linux. Tuttavia, a seconda del fatto che si preferisca un ambiente Linux o Windows, è possibile scegliere tra due esperienze: Bash e PowerShell.
Cloud Shell è accessibile da qualsiasi posizione. Oltre che dal portale, è possibile accedere a Cloud Shell anche da shell.azure.com, dall'app per dispositivi mobili di Azure o da Visual Studio Code.
Cloud Shell include strumenti ed editor di testo molto diffusi. Ecco una breve panoramica delle utilità az
, jq
e sqlcmd
, tre strumenti che verranno usati per questo esercizio.
az
è anche noto come interfaccia della riga di comando di Azure. Si tratta dell'interfaccia della riga di comando per l'uso delle risorse di Azure. L'interfaccia viene usata per ottenere informazioni sul database, inclusa la stringa di connessione.jq
è un parser JSON della riga di comando. È possibile inviare tramite pipe l'output dei comandiaz
a questo strumento per estrarre i campi importanti dall'output JSON.sqlcmd
consente di eseguire istruzioni in SQL Server. Si usasqlcmd
per creare una sessione interattiva con il Database SQL di Azure.
Ottenere informazioni sul database SQL di Azure
Prima di connettersi al database, è consigliabile verificare che esista e che sia online.
In questo caso si userà l'utilità az
per elencare i database e visualizzare alcune informazioni sul database Logistics, tra cui la dimensione massima e lo stato.
Visitare shell.azure.com oppure, dal portale di Azure, selezionare il pulsante Cloud Shell dai controlli globali della finestra del portale di Azure.
Se possibile, scegliere Bash per questo esercizio di apprendimento.
Nella finestra popup Attività iniziali selezionare Nessun account di archiviazione necessario. Selezionare la propria sottoscrizione dall’elenco a discesa Sottoscrizione. Selezionare Applica. Viene caricato il nuovo terminale Cloud Shell.
I comandi
az
da eseguire richiedono il nome del gruppo di risorse e il nome del server logico di Azure SQL. Per evitare di doverli digitare ogni volta, eseguire questo comandoazure configure
per specificare i valori come predefiniti.Sostituire
[server-name]
con il nome del server logico SQL di Azure creato e[resource-group]
con il gruppo di risorse usato per il server.Suggerimento
Per incollare in Cloud Shell, usare
Ctrl+Shift+V
anzichéCtrl+V
. UsareCtrl+C
per cancellare il comando corrente dal terminale.az configure --defaults group=[resource-group] sql-server=[server-name]
Nota
A seconda del riquadro in cui ci si trova nel portale di Azure, il nome del server SQL viene visualizzato come Nome di dominio completo (FQDN) (ad esempio,
servername.database.windows.net
) o autonomo (servername
). Per questo comando è necessario solo il nome logico senza il suffisso.database.windows.net
.Per elencare tutti i database nel server logico SQL di Azure, eseguire il comando
az sql db list
seguente:az sql db list
Si otterrà un blocco di codice JSON di grandi dimensioni come output.
Poiché si è interessati a visualizzare solo i nomi dei database, eseguire il comando una seconda volta. Questa volta, tuttavia, inviare tramite pipe l'output a
jq
per visualizzare solo i campi del nome.az sql db list | jq '[.[] | {name: .name}]'
Dovrebbe essere visualizzato questo output:
[ { "name": "Logistics" }, { "name": "master" } ]
Logistics
è il database utente. Come in SQL Server, il database di sistemamaster
include i metadati del server, ad esempio gli account di accesso e le impostazioni di configurazione di sistema.Eseguire il comando
az sql db show
seguente per ottenere informazioni dettagliate sul databaseLogistics
:az sql db show --name Logistics
Come nel caso precedente, si noterà un blocco di codice JSON di grandi dimensioni come output.
Eseguire il comando una seconda volta. Questa volta inviare tramite pipe l'output a
jq
per limitare l'output solo al nome, alla dimensione massima e allo stato del database Logistics.az sql db show --name Logistics | jq '{name: .name, maxSizeBytes: .maxSizeBytes, status: .status}'
Si noterà che il database è online e che è indicata la quantità massima di dati che il database è in grado di archiviare.
{ "name": "Logistics", "maxSizeBytes": 2147483648, "status": "Online" }
Se si sceglie l'offerta gratuita del database SQL di Azure, il database serverless si sospende automaticamente per risparmiare secondi di vCore gratuiti; pertanto, dopo un periodo di inattività, il database
Logistics
viene visualizzato con lo stato Sospeso.
Connettersi al database
Una stringa di connessione contiene tutte le informazioni necessarie per la connessione di un'applicazione al database. Mentre si è ancora in Cloud Shell, è possibile iniziare recuperando la stringa di connessione.
Stringa di connessione da Cloud Shell
Eseguire il comando az sql db show-connection-string
seguente per ottenere la stringa di connessione per il database Logistics
in un formato utilizzabile da sqlcmd
:
```azurecli
az sql db show-connection-string --client sqlcmd
```
Your output resembles the following example. Copy this output for use in the next step.
```output
"sqlcmd -S tcp:<server-name>.database.windows.net,1433 -d Logistics -U <username> -P <password> -N -l 30"
```
Stringa di connessione dal portale di Azure
Il portale di Azure fornisce stringhe di connessione per vari provider di dati in modo da rendere il database SQL di Azure facilmente accessibile.
- Nel portale di Azure passare al database SQL.
- Nel menu di servizio del database SQL, in Impostazioni, selezionare Stringhe di connessione.
- Scegliere il provider di dati e il metodo di connessione desiderati.
Connettersi al database con Visual Studio Code
Si userà ora uno strumento grafico per connettersi al nuovo database SQL di Azure. Visual Studio Code è un noto editor di codice open source per Linux, macOS e Windows. Supporta le estensioni, inclusa l'estensione mssql. È possibile usare l'estensione per l'esecuzione di query su SQL Server, un database SQL di Azure, un'Istanza gestita di SQL di Azure, un database SQL in Fabric e altre piattaforme.
Scaricare e installare Visual Studio Code.
In Visual Studio Code aprire la visualizzazione Estensioni selezionando l'icona Estensioni nella barra delle attività sul lato della finestra. Eseguire la ricerca di mssql e selezionare Installa per aggiungere l'estensione e l'estensione mssql alla workstation locale.
Suggerimento
Se in futuro si desidera sviluppare progetti di applicazione degli oggetti di database, usare anche l'estensione Progetti di database SQL per Visual Studio Code. Questo strumento consente di usare il database nel controllo del codice sorgente, acquisire schemi di database esistenti, nonché progettare nuovi oggetti e pubblicarli nei database.
Nell'elenco di estensioni scegliere l'estensione SQL Server.
In CONNESSIONI selezionare Aggiungi connessione.
In Nome profilo assegnare alla nuova connessione un nome personalizzato facile da ricordare.
Sono disponibili più modi per fornire le informazioni di connessione:
- Scegliere Parametri per immettere manualmente il nome del server logico SQL di Azure, il nome del database, il nome utente e la password.
- Scegliere Stringa di connessione per incollare la stringa di connessione per il database, quindi aggiungere il nome utente e la password.
- Scegliere Sfoglia Azure per connettersi alla sottoscrizione di Azure in VS Code e selezionare il nuovo database SQL di Azure da un elenco.
Per questo esercizio di apprendimento, scegliere Sfoglia Azure. Connettersi alla sottoscrizione di Azure da VS Code.
Selezionare la Sottoscrizione nell’elenco.
Selezionare il Gruppo di risorse nell’elenco.
Selezionare il Server e il Database nell'elenco.
Con Tipo di autenticazione impostato su Account di accesso SQL, specificare il Nome utente e la Password creati nell'ultimo modulo.
Selezionare Connetti.
Una volta riuscita la connessione, la finestra di dialogo Aggiungi connessione scompare. Viene sostituita dalla connessione server e un'istanza Esplora oggetti di Tabelle, Viste, ecc.
Eseguire query sul database con Visual Studio Code
Si eseguirà ora una serie di comandi per effettuare operazioni CRUD (Create, Read, Update, Delete) di base nel database SQL di Azure.
Fare clic con il pulsante destro del mouse sulla riga del nome del server in CONNESSIONI e selezionare Nuova query.
Nella nuova finestra di query si creerà il primo oggetto di database incollando il comando seguente per creare una nuova tabella denominata
Drivers
.CREATE TABLE Drivers (DriverID int IDENTITY(1,1), LastName varchar(255), FirstName varchar(255), OriginCity varchar(255)); GO
La tabella contiene quattro colonne: un identificatore univoco, il nome e il cognome dell'autista e la città di origine dell'autista.
Selezionare il pulsante Esegui query per eseguire i comandi T-SQL nella finestra di query.
Suggerimento
Per eseguire uno dei numerosi comandi T-SQL in una finestra di query, trascinare e selezionare la query desiderata, quindi scegliere Esegui.
Come quasi tutto in Visual Studio Code, anche i tasti di scelta rapida possono essere personalizzati. In Windows, il tasto di scelta rapida predefinito per Esegui è
Ctrl + Shift + E
.Eseguire quindi le istruzioni T-SQL seguenti per verificare che esista la tabella
Drivers
eseguendo una query sui metadati del database:SELECT name FROM sys.tables; GO
Nella scheda Risultati query, in Risultati, si noterà che
Drivers
è presente nell'elenco di tabelle.name ------- Drivers
Si aggiungerà ora una riga alla tabella. Eseguire le istruzioni T-SQL seguenti per aggiungere una riga di esempio alla tabella:
INSERT INTO Drivers (LastName, FirstName, OriginCity) VALUES ('Zirne', 'Laura', 'Springfield'); GO
Questo output indica che l'operazione è riuscita:
3:14:01 PM Started executing query at Line 7 (1 row affected) Total execution time: 00:00:00.044
Per visualizzare la riga inserita, eseguire le istruzioni T-SQL seguenti per elencare le colonne
DriverID
eOriginCity
da tutte le righe della tabella:SELECT DriverID, OriginCity FROM Drivers; GO
Viene visualizzato un solo risultato con i valori
DriverID
eOriginCity
per la riga che è stata creata nel passaggio precedente.DriverID OriginCity ----------- -------------------------- 1 Springfield
Si aggiornerà la riga per modificare
OriginCity
. Eseguire l’istruzione T-SQL seguente per modificare la città di origine da "Springfield" a "Boston" per l'autista con un valoreDriverID
pari a1
:UPDATE Drivers SET OriginCity='Boston' WHERE DriverID=1; GO
Verrà visualizzato un messaggio in cui si conferma che la query è stata eseguita nella finestra Risultati query:
3:14:29 PM Started executing query at Line 13 (1 row affected) Total execution time: 00:00:00.031
Eseguire le istruzioni T-SQL seguenti per elencare nuovamente le colonne
DriverID
eOriginCity
:SELECT DriverID, OriginCity FROM Drivers; GO
Verrà ora visualizzato l'output seguente. Si noti come il valore
OriginCity
riflette l'aggiornamento a Boston.DriverID OriginCity ----------- -------------------------- 1 Boston
Si rimuoverà infine la riga eseguendo l’istruzione T-SQL seguente per eliminare il record:
DELETE FROM Drivers WHERE DriverID=1; GO
3:15:00 PM Started executing query at Line 16 (1 row affected) Total execution time: 00:00:00.017
Eseguire le istruzioni T-SQL seguenti per verificare che la tabella
Drivers
sia vuota:SELECT COUNT(*) FROM Drivers; GO
È possibile notare che la tabella non contiene righe.
----------- 0
Ora che si ha un'idea generale dell'uso del database SQL di Azure da Cloud Shell e in Visual Studio, è possibile usare la stringa di connessione per il proprio strumento di gestione SQL preferito, che si tratti di SQL Server Management Studio, Visual Studio o di un’applicazione personalizzata.
Cloud Shell semplifica l’accesso e l’utilizzo di risorse di Azure di qualsiasi tipo. Poiché Cloud Shell è basato su browser, è possibile accedervi da Windows, macOS o Linux, ovvero da qualsiasi sistema dotato di un Web browser.
È stata acquisita esperienza pratica su come eseguire comandi T-SQL in Visual Studio Code e sono state applicate le competenze relative a T-SQL.
Nell'unità successiva viene eseguito il wrapping di questo modulo e viene spiegato come eliminare il database.