- 1 1. Introduzione
- 2 2. Operazioni di base di MySQL (amichevoli per principianti)
- 3 3. Operazioni sul Database
- 4 4. Operazioni sulle Tabelle
1. Introduzione
MySQL è un database relazionale open-source ampiamente utilizzato tra i sistemi di gestione del database (DBMS). È particolarmente popolare per le applicazioni web e i sistemi aziendali. In questo articolo, spiegheremo in dettaglio i comandi essenziali di MySQL e struttureremo il contenuto in modo che gli utenti principianti e intermedi possano imparare in modo fluido.
1.1 Cos’è MySQL?
MySQL è un software utilizzato per gestire un database relazionale (RDB). I dati sono memorizzati in tabelle e li manipoli utilizzando SQL (Structured Query Language). MySQL ha le seguenti caratteristiche:
- Open-source e gratuito per chiunque utilizzarlo
- Prestazioni veloci e leggere
- Compatibile con molti linguaggi di programmazione (come PHP, Python e Java)
- Adatto per gestire database su larga scala
1.2 Vantaggi dell’apprendimento dei comandi MySQL
Per utilizzare MySQL in modo efficiente, è importante comprendere i comandi di base. I principali vantaggi includono:
- Gestione dati più efficiente : Padroneggiando i comandi SQL, puoi recuperare, aggiornare ed eliminare i dati rapidamente
- Automazione del flusso di lavoro : Utilizzando script, puoi automatizzare le operazioni sul database
- Gestione errori più fluida : Quando si verificano problemi, puoi risolverli con i comandi SQL appropriati
1.3 Cosa imparerai in questo articolo
Questo articolo spiega in dettaglio i seguenti argomenti:
- Operazioni di base di MySQL (avvio, connessione e operazioni sul database)
- Aggiunta, recupero, aggiornamento ed eliminazione dei dati (operazioni CRUD)
- Gestione utenti e impostazioni dei privilegi
- Comandi utili e risoluzione dei problemi
Successivamente, passeremo attraverso ogni sezione in ordine. Iniziamo con le operazioni di base di MySQL.
2. Operazioni di base di MySQL (amichevoli per principianti)
2.1 Avvio e connessione a MySQL
2.1.1 Avvio di MySQL
Poiché MySQL funziona come un programma server, devi avviare il server per primo. Il metodo di avvio varia a seconda del sistema operativo.
Avvio su Linux / macOS
Su Linux e macOS, puoi avviare MySQL utilizzando il comando systemctl.
sudo systemctl start mysql
Controlla se MySQL è in esecuzione
sudo systemctl status mysql
Se vedi “active (running)”, MySQL è in esecuzione normalmente.
Avvio su Windows
Su Windows, MySQL viene spesso eseguito come servizio, quindi puoi utilizzare il comando net start.
net start mysql
Oppure, se stai utilizzando XAMPP, apri il Pannello di controllo XAMPP e fai clic su “Start” per “MySQL”.
2.1.2 Connessione a MySQL
Per connetterti a MySQL, utilizza il comando mysql. Il comando di connessione di base è il seguente:
mysql -u username -p
Connessione come utente root
In modo predefinito, l’utente root è configurato come amministratore. Puoi connetterti con il seguente comando:
mysql -u root -p
Dopo aver premuto Invio, ti verrà chiesto di inserire la password. Se inserisci la password corretta, puoi accedere a MySQL.
Connessione a un host specifico
Per connetterti a un server MySQL remoto, utilizza l’opzione -h.
mysql -h hostname -u username -p
Ad esempio, per connetterti a un server MySQL su 192.168.1.100, scrivi:
mysql -h 192.168.1.100 -u root -p
Connessione specificando un numero di porta
La porta predefinita di MySQL è 3306. Se è stata modificata, puoi specificarla con l’opzione -P.
mysql -h 192.168.1.100 -P 3307 -u root -p
2.2 Comandi di base di MySQL
Una volta connesso a MySQL, prova a eseguire alcuni comandi di base.
2.2.1 Controllo della versione di MySQL
Per controllare la versione di MySQL che stai utilizzando attualmente, esegui il seguente comando:
SELECT VERSION();
2.2.2 Controllo del database corrente
Per verificare quale database è attualmente selezionato, esegui:
SELECT DATABASE();
Se non è selezionato alcun database, viene restituito NULL.
2.2.3 Elenco dei database disponibili
Per elencare i database esistenti in MySQL, utilizza:
SHOW DATABASES;
2.3 Errori comuni e soluzioni
2.3.1 Errore “Access denied”
Esempio di errore:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Come risolvere:
- Verifica che la password sia corretta
- Controlla e reimposta i privilegi di
rootALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NEW_PASSWORD'; FLUSH PRIVILEGES;
2.3.2 Errore “Impossibile connettersi al server MySQL su ‘localhost’”
Esempio di errore:
ERROR 2002 (HY000): Can't connect to MySQL server on 'localhost' (10061)
Come risolvere:
- Verifica se MySQL è in esecuzione (
systemctl status mysql) - Riavvia MySQL
sudo systemctl restart mysql
2.4 Riepilogo
In questa sezione abbiamo spiegato come avviare MySQL e connettersi ad esso.
3. Operazioni sul Database
In MySQL, crei un database per gestire i dati e poi organizzi le informazioni inserendo tabelle al suo interno. In questa sezione spiegheremo in dettaglio le operazioni di base come creare, selezionare, elencare ed eliminare i database.
3.1 Creazione di un Database
Per creare un database in MySQL, usa il comando CREATE DATABASE.
3.1.1 Crea un database di base
Se esegui il seguente comando SQL, potrai creare un nuovo database chiamato my_database.
CREATE DATABASE my_database;
Messaggio quando la creazione ha successo
Query OK, 1 row affected (0.01 sec)
3.1.2 Quando provi a creare un database che esiste già
Se il database esiste già, vedrai un errore simile al seguente:
ERROR 1007 (HY000): Can't create database 'my_database'; database exists
Per evitare questo errore, è utile aggiungere l’opzione IF NOT EXISTS.
CREATE DATABASE IF NOT EXISTS my_database;
Quando esegui questo comando, il database viene creato solo se non esiste già.
3.2 Elencare i Database
Per verificare quali database esistono sul server MySQL corrente, usa il comando SHOW DATABASES.
SHOW DATABASES;
Esempio di output:
+--------------------+
| Database |
+--------------------+
| information_schema |
| my_database |
| mysql |
| performance_schema |
| sys |
+--------------------+
Nota: i database di sistema come mysql e information_schema sono necessari per l’amministrazione di MySQL.
3.3 Selezionare un Database
In MySQL, devi selezionare il database che vuoi utilizzare. Per specificare un database, esegui il comando USE.
USE my_database;
Messaggio quando ha successo
Database changed
Per confermare quale database è attualmente selezionato, usa il comando seguente:
SELECT DATABASE();
Esempio di output:
+------------+
| DATABASE() |
+------------+
| my_database |
+------------+
3.4 Eliminare un Database
Per eliminare un database di cui non hai più bisogno, usa il comando DROP DATABASE.
DROP DATABASE my_database;
3.4.1 Note importanti prima dell’eliminazione
- Attenzione: eliminare un database rimuove tutti i dati!
- Per evitare errori accidentali, puoi anche aggiungere
IF EXISTS.DROP DATABASE IF EXISTS my_database;
Questo comando termina senza errori anche se my_database non esiste.
3.5 Errori Comuni e Correzioni
3.5.1 Errore “Access denied for user”
Esempio di errore:
ERROR 1044 (42000): Access denied for user 'user_name'@'localhost' to database 'my_database'
Come risolvere
- Concedi i privilegi usando il comando
GRANTGRANT ALL PRIVILEGES ON my_database.* TO 'user_name'@'localhost'; FLUSH PRIVILEGES;
3.5.2 Errore “Can’t drop database”
Esempio di errore:
ERROR 1010 (HY000): Error dropping database (can't rmdir './my_database', errno: 39)
Come risolvere
- Riavvia MySQL
sudo systemctl restart mysql
- Elimina prima tutte le tabelle in
my_database, poi eseguiDROP DATABASE.
3.6 Riepilogo
In questa sezione hai imparato come creare, selezionare, elencare ed eliminare i database.
4. Operazioni sulle Tabelle
Dopo aver creato un database, è necessario creare tabelle al suo interno per organizzare i dati. Una tabella è come una griglia per memorizzare i dati, composta da colonne e righe (record).
In questa sezione, spiegheremo in dettaglio le operazioni di base come creare, verificare, elencare ed eliminare tabelle.
4.1 Creating a Table
Per creare una tabella, usa il comando CREATE TABLE. Se esegui il seguente SQL, verrà creata una tabella chiamata users.
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
4.1.1 Explanation of each element when creating a table
id INT AUTO_INCREMENT PRIMARY KEY- La colonna
idè un intero (INT), si incrementa automaticamente (AUTO_INCREMENT) ed è impostata come chiave primaria (PRIMARY KEY). name VARCHAR(50) NOT NULL- La colonna
nameè una stringa (VARCHAR) fino a 50 caratteri ed è obbligatoria a causa diNOT NULL. email VARCHAR(100) UNIQUE NOT NULL- La colonna
emailè una stringa fino a 100 caratteri, e il vincoloUNIQUEimpedisce indirizzi email duplicati. created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP- La colonna
created_atimposta automaticamente la data/ora corrente come valore predefinito.
Message when successful
Query OK, 0 rows affected (0.02 sec)
4.2 Checking Table Structure
Per verificare la struttura di una tabella creata, usa DESC o SHOW COLUMNS.
DESC users;
Or
SHOW COLUMNS FROM users;
Example output:
+------------+--------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(50) | NO | | NULL | |
| email | varchar(100) | NO | UNI | NULL | |
| created_at | timestamp | YES | | CURRENT_TIMESTAMP | |
+------------+--------------+------+-----+-------------------+----------------+
4.3 Listing Tables
Per elencare le tabelle presenti nel database corrente, esegui il comando SHOW TABLES.
SHOW TABLES;
Example output:
+------------------+
| Tables_in_mydb |
+------------------+
| users |
| products |
| orders |
+------------------+
4.4 Deleting a Table
Per eliminare una tabella di cui non hai più bisogno, usa il comando DROP TABLE.
DROP TABLE users;
4.4.1 Important notes when deleting a table
- Attenzione: eliminare una tabella rimuove permanentemente i dati!
- Per evitare errori durante l’eliminazione, aggiungi
IF EXISTS.DROP TABLE IF EXISTS users;
Message when successful
Query OK, 0 rows affected (0.01 sec)
4.5 Resetting Table Data (Delete All Rows)
Se vuoi mantenere la struttura della tabella ma eliminare solo i dati al suo interno, usa TRUNCATE TABLE.
TRUNCATE TABLE users;
Difference from DROP TABLE
DROP TABLEelimina la tabella stessa.TRUNCATE TABLEelimina solo i dati e mantiene la struttura della tabella.
4.6 Common Errors and Fixes
4.6.1 “Table already exists” error
Example error:
ERROR 1050 (42S01): Table 'users' already exists
How to fix
- Verifica le tabelle esistenti
SHOW TABLES;
- Crea la tabella con
IF NOT EXISTSCREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
4.6.2 “Unknown table” error
Example error:
ERROR 1051 (42S02): Unknown table 'users'
How to fix
- Verifica se la tabella esiste usando
SHOW TABLES; - Se non esiste, aggiungi
IF EXISTSDROP TABLE IF EXISTS users;
4.7 Riepilogo
In questa sezione, abbiamo coperto le operazioni di base sulle tabelle MySQL: creazione, verifica e cancellazione delle tabelle.


