02. Comandi di DML
Per una descrizione esaustiva dei comandi fare riferimento al sito w3schools.com
STATEMENT SQL
SELECT
Descrizione:
Il comando è usato per selezionare dati da un database. I dati restituiti sono organizzati in una tabella detta result-set.
Sintassi:
SELECT column1, column2, ... FROM table_name;
SELECT * FROM table_name;
Esempi:
SELECT CustomerName, City FROM Customers;
SELECT * FROM Customers;
SELECT DISTINCT
Descrizione:
Il comando è utilizzato per ottenere risultati tutti distinti, cioè senza ripetizioni.
Sintassi:
SELECT DISTINCT column1, column2, ... FROM table_name;
Esempi:
SELECT DISTINCT Country FROM Customers;
INSERT INTO
Descrizione:
Inserisce un nuovo record in una tabella.
Sintassi:
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
INSERT INTO table_name VALUES (value1, value2, value3, ...);
Esempi:
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country) VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway');
UPDATE
Descrizione:
Aggiorna i record di una tabella.
Sintassi:
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
(se si omette la clausola WHERE tutti i record della tabella sono aggiornati)
Esempi:
UPDATE Customers SET ContactName = 'Alfred Schmidt', City= 'Frankfurt' WHERE CustomerID = 1;
DELETE
Descrizione:
Cancella i record di una tabella.
Sintassi:
DELETE FROM table_name WHERE condition;
(se si omette la clausola WHERE tutti i record della tabella sono cancellati)
Esempi:
DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste';
CLAUSOLE SQL
WHERE
Descrizione:
E' usata per filtrare i record che rispettano una certa condizione.
Sintassi:
La clausola è utilizzata in modo analogo nei comandi SELECT, UPDATE, DELETE etc.
SELECT column1, column2, ... FROM table_name WHERE condition;
Esempi:
SELECT * FROM Customers WHERE Country='Mexico';
TOP E LIMIT
Descrizione:
La clausola TOP è usata per indicare il numero massimo di record che devono essere restituiti da una interrogazione. Normalmente è utilizzata quando il numero di record elaborati è molto alto.
Sintassi:
SELECT TOP number column1, column2, ... FROM table_name WHERE condition;
Esempi:
SELECT TOP 3 * FROM Customers;
La clausola TOP è supportata soltanto da alcuni RDBMS. In particolare questa clausola non è gestita dal motore del w3schools né da SQLite.
In questi ambienti lo stesso risultato si ottiene con la clausola LIMIT come di seguito illustrato
SELECT * FROM Customers LIMIT 3;
INNER JOIN
Descrizione:
La clausola di INNER JOIN consente di combinare le righe provenienti da due o più tabelle. Sono selezionati i record delle due tabelle che godono della proprietà di avere un record corrispondente nell'altra tabella.
In questo contesto diciamo che due record in tabelle differenti sono corrispondenti se il valore della chiave esterna dell'uno coincide con il valore della chiave primaria dell'altro.
Sintassi:
SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;
Esempio:
SELECT Orders.OrderID, Customers.CustomerName FROM Orders INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
Una modalità alternativa, detta JOIN implicita, molto usata per ottenere una INNER JOIN è la seguente:
Sintassi:
SELECT column_name(s) FROM table1, table2 WHERE table1.column_name = table2.column_name;
Esempio:
SELECT Orders.OrderID, CustomerName FROM Orders, Customers WHERE Orders.CustomerID = Customers.CustomerID;
OPERATORI SQL
Descrizione:
Consentono di comporre una condizione di filtro.
AND, OR, NOT: sono i consueti operatori logici
=, <, >, <=, >=, <> (o !=): consueti operatori di confronto
IN: consente di specificare valori multipli in una clausola WHERE
NOT IN: consente di escludere i valori multipli specificati in una clausola WHERE
BETWEEN: consente di selezionare i valori compresi tra due valori (gli estremi sono inclusi nella selezione)
Sintassi:
SELECT column1, column2, ... FROM table_name WHERE condition1 AND condition2 AND condition3 ...;
SELECT column1, column2, ... FROM table_name WHERE NOT condition;
SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...);
SELECT column_name(s) FROM table_name WHERE column_name IN (SELECT STATEMENT);
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;
Esempi:
SELECT * FROM Customers WHERE Country IN ('Germany', 'France', 'UK');
SELECT * FROM Customers WHERE Country IN (SELECT Country FROM Suppliers);
SELECT * FROM Products WHERE Price BETWEEN 10 AND 20;
FUNZIONI SQL
MIN() e MAX()
Descrizione:
Consentono di selezionare il più piccolo o il più grande valore di una colonna.
Sintassi:
SELECT MIN(column_name) FROM table_name WHERE condition;
Esempi:
SELECT MIN(Price) FROM Products;
COUNT(), AVG() e SUM()
Descrizione:
Rispettivamente consentono di:
contare il numero di record selezionati
calcolare la media dei valori selezionati
sommare i valori selezionati.
Sintassi:
SELECT COUNT(column_name) FROM table_name WHERE condition;
Esempi:
SELECT COUNT(ProductID) FROM Products;
Sito: 7ecnologie
Sezione: 12. SQL
Capitolo: 02. Comandi di DML
Indice dei capitoli: 00. Risorse - 01. Generalità - 02. Comandi di DML - 03. Comandi di DDL - 04. Comandi di DCL - 05. Comandi di TCL - 06. SQLite - 07. Tutorial - 98. Esercizi
Indice dei paragrafi: 01. Esempi di Query - 02. Esempi di Insert/Update/Delete