I comandi principali

Il comando Select e i sucessivi sono molto importanti e vanno scritti nel codice nello stesso ordine riportato qui sotto.

SELECT Codice, Nome AS Soprannome, Stipendio*12 AS PagaAnnuale

FROM Impiegati

WHERE Reparto = ‘Mag’

 

Select

Affianco al questo comando vengono indicate le colonne che si vogliono visualizzare. L’asterisco (*) seleziona tutte le colonne indicate nel comando FROM. Il comando DISTINCT posto tra Select e il nome della colonna toglie tutte le righe doppie della colonna. Il comando AS cambia il nome di visualizzazione della colonna, si possono anche inserire delle colonne calcolate scrivendo l’operazione e dandogli un nome con AS.

From

Indica la tabella o le tabelle in cui deve operare il comando Select.

Where

Indica la condizione logica con cui vengon filtrate le colonne. Tra parentesi quadre [] si può indicare un parametro da chiedere prima della selezione. Nel caso vi siano due o più tabelle selezionate le si può mettere in relazione indicando in un’eguaglianza i campi voluti.

WHERE CodiceNome = Codice

Group by

Raggruppa le righe con lo stesso valore indicate nella clausola.

SELECT Dipartimento, SUM(Stipendio)

FROM Impiegati

GROUP BY Dipartimento;

Having

Da delle condizioni ai gruppi creati con Group by:

SELECT Dipartimento, SUM(Stipendio)

FROM Impiegati

GROUP BY Dipartimento;

HAVING SUM(stipendio)>1000

Order by

Ordina i record della colonna indicata, se si vuole un ordinamento decrescente si scrive DESC dopo il nome della colonna.Anzichè il nome della colonna si può indicare il numero corrispondente nel comando Select.

ORDER BY stipendio DESC, Cognome;

Tabelle

Creazione

Con il comando CREATE TABLE si possono creare delle tabelle e definire dei campi, questo comando va eseguito nelle Query. Le istruzioni che seguono definiscono le proprietà dei campi.

CREATE TABLE Impiegati

 (ID smallint Primari key,

Cognome char(30) not null,

Città char(20) default ‘Verona’,

Stipendio decimal(9,2),

Reparto char(4) references RepartoMag(codice) );

Primary key

Definisce la chiave primaria.

Not null

Rende il campo obbligatorio.

Default

Definisce il valore predefinito per il campo.

References

Definisce la chiave esterna e l’integrità referenziale con la tabella indicata (es. RepartoMag)

Unique

Vieta la presenza di dupplicati in una colonna o più.

Modifica

Una tabella può essere modificata aggiungendo (ADD) o togliendo (DROP) delle colonne, con il comando ALTER TABLE.

ALTER TABLE Impiegati

ADD Cognome char(29);

Oppure

DROP Cognome;

Eliminazione

Una tabella può essere eliminata con il comando:

DROP TABLE Impiegati;

Creazione indice

La creazione di un indice abbinato al comando Unique facilita la ricerca dei records.

CREATE UNIQUE INDEX IndiceImpiegati

ON impiegati(Cognome, Nome);

Dati

Si possono inserire, modificare e cancellare dei record nella tabella con i seguenti comandi:

Insert

INSERT INTO impiegati

(ID, Nome, Cognome)

VALUES (20, ;Mario, Rossi);

Update

UPDATE Impiegati

SET Cognome = ‘Rossi’, Nome = ‘Mario’

WHERE ID = 20

L’istruzione SET aggiorna i dati e WHERE indica quali dati modificare.

Delete

DELETE FROM Impiegati

WHERE Nome = ‘Marco’

Cancella i record con il nome ‘Marco’.

Join

LEFT JOIN…ON seleziona tutti i record della tabella di sinistra, in questo caso la tabella Impiegati.

SELECT Impiegati.Nome, Dipartimento.Descrizione

FROM Impiegati LEFT JOIN Dipartimento

            ON Dipartimento.codice = Impiegati.Dipartimento;

 

RIGHT JOIN…ON seleziona tutti i record della tabella di destra, Dipartimento.

SELECT Impiegati.Nome, Dipartimento.Descrizione

FROM Impiegati RIGHT JOIN Dipartimento

            ON Dipartimento.codice = Impiegati.Dipartimento;

 

Nel caso si vogliano visualizzare sia tutti i records delle due tabelle bisogna unire i codici precedenti con il comando UNION.

Funzioni di aggregazione

All’interno del comando Select si possono fare alcuni calcoli di aggregazione sulle colonne.

COUNT: Conta i record della colonna selezionata.

SELECT COUNT (Nome)

FROM Impiegati;

 

SUM: Somma tutti i record della colonna, in questo caso quelli con Nome maggiore di M.

SELECT SUM(Stipendio)

FROM impiegati

WHERE Nome > ‘M’;

 

AVG: calcola la media.

SELECT AVG(Stipendio)

FROM impiegati, Dipartimento

WHERE Nome > ‘M’ and Dipartimento = codice;

 

MIN e MAX calcolano il valore minimo e quello massimo.

Query

Query di creazione tabella: Alla fine del comando Select si scrive INTO e il nome della nuova Tabella.

SELECT Codice, Nome AS Soprannome INTO Magazzino

FROM Impiegati

WHERE Reparto = ‘Mag’;

 

Query di accodamento: si aggiunge una riga prima del comando Select dove con INSERT INTO si indica dove si vuole accodare la tabella risultante.

INSERT INTO Magazzino (Codice, Nome)

SELECT Codice, Nome AS Soprannome

FROM Impiegati

WHERE Reparto = ‘Mag’;

 

Query di aggiornamento: si usa il comando per modificare i dati UPDATE.

UPDATE Impiegati

SET Cognome = ‘Rossi’, Nome = ‘Mario’

WHERE ID = 20

 

Query per selezionare i valori più alti o più bassi.

SELECT TOP 5 Codice, Nome

FROM Impiegati

WHERE Reparto = ‘Mag’;

ORDER BY Nome

Condizioni di Ricerca

Between

WHERE Stipendio BETWEEN 3000 AND 45000

In

Controlla i valori della colonna e seleziona quelli che appartengono alla lista.

WHERE Città IN (‘Verona’, ‘Milano’, ‘Genova’)

Like

Controlla il valore di un campo, ( _ ) indica un solo carattere qualsiasi, mentre ( % ) indica zero o più caratteri. Es. LIKE ‘abd%’ o ‘%abc’ o ‘%abc%’ o ‘_abc’

WHERE Cognome LIKE ‘R%’

Is Null

WHERE Cognome IS (NOT) NULL

Interrogazioni nidificate

Le interrogazioni sono importanti per stabilire delle selezioni con campi calcolati.

SELECT Nome, Cognome

FROM Impiegati

WHERE Stipendio > (SELECT AVG (Stipendio) FROM impiegati);