Tutorial > Introduzione all'utilizzo del database MySQL

Introduzione all'utilizzo del database MySQL

Pubblicato il: 19 maggio 2020

MySQL Web Hosting

Introduzione

Indipendentemente dal contesto e dalla modalità, ti sarà sicuramente capitato di dover salvare dei file per poterli aprire e visualizzare in un secondo momento. Questo concetto può essere esteso anche ai dati, indipendentemente che si tratti di caratteri numerici o alfanumerici. I dati possono essere infatti immagazzinati all’interno di un Database, tramite il quale poterli consultare a posteriori.

Tra le soluzioni più note per la gestione di database troviamo indubbiamente MySQL, un sistema open source per la gestione di database relazionali altamente flessibile e utilizzato su larga scala da sviluppatori e sysadmin.

In questo tutorial per principianti vedrai come muovere i primi passi nell'utilizzo di MySQL, imparando diverse nozioni e comandi che ti saranno utili per la gestione di database e tabelle.

Prerequisiti

Per eseguire le istruzioni contenute in questa guida hai bisogno di un server Ubuntu 18.04 su cui è stato precedentemente installato MySQL.

Qualora non avessi già installato MySQL sul tuo server ti consigliamo di seguire il primo step sull'Installazione di MySQL presente nella guida Come gestire utenti e permessi con MySQL.

Per iniziare dovrai connetterti al tuo server tramite una connessione SSH. Se non l’hai ancora fatto, ti consigliamo di seguire la nostra guida per connetterti in sicurezza con il protocollo SSH. In caso di server locale puoi passare al punto successivo e aprire il terminale del tuo server.

Primo accesso a MySQL Server

Dopo aver installato MySQL, sei pronto per iniziare a creare il tuo primo database e le sue tabelle.

Accedi a MySQL digitando:

 mysql -u root -p

Ti verrà chiesto di inserire la password che hai specificato per l’utente root in fase di installazione di MySQL.

N.B. In questo punto devi inserire la password dell’utente root di MySQL, non quella del tuo utente root del server Linux Ubuntu.

Le istruzioni di MySQL si chiamano query e nonostante MySQL riesca ad identificare quali parole nelle query siano dei comandi effettivi e quali invece siano dei nomi, è buona norma scrivere i primi in maiuscolo e i secondi in minuscolo.

Le query inoltre rispettano tre particolari condizioni da tenere sempre in considerazione:

  • Ogni query deve terminare con il simbolo “ ; “ (punto e virgola). Se non si inserisce questo simbolo e si preme Invio, MySQL non eseguirà la query ma andrà semplicemente a capo fino a quando non viene inserito questo carattere;
  • I comandi non sono case sensitive. Digitare ad esempio “SELECT * FROM x;” oppure “select * from x;” è indifferente e si otterrà lo stesso risultato;
  • I nomi sono case sensitive: quando dovrai specificare dei nomi personalizzati (come ad esempio il nome del database, della tabella o anche solo dei campi di una tabella) assicurati di richiamarli con la stessa sintassi. Digitare ad esempio “SELECT * FROM table” è totalmente diverso da digitare “SELECT * FROM Table”.

Creazione ed eliminazione di un Database MySQL

Tutte le informazioni di MySQL sono organizzate nei Database, i quali a loro volta possono contenere più tabelle.

Quando viene installato MySQL Server automaticamente vengono generati dei Database. Per visualizzare quelli presenti in un qualsiasi momento ti basta eseguire il comando:

 SHOW DATABASES;

Il comando restituirà un output del genere:

Database esistenti

Creare un nuovo database è molto semplice, basta infatti digitare:

 CREATE DATABASE db_name

Per assicurarti che il database sia stato creato correttamente, puoi eseguire nuovamente il comando SHOW DATABASES. Se non ci sono stati errori nella creazione, verrà mostrato nell’elenco anche il nuovo database appena creato.

Verifica presenza database

Potresti avere la necessità di cancellare un Database creato in precedenza. In tal caso, ti basterà utilizzare allo stesso modo il comando “DROP” per cancellare il database:

 DROP DATABASE db_name
Eliminazione database

Una volta creato il database, dovrai successivamente creare le tabelle al suo interno. 

Creazione di tabelle nel Database MySQL

Il database "db_name" appena creato non contiene informazioni per ora. Per poter iniziare a inserirle è necessario definire almeno una tabella con i relativi campi, all’interno della quale inserire i dati.

Per prima cosa bisogna indicare a MySQL di utilizzare il Database esistente tramite il comando “USE”:

 USE db_name

L’avvenuto utilizzo da parte di MySQL viene notificato tramite il messaggio "Database changed" successivo all’invio del comando.

Procedi quindi con la creazione di una tabella. Nel seguente esempio viene creata una tabella chiamata “persons” tramite la quale verranno rappresentate delle persone, ciascuna avente un nome, cognome, età, email e numero di telefono.

CREATE TABLE persons (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, 
name VARCHAR(20),
surname VARCHAR(30),
age INT(3),
email VARCHAR(30),
phone VARCHAR(30));

Questa query crea una tabella chiamata “persons” composta da campi di diversa tipologia:

  • il campo “id” rappresenta la chiave primaria di ciascun record (MySQL è un database relazionale, quindi è necessario definire la chiave). Così impostato esso rappresenta un numero intero (INT) che non può avere valore nullo (NOT NULL) autogenerato e con incremento automatico a ogni inserimento di un record (AUTO_INCREMENT). Quando si procederà a inserire i dati all’interno della tabella, non sarà necessario specificare questo campo ma verrà generato da MySQL stesso.
  • i campi “name”,”surname”,”email” e “phone” sono di tipo VARCHAR, ossia accettano l’inserimento di soli dati testuali. Inoltre per ciascun campo è stata indicata una quantità (30) che identifica il numero massimo di caratteri accettati.
  • il campo “age” è anch’esso un INT, ma al quale è stato impostato il limite di 3 cifre.

A differenza del campo “id”, tutti gli altri dati possono essere lasciati anche vuoti. Qualora decidessi che, in fase di aggiunta di un record, un campo debba essere obbligatorio, ti basterà specificare il NOT NULL sul relativo campo in fase di creazione della tabella.

Creazione tabella

Aggiunta di dati nelle tabelle MySQL

Inserire dati all’interno di una tabella MySQL è molto semplice, a patto di conoscere la struttura della tabella stessa, rispettando quindi il formato di ciascun dato in input.

Ipotizzando di voler aggiungere tre utenti alla tabella precedentemente creata, è necessario che la query rispetti la sintassi prevista:

INSERT INTO ‘persons’ (name,surname,age,email,phone) values (“text”,”text”,integer,”text”,”text”);

Quindi, volendo aggiungere un utente con i seguenti dettagli:

La query corretta da digitare nella shell di MySQL è:

INSERT INTO persons (name,surname,age,email,phone) values (“Céline”,”Dion”,52,”[email protected]”,” 123456789”);
Aggiungiamo quindi, seguendo la stessa sintassi, altri dati alla tabella:
INSERT INTO persons (name,surname,age,email,phone) values (“Will”,”Smith”,51,”[email protected]”,”1234567890”);
INSERT INTO persons (name,surname,age,email,phone) values (“Edward Christopher”,”Sheeran”,29,”[email protected]”,”2345678901”);

Visualizzazione dei dati in una tabella

Per visualizzare i dati presenti in una tabella si utilizza il comando ”SELECT” seguito dai campi da voler visualizzare.

Se ad esempio volessi vedere tutti i dati presenti nella tabella persons ti basterà digitare:

SELECT * FROM persons;

Il simbolo * significa “ALL”, ossia viene richiesto di visualizzare tutti i campi dei record. Tuttavia si può anche limitare la ricerca a un numero definito di campi, impostando dei filtri.

Supponendo ad esempio di voler visualizzare solamente i campi “name” e “surname” degli utenti con età maggiore di 30 anni la query diventerebbe:

SELECT name,surname FROM persons WHERE age>30;
Query generica e specifica

Molte altre possono essere le combinazioni che si possono effettuare sulle query per ricercare i dati attraverso la shell di MySQL ma, essendo più complesse, non verranno trattate in questa guida introduttiva destinata ai principanti.

Modifica di un record

Qualora ti dovessi accorgere di aver inserito un dato errato in un record, puoi sempre modificarne il valore mediante il comando UPDATE.

Supponendo di voler cambiare il campo “age” dell’utente con “id” = 3. Per farlo digita:

UPDATE persons SET age = 32 WHERE id=3;

Questo comando aggiorna il campo age impostando il valore 32, al posto dell'età inizialmente inserita di 29 anni.

Se per qualche motivo vuoi invece cancellare un determinato record dalla tua tabella, puoi utilizzare il comando DELETE. Supponendo di voler cancellare il terzo record della tabella "persons", la query da eseguire diventa:

DELETE FROM persons WHERE id=3;

Eliminazione record

Modifica di una tabella MySQL

Può anche essere necessario dover modificare la struttura della tabella poiché ci si è accorti di non aver indicato un campo (colonna). In tal caso si utilizza il comando ALTER TABLE.

ALTER TABLE persons ADD address VARCHAR(40)

Questa istruzione modifica la struttura della tabella “persons” aggiungendo il campo “address” di tipo VARCHAR che accetta un input al massimo di 40 caratteri.

Quando si effettua questo tipo di modifica, tutti i dati inseriti precedentemente a questa operazione assumono il valore NULL in corrispondenza di tale campo. Tuttavia è possibile modificarne singolarmente il valore, come mostrato nello step precedente.

Aggiunta campo alla tabella

Puoi specificare anche dove inserire la nuova colonna tramite il parametro AFTER.

ALTER TABLE persons ADD address VARCHAR(40) AFTER email

In tal caso tra il campo “email” e il campo “phone” verrà inserito il nuovo campo “address”.

Un campo può essere eliminato richiamando il comando DROP.

ALTER TABLE persons DROP address;

Pulizia di una tabella

In una tabella dove vi è un campo il cui valore è incrementato automaticamente a ogni inserimento, l’eliminazione di tutti i record può essere eseguita utilizzando il comando DELETE, definendo nel filtro WHERE la condizione “id>0”.

Tuttavia, il metodo più rapido per eliminare il contenuto della tabella senza però intaccare la sua struttura è utilizzando il comando TRUNCATE.

TRUNCATE persons;
Svuotamento tabella

Conclusioni

A questo punto possiedi tutte le nozioni basilari per muovere i tuoi primi passi nel mondo di MySQL.

Come già anticipato, si possono creare combinazioni più complesse di query che non sono state mostrate negli esempi di questo tutorial, ma che possono risultare utili per incrementare la produttività nella gestione dei database.

Per approfondire l'argomento, ti consigliamo di leggere anche il nostro tutorial su Come gestire utenti e permessi con MySQL per imparare a impostare i diversi utenti e i relativi privilegi, in maniera che questi possano effettuare o meno determinate azioni sui tuoi database.