Sei sulla pagina 1di 4

SQLCOMANDIPRINCIPALI

1.0 SELECT
SELECTCodice,NomeASSoprannome,Stipendio*12ASPagaAnnuale
FROMImpiegati
WHEREReparto=Mag
Affiancoalquestocomandovengonoindicate
lecolonnechesivoglionovisualizzare.Lasterisco(*)selezionatuttelecolonneindicatenelcomandoFROM.
IlcomandoDISTINCTpostotraSelecteilnomedellacolonnatoglietuttelerighedoppiedellacolonna.
IlcomandoAS
cambiailnomedivisualizzazionedellacolonna,sipossonoancheinseriredellecolonnecalcolatescrivendoloperazi
oneedandogliunnomeconAS.

1.0.1From
IndicalatabellaoletabelleincuideveoperareilcomandoSelect.

1.0.2Where

Indicalacondizionelogicaconcuivengonfiltrate
lecolonne.Traparentesiquadre[]sipuindicareunparametrodachiedereprimadellaselezione.Nelcasovisianod
ueopitabelleselezionatelesipumettereinrelazioneindicandoinuneguaglianzaicampivoluti.
WHERECodiceNome=Codice

1.0.3Groupby
Raggruppalerigheconlostessovaloreindicatenellaclausola.
SELECTDipartimento,SUM(Stipendio)
FROMImpiegati
GROUPBYDipartimento;

1.0.4Having
DadellecondizioniaigruppicreaticonGroupby:
SELECTDipartimento,SUM(Stipendio)
FROMImpiegati
GROUPBYDipartimento;
HAVINGSUM(stipendio)>1000

1.0.5Orderby

Ordinairecorddellacolonnaindicata,
sesivuoleunordinamentodecrescentesiscriveDESCdopoilnomedellacolonna.Anzichilnomedellacolonnasip
uindicareilnumerocorrispondentenelcomandoSelect.
ORDERBYstipendioDESC,Cognome;

2.0TABELLE
2.0.1Creazione

ConilcomandoCREATE
TABLEsipossonocrearedelletabelleedefiniredeicampi,questocomandovaeseguitonelleQuery.
Leistruzionicheseguonodefinisconoleproprietdeicampi.
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) );

2.0.2Primarykey

Definiscelachiaveprimaria.

2.0.3Notnull

Rendeilcampoobbligatorio.

2.0.4Default

Definisceilvalorepredefinitoperilcampo.

2.0.5References

Definiscelachiaveesternaelintegritreferenzialeconlatabellaindicata(es.RepartoMag)

2.0.6Unique

Vietalapresenzadidupplicatiinunacolonnaopi.

2.1.0Modifica

Unatabellapuesseremodificataaggiungendo(ADD)otogliendo(DROP)dellecolonne,conilcomandoALTER
TABLE.
ALTER TABLE Impiegati
ADD Cognome char(29);
Oppure
DROP Cognome;

2.1.1Eliminazione

Unatabellapuessereeliminataconilcomando:
DROP TABLE Impiegati;

2.1.2Creazioneindice

LacreazionediunindiceabbinatoalcomandoUniquefacilitalaricercadeirecords.
CREATE UNIQUE INDEX IndiceImpiegati
ON impiegati(Cognome, Nome);

3.0DATI

Sipossonoinserire,modificareecancellaredeirecordnellatabellaconiseguenticomandi:

3.0.1Insert

INSERT INTO impiegati (ID, Nome, Cognome)


VALUES (20, ;Mario, Rossi);

3.0.2Update

UPDATE Impiegati
SET Cognome = Rossi, Nome = Mario
WHERE ID = 20
ListruzioneSETaggiornaidatieWHEREindicaqualidatimodificare.

3.0.4Delete

DELETE FROM Impiegati


WHERE Nome = Marco
CancellairecordconilnomeMarco.

4.0JOIN

4.1LEFTJOINONselezionatuttiirecorddellatabelladisinistra,inquestocasolatabellaImpiegati.
SELECT Impiegati.Nome, Dipartimento.Descrizione
FROM Impiegati LEFT JOIN Dipartimento
ON Dipartimento.codice = Impiegati.Dipartimento;

4.2RIGHTJOINONselezionatuttiirecorddellatabelladidestra,Dipartimento.
SELECT Impiegati.Nome, Dipartimento.Descrizione
FROM Impiegati RIGHT JOIN Dipartimento
ON Dipartimento.codice = Impiegati.Dipartimento;

Nelcasosivoglianovisualizzaresiatuttiirecordsdelleduetabellebisognaunireicodiciprecedenticonilcomando
UNION.

5.0FUNZIONIDIAGGREGAZIONE

AllinternodelcomandoSelectsipossonofarealcunicalcolidiaggregazionesullecolonne.

5.0.1COUNT:Contairecorddellacolonnaselezionata.
SELECT COUNT (Nome)
FROM Impiegati;

5.0.2SUM:Sommatuttiirecorddellacolonna,inquestocasoquelliconNomemaggiorediM.
SELECT SUM(Stipendio)
FROM impiegati
WHERE Nome > M;

5.0.3AVG:calcolalamedia.
SELECT AVG(Stipendio)
FROM impiegati, Dipartimento
WHERE Nome > M and Dipartimento = codice;

5.0.4MINeMAXcalcolanoilvaloreminimoequellomassimo.

6.0QUERY

6.0.1Querydicreazionetabella:AllafinedelcomandoSelectsiscriveINTOeilnomedellanuovaTabella.
SELECT Codice, Nome AS Soprannome INTO Magazzino
FROM Impiegati
WHERE Reparto = Mag;

6.0.2 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;

6.0.3Querydiaggiornamento:siusailcomandopermodificareidatiUPDATE.
UPDATE Impiegati
SET Cognome = Rossi, Nome = Mario
WHERE ID = 20

6.0.4Queryperselezionareivaloripialtiopibassi.
SELECT TOP 5 Codice, Nome
FROM Impiegati
WHERE Reparto = Mag;
ORDER BY Nome

7.0CONDIZIONIDIRICERCA
7.0.1Between

WHERE Stipendio BETWEEN 3000 AND 45000

7.0.2In

Controllaivaloridellacolonnaeselezionaquellicheappartengonoallalista.
WHERE Citt IN (Verona, Milano, Genova)

7.0.3Like

Controllailvalorediuncampo,(_)indicaunsolocaratterequalsiasi,mentre(%)indicazeroopicaratteri.Es.
LIKE abd% o %abc o %abc% o _abc

WHERE Cognome LIKE R%

7.0.4IsNull

WHERE Cognome IS (NOT) NULL

7.0.5Interrogazioninidificate

Leinterrogazionisonoimportantiperstabiliredelleselezioniconcampicalcolati.
SELECT Nome, Cognome
FROM Impiegati
WHERE Stipendio > (SELECT AVG (Stipendio) FROM impiegati);