Comandi DDL e DML Essenziali: Creare, Selezionare, Aggiornare, Eliminare
Impara i comandi MySQL DDL e DML fondamentali: CREATE TABLE, INSERT, SELECT, UPDATE e DELETE.
Comandi DDL e DML Essenziali: Creare, Selezionare, Aggiornare, Eliminare
Lavorare con MySQL di solito inizia con due compiti: definire le tue tabelle e lavorare con le righe al loro interno. I comandi DDL e DML essenziali sono il modo per farlo in sicurezza.
I comandi DDL definiscono gli oggetti del database come le tabelle. I comandi DML inseriscono, leggono, aggiornano ed eliminano i dati delle tabelle. Gli esempi seguenti utilizzano una piccola tabella products in modo da poter vedere i comandi nel loro contesto.
Data Definition Language (DDL): Creare Tabelle
I comandi DDL riguardano lo schema e la struttura degli oggetti del tuo database. Il comando DDL più fondamentale per l'archiviazione dei dati è CREATE TABLE, che ti permette di definire il progetto per i tuoi dati.
Sintassi di CREATE TABLE
La sintassi di base per creare una tabella implica specificare il nome della tabella e poi definire le sue colonne, inclusi i loro tipi di dati e eventuali vincoli.
CREATE TABLE nome_tabella (
colonna1 tipo_dato vincoli,
colonna2 tipo_dato vincoli,
colonna3 tipo_dato vincoli,
...
);
nome_tabella deve essere unico all'interno del database corrente. Ogni colonna necessita di un nome, un tipo di dato e vincoli opzionali come NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY o DEFAULT valore.
Esempio di CREATE TABLE
Creiamo una semplice tabella products per memorizzare informazioni sugli articoli in un inventario:
CREATE TABLE products (
product_id INT AUTO_INCREMENT PRIMARY KEY,
product_name VARCHAR(100) NOT NULL UNIQUE,
category VARCHAR(50),
price DECIMAL(10, 2) NOT NULL,
stock_quantity INT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
In questo esempio:
product_idè un intero che si incrementa automaticamente e funge da chiave primaria.product_nameè una stringa obbligatoria che deve essere unica.priceè un numero decimale obbligatorio.stock_quantityè impostato a 0 di default se non specificato.created_atregistra il timestamp di quando la riga è stata creata.
Data Manipulation Language (DML): Lavorare con i Dati
I comandi DML sono usati per gestire i record (righe) all'interno delle tabelle del tuo database. Sono i comandi usati più frequentemente per le operazioni quotidiane del database.
Comando INSERT: Aggiungere Nuovi Dati
Il comando INSERT è usato per aggiungere nuove righe di dati in una tabella.
Sintassi di INSERT
Ci sono un paio di modi per usare INSERT:
Specificare valori per tutte le colonne:
INSERT INTO nome_tabella VALUES (valore1, valore2, valore3, ...);L'ordine dei valori deve corrispondere all'ordine delle colonne nella definizione della tabella.
Specificare valori per colonne specifiche:
INSERT INTO nome_tabella (colonna1, colonna2, colonna3, ...) VALUES (valore1, valore2, valore3, ...);Questo è generalmente preferito perché è più leggibile e meno soggetto a errori se la struttura della tabella cambia.
Esempio di INSERT
Usando la nostra tabella products:
-- Inserimento valori per tutte le colonne (supponendo AUTO_INCREMENT per product_id)
INSERT INTO products (product_name, category, price, stock_quantity)
VALUES ('Laptop Pro', 'Elettronica', 1200.50, 50);
-- Inserimento valori per colonne specifiche
INSERT INTO products (product_name, price)
VALUES ('Tastiera Meccanica', 75.99);
-- Inserimento di più righe contemporaneamente
INSERT INTO products (product_name, category, price, stock_quantity)
VALUES
('Mouse Ergonomico', 'Elettronica', 25.00, 120),
('Lampada da Scrivania', 'Articoli per la Casa', 45.00, 75);
Comando SELECT: Recuperare Dati
Il comando SELECT è il pilastro del recupero dei dati. Ti permette di interrogare il tuo database e ottenere dati specifici basati su vari criteri.
Sintassi di SELECT
SELECT colonna1, colonna2, ...
FROM nome_tabella
WHERE condizione
ORDER BY nome_colonna [ASC|DESC]
LIMIT numero;
colonna1, colonna2, ...: Le colonne che vuoi recuperare. Usa*per selezionare tutte le colonne.FROM nome_tabella: La tabella che stai interrogando.WHERE condizione: (Opzionale) Filtra le righe in base a una condizione specificata. Le condizioni possono coinvolgere operatori di confronto (=,!=,>,<,>=,<=), operatori logici (AND,OR,NOT) e corrispondenza di modelli (LIKE).ORDER BY nome_colonna [ASC|DESC]: (Opzionale) Ordina il set di risultati per una o più colonne.ASCper ascendente (predefinito),DESCper discendente.LIMIT numero: (Opzionale) Limita il numero di righe restituite.
Esempi di SELECT
-- Seleziona tutte le colonne per tutti i prodotti
SELECT *
FROM products;
-- Seleziona solo il nome e il prezzo dei prodotti
SELECT product_name, price
FROM products;
-- Seleziona i prodotti nella categoria 'Elettronica'
SELECT *
FROM products
WHERE category = 'Elettronica';
-- Seleziona i prodotti con un prezzo maggiore di 100, ordinati per prezzo decrescente
SELECT product_name, price
FROM products
WHERE price > 100
ORDER BY price DESC;
-- Seleziona i primi 5 prodotti più costosi
SELECT product_name, price
FROM products
ORDER BY price DESC
LIMIT 5;
-- Seleziona i prodotti il cui nome inizia con 'L'
SELECT *
FROM products
WHERE product_name LIKE 'L%';
Comando UPDATE: Modificare Dati Esistenti
Il comando UPDATE ti permette di cambiare record esistenti in una tabella.
Sintassi di UPDATE
UPDATE nome_tabella
SET colonna1 = valore1, colonna2 = valore2, ...
WHERE condizione;
nome_tabella: La tabella contenente i record da aggiornare.SET colonna1 = valore1, ...: Specifica quali colonne aggiornare e i loro nuovi valori.WHERE condizione: Fondamentale! Questa clausola determina quali righe verranno aggiornate. Se omessa, tutte le righe nella tabella verranno aggiornate.
Esempi di UPDATE
-- Aumenta il prezzo del 'Laptop Pro' di 50
UPDATE products
SET price = price + 50.00
WHERE product_name = 'Laptop Pro';
-- Aggiorna la categoria e la giacenza per la 'Tastiera Meccanica'
UPDATE products
SET category = 'Accessori', stock_quantity = 100
WHERE product_name = 'Tastiera Meccanica';
-- **ATTENZIONE**: Questo aggiornerebbe il prezzo di TUTTI i prodotti a 10.00
-- UPDATE products
-- SET price = 10.00;
Suggerimento: Usa sempre una clausola WHERE quando aggiorni per assicurarti di modificare solo i record desiderati. Testa la tua clausola WHERE con un'istruzione SELECT prima per verificare che punti alle righe corrette.
Comando DELETE: Rimuovere Dati
Il comando DELETE è usato per rimuovere righe da una tabella.
Sintassi di DELETE
DELETE FROM nome_tabella
WHERE condizione;
nome_tabella: La tabella da cui rimuovere le righe.WHERE condizione: Fondamentale! Questa clausola specifica quali righe eliminare. Se omessa, tutte le righe nella tabella verranno eliminate.
Esempi di DELETE
-- Elimina il prodotto con il nome 'Lampada da Scrivania'
DELETE FROM products
WHERE product_name = 'Lampada da Scrivania';
-- Elimina tutti i prodotti che sono esauriti (stock_quantity è 0)
DELETE FROM products
WHERE stock_quantity = 0;
-- **ATTENZIONE**: Questo eliminerebbe TUTTI i record dalla tabella 'products'!
-- DELETE FROM products;
Avvertenza: Simile a UPDATE, omettere la clausola WHERE in un'istruzione DELETE è un'operazione distruttiva che rimuoverà tutti i dati dalla tabella. Usala con estrema cautela.
Concetto Chiave
Comprendere e usare efficacemente i comandi DDL e DML è fondamentale per la gestione del database. CREATE TABLE ti permette di definire la struttura dei tuoi dati, mentre INSERT, SELECT, UPDATE e DELETE ti consentono di popolare, interrogare, modificare e gestire quei dati.
Praticando questi comandi con chiare clausole WHERE, specialmente per UPDATE e DELETE, puoi costruire una solida base per lavorare con database MySQL e garantire l'integrità e l'accuratezza dei tuoi dati. Ricorda sempre di eseguire il backup dei tuoi dati prima di eseguire operazioni potenzialmente distruttive.