Esercizio - Connettersi al database e aggiungere dati di esempio

Completato 100 XP

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 comandi az a questo strumento per estrarre i campi importanti dall'output JSON.
  • sqlcmd consente di eseguire istruzioni in SQL Server. Si usa sqlcmd 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.

  1. Visitare shell.azure.com oppure, dal portale di Azure, selezionare il pulsante Cloud Shell dai controlli globali della finestra del portale di Azure.

  2. Se possibile, scegliere Bash per questo esercizio di apprendimento.

  3. 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.

  4. 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 comando azure 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. Usare Ctrl+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.

  5. 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.

  6. 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 sistema master include i metadati del server, ad esempio gli account di accesso e le impostazioni di configurazione di sistema.

  7. Eseguire il comando az sql db show seguente per ottenere informazioni dettagliate sul database Logistics:

    az sql db show --name Logistics
    

    Come nel caso precedente, si noterà un blocco di codice JSON di grandi dimensioni come output.

  8. 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.

  1. Nel portale di Azure passare al database SQL.
  2. Nel menu di servizio del database SQL, in Impostazioni, selezionare Stringhe di connessione.
  3. 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.

  1. Scaricare e installare Visual Studio Code.

  2. 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.

  3. Nell'elenco di estensioni scegliere l'estensione SQL Server.

  4. In CONNESSIONI selezionare Aggiungi connessione.

    Screenshot di Visual Studio Code con la finestra di dialogo Aggiungi connessione per l'estensione mssql aperta.

  5. In Nome profilo assegnare alla nuova connessione un nome personalizzato facile da ricordare.

  6. 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.
  7. Per questo esercizio di apprendimento, scegliere Sfoglia Azure. Connettersi alla sottoscrizione di Azure da VS Code.

  8. Selezionare la Sottoscrizione nell’elenco.

  9. Selezionare il Gruppo di risorse nell’elenco.

  10. Selezionare il Server e il Database nell'elenco.

  11. Con Tipo di autenticazione impostato su Account di accesso SQL, specificare il Nome utente e la Password creati nell'ultimo modulo.

  12. Selezionare Connetti.

  13. 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.

    Screenshot dell'estensione mssql di VS Code con il server connesso e gli oggetti di database visualizzati.

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.

  1. Fare clic con il pulsante destro del mouse sulla riga del nome del server in CONNESSIONI e selezionare Nuova query.

    Screenshot dell'opzione Nuova query in Connessioni nell'estensione mssql per Visual Studio Code.

  2. 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.

  3. 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.

    Screenshot della finestra Nuova query con il comando T-SQL per la tabella Driver. Il pulsante Esegui è evidenziato.

    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.

  4. 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
    
  5. 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
    
  6. Per visualizzare la riga inserita, eseguire le istruzioni T-SQL seguenti per elencare le colonne DriverID e OriginCity da tutte le righe della tabella:

    SELECT DriverID, OriginCity FROM Drivers;
    GO
    

    Viene visualizzato un solo risultato con i valori DriverID e OriginCity per la riga che è stata creata nel passaggio precedente.

    DriverID    OriginCity
    ----------- --------------------------
    1           Springfield
    
  7. 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 valore DriverID pari a 1:

    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
    
  8. Eseguire le istruzioni T-SQL seguenti per elencare nuovamente le colonne DriverID e OriginCity:

    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
    
  9. 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
    
  10. 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.


Unità successiva: Riepilogo e pulizia

Indietro Prossima