Che si parli di un sito Web o di un applicazione Desktop, la memorizzazione dei dati è un passaggio necessario per ogni progetto che si vuole sviluppare. Avere gli strumenti per collegarsi e controllare passo passo i database è fondamentale per evitare di perdersi in passaggi macchinosi. Visual Studio Code offre degli ottimi meccanismi per connettersi ai database, vediamo quali.
Versioni ed estensioni
Ovviamente alcune estensioni e funzioni varieranno in base al DBMS scelto, il principale punto di riferimento della guida sarà MySQL.
Struttura dell'articolo
Alcune estensioni generano i medesimi risultati ma in modo differente, per cui la composizione di questo articolo sarà differente dal solito e seguirà questo schema:
- guida all'installazione delle estensioni;
- guida all'utilizzo.
La prima estensione elencata sarà l'unica ad essere neutra.
SQL snippet
Può sempre essere utile disporre di qualche estensione con cui creare velocemente degli snippet SQL con query già pronte, un'estensione molto utile potrebbe essere quindi SQL snippet
con id Miladfathy.sql-snippet
.
Una volta installata sarà possibile attingere a varie shortcut per creare rapidamente delle query, molte di queste sono precedute dal carattere ?
.
MySQL
La prima estensione per connettersi al client MySQL e vedere graficamente le tabelle e i database è l'estensione MySQL con id formulahendry.vscode-mysql
.
Una volta installata apparirà nella Explorer il menu a tendina per MySQL:
ì
Da qui poi si potrà accedere alle funzioni disponibili.
Configurazione di un database
Per configurare una connessione con un database si deve cliccare l'icona della "somma" nel menu (visibile quando si passa sopra con il mouse sul menu di MySQL) nel pannello di esplorazione.
In alto verrà visualizzato un pop-up per l'inserimento dell'indirizzo del database, se è locale, basta scrivere localhost
.
Dopo aver confermato l'indirizzo si potrà inserire il nome utente, sempre nello stesso pop-up.
Ora, premendo Invio, verrà richiesta la password dell'utente.
Infine si dovrà specificare la porta di connessione (di default la 3306).
Un ultimo pop-up richiederà le informazioni sul certificato SSL. Si tratta però di un'impostazione del tutto opzionale e, se non serve, la si può ignorare per poi premere su Invio.
Esplora il database
Una volta aggiunto un database viene reso disponibile nel pannello dell'explorer riservato a MySQL.
Si possono inoltre espandere le varie voci fino a vedere le singole tabelle che compongono uno schema.
Query su tabelle e schema
Se si clicca su una tabella si apre il menu con due opzioni tra cui la "Select" delle prime mille righe:
La query verrà eseguita automaticamente nell'editor e si vedranno i risultati in una tabella su un secondo pannello aperto di fianco.
Cliccando con il tasto destro sul nome del database si potrà inserire invece una nuova query.
È possibile ottenere lo stesso risultato utilizzando il control panel (CTRL+SHIFT+P) digitando "new query".
Si apre quindi nell'editor una nuova scheda dove digitare la query, una volta scritta essa diventa eseguibile.
Per eseguire una query è necessario aprire il control panel (CTRL+SHIFT+P) e digitare "Run Query"
Si aprirà così in un pannello a lato della query.
MySQL Shell for VS Code
Uno strumento decisamente più avanzato ma ancora in fase di sviluppo al momento della scrittura di questa guida. MySQL Shell for VS Code è un estensione che fornisce diversi strumenti:
- lista degli schema;
- shell interattiva;
- dump del database;
- copia delle istruzioni in clipboard;
- query e istruzioni a portata di click.
L'id dell'estensione è Oracle.mysql-shell-for-vs-code
.
Aggiungere una connessione
Per aggiungere una connessione si deve cliccare l'icona di MySQL in corrispondenza del pannello laterale.
per poi passare sopra la voce "Database Connection" e premere il tasto "+".
Le informazioni obbligatorie da inserire sono:
- il tipo di database ("Database Type");
- l'indirizzo del database ("Host Name or IP Address");
- il nome utente per la connessione ("User Name");
- il database di default ("Default schema"), questo valore si può anche lasciare vuoto e saranno selezionati tutti gli schema;
- la porta di connessione.
Altre informazioni meno importanti ma comunque da tenere d'occhio sono:
- il nome della connessione ("Caption");
- descrizione della connessione ("Description").
Aprire la shell interattiva
È possibile aprire facilmente una shell interattiva. La shell interattiva serve per eseguire direttamente comandi come se foste connessi da client, strumento molto comodo per sopperire a qualunque mancanza dell'estensione. Integra inoltre l'auto-completamento per i nomi delle tabelle e gli schema.
Per aprire una shell interattiva bisogna passare sopra al nome dato alla connessione per pi premere il pulsante "Play".
Si aprirà nell'editor un'interfaccia stile terminale su cui scrivere le query. Sarà poi possibile eseguirle con il tasto a forma di fulmine posizionato in alto.
Di norma è attivo l'autocommit, ciò significa che ogni istruzione che verrà eseguita automaticamente viene applicata al database come ci si aspetta. Si può però disabilitare l'autocommit premendo il tasto con il fulmine vicino alla spunta nella barra posta di sopra.
Dopo averlo disabilitato è necessario premere manualmente il tasto di commit in alto (la spunta) per accettare una modifica, altrimenti sarà rigettata una volta chiuso il client.
In alternativa è possibile premere il tasto con la crocetta vicino, per rigettarla esplicitamente.
Dump Schema
Questa funzione in realtà non è molto utile, infatti non crea un dump vero e proprio ma spacchetta lo schema in piccoli file sql
che poi lo ricreano.. Personalmente sconsiglio di utilizzarlo.
Detto ciò, per eseguire il dump dello schema basta cliccare con il tasto destro del mouse sul nome dello schema nel pannello di MySQL
e poi cliccare "Dump Schema to Disk". Apparirà una finestra per la selezione del percorso da cui scegliere una cartella vuota (o verrà abortita l'operazione).
Una volta finito troverete tutti i file di dump nella cartella.
DROP, Select, Create e alberatura
Sempre a portata di click è possibile eseguire alcune operazioni come il Select
di tabelle, copiare le istruzioni di creazione di una tabella e cancellare tabelle o interi schemi.
Andando nel pannello di esplorazione di MySQL è possibile espandere tutte le voci degli schemi fino a vedere tabelle, colonne, indici e chiavi interne ed esterne
Cliccando con il tasto destro su nomi di tabelle o di schema è possibile eseguire alcune operazioni come eliminare un elemento.
Oppure copiarne l'istruzione di creazione nella clipboard di sistema
Solo sulle tabelle, invece, è possibile selezionarne le righe.
SQLTools
Questa compilation di estensioni copre un gran numero di casistiche, diversi DBMS, sintassi e altro. È probabilmente l'estensione più completa. Il suo ID è mtxr.sqltools
.
Una volta installato apparirà, sul pannello laterale, l'icona del database da cliccare.
Configurazione e aggiunta connessione
Per aggiungere una connessione si deve cliccare innanzitutto su "Add new Connection" dopo aver cliccato sull'icona del database.
Alla prima connessione è probabile che il sistema vi comunichi che mancano i driver di connessione, è quindi necessario scaricarli, cliccare su "Search VS Code Marketplace".
Il passaggio successivo consiste quindi nel cercare un driver corrispondente alle proprie esigenze all'interno della lista apparsa sulla sinistra (vicino il pannello laterale). Nella guida si prenderà ad esempio quello di MySQL:
Un volta effettuata la procedura per l'aggiunta di un nuovo driver si potranno visualizzare i database supportati grazie ai driver installati. Se la versione di MySQL installata è quella Open Source si deve cliccare su "MariaDB". Altrimenti su "MySQL".
Si aprirà quindi una nuova schermata dove verranno richieste le informazioni principali. L'utente dovrà dare un nome alla connessione e indicare l'indirizzo del server, la porta di connessione (3306 è selezionata di default) e l'username.
Fatto questo bisogna confermare il tutto con "Save".
Verrà proposto un riepilogo delle informazioni sotto forma di file JSON. Se sono corrette è possibile cliccare su "Connect Now".
In alcuni sistemi potrebbe essere richiesto di accedere al portachiavi di sistema.
Si deve quindi inserire la password dell'utente specificato in fase di configurazione.
Se tutto dovesse andare per il meglio apparirà l'alberatura del database nel pannello di esplorazione. Si potrà poi espanderla fino a vedere le singole tabelle o colonne.
Eseguire le query
Quando Visual Studio Code identifica un file aperto con istruzioni SQL è possibile eseguire una query cliccando sul pulsante "Run on active connection" sotto il nome del file (prima riga del file). Il risultato apparirà su un pannello accanto:
in alternativa è possibile lanciare delle query passando sopra al nome della tabella su cui si vuole eseguire un'istruzione. Verranno mostrate due icone: un "+" e una lente di ingrandimento.
Cliccando sulla lente otterremo una select
di tutti i valori.
Insert
Per effettuare una insert
basta cliccare sul tasto "+", verrà aperto automaticamente un file nell'editor con i campi preimpostati.
Describe
Se si clicca con il tasto destro sul nome di una tabella si possono visualizzare diverse opzioni, tra cui quella per "descriverla" ("Describe Table").
Questa operazione elencherà le colonne della tabella seguite dal tipo: