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’
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.
Indica la tabella o le tabelle in cui deve operare il comando Select.
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
Raggruppa le righe con lo stesso valore indicate nella clausola.
SELECT Dipartimento, SUM(Stipendio)
FROM Impiegati
GROUP BY Dipartimento;
Da delle condizioni ai gruppi creati con Group by:
SELECT Dipartimento, SUM(Stipendio)
FROM Impiegati
GROUP BY Dipartimento;
HAVING SUM(stipendio)>1000
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;
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) );
Definisce la chiave primaria.
Rende il campo obbligatorio.
Definisce il valore predefinito per il campo.
Definisce la chiave esterna e l’integrità referenziale con la tabella indicata (es. RepartoMag)
Vieta la presenza di dupplicati in una colonna o più.
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;
Una tabella può essere eliminata con il comando:
DROP TABLE Impiegati;
La creazione di un indice abbinato al comando Unique facilita la ricerca dei records.
CREATE UNIQUE INDEX IndiceImpiegati
ON impiegati(Cognome, Nome);
Si possono inserire, modificare e cancellare dei record nella tabella con i seguenti comandi:
INSERT INTO impiegati
(ID, Nome, Cognome)
VALUES (20, ;Mario, Rossi);
UPDATE Impiegati
SET Cognome = ‘Rossi’, Nome = ‘Mario’
WHERE ID = 20
L’istruzione SET aggiorna i dati e WHERE indica quali dati modificare.
DELETE FROM Impiegati
WHERE Nome = ‘Marco’
Cancella i record con il nome ‘Marco’.
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.
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 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
WHERE Stipendio BETWEEN 3000 AND 45000
Controlla i valori della colonna e seleziona quelli che appartengono alla lista.
WHERE Città IN (‘Verona’, ‘Milano’, ‘Genova’)
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%’
WHERE Cognome IS (NOT) NULL
Le interrogazioni sono importanti per stabilire delle selezioni con campi calcolati.
SELECT Nome, Cognome
FROM Impiegati
WHERE Stipendio > (SELECT AVG (Stipendio) FROM impiegati);