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;