Structured Query Language - SQL un linguaggio di definizione e manipolazione dei dati - PowerPoint PPT Presentation

1 / 27
About This Presentation
Title:

Structured Query Language - SQL un linguaggio di definizione e manipolazione dei dati

Description:

Structured Query Language - SQL un linguaggio di definizione e manipolazione dei dati Esercitazioni del Corso di Sistemi Informativi Marina Mongiello – PowerPoint PPT presentation

Number of Views:183
Avg rating:3.0/5.0
Slides: 28
Provided by: polib150
Category:

less

Transcript and Presenter's Notes

Title: Structured Query Language - SQL un linguaggio di definizione e manipolazione dei dati


1
Structured Query Language - SQL un linguaggio di
definizione e manipolazione dei dati
  • Esercitazioni del Corso di Sistemi Informativi
  • Marina Mongiello

2
SQL come standard
  • Varie versioni con successivi miglioramenti
  • SQL-1 o SQL-89
  • SQL-2 o SQL-92 (entry, intermediate e full)
  • SQL-3?

3
La struttura base della query
  • Linterrogazione è specificata in maniera
    dichiarativa si specifica non il modo in cui
    linterrogazione deve essere eseguita, ma le
    caratteristiche del risultato che deve fornire.
  • Query semplici
  • Select AttrExpr as Alias, AttrExpr as
    Alias
  • From TableName as Alias, TableName as
    Alias
  • Where condition
  • Le tre parti componenti vengono chiamate target
    list, from clause e where clause

4
  • Ciascun attributo e tabella può essere
    ridenominato mediante un alias.

Select nome as nome_di _battesimo From
Impiegati Where cognomeDe Paperis
Select From Impiegati
Cosa restituisce??
Rappresenta tutti gli attributi delle tabelle
presenti nella clausola from, evitando di
elencarli
Select From Impiegati Where cognomeDe
Paperis AND nomePippo
Largomento della clausola where si basa su
condizioni composte tramite operatori logici da
predicati semplici
Select From Impiegati Where cognomeDe Paperis
5
Query SQL in ACCESS
  • In applicazioni sviluppate con ACCESS, le query
    possono essere create
  • mediante la griglia di struttura grafica QBE
    (query by example)
  • mediante la specifica in SQL

6
(No Transcript)
7
Esempi di query in SQL
  • Di seguito riportiamo alcuni esempi di query in
    linguaggio SQL facendo riferimento al database di
    esempio northwind presente nellapplicazione
    Microsoft Access di cui riportiamo il diagramma
    delle relazioni

8
(No Transcript)
9
Esempio 1 Query di Selezione
Si vuole determinare il nome e il cognome degli
impiegati nati dopo il 1/1/60 e assunti dopo il
3/5/93
SELECT Impiegati.Cognome, Impiegati.Nome,
Impiegati.DataNascita, Impiegati.DataAssunzione FR
OM Impiegati WHERE (((Impiegati.DataNascita)gt1/1/1
960) AND ((Impiegati.DataAssunzione)gt5/3/1993))
SELECT Impiegati.Cognome, Impiegati.Nome,
Impiegati.DataNascita, Impiegati.DataAssunzione FR
OM Impiegati WHERE (((Impiegati.DataNascita)gt1/1/1
960) AND ((Impiegati.DataAssunzione)gt5/3/1993))
10
Griglia di struttura corrispondente allesempio 1
11
Codice SQL corrispondente allesempio 1
12
Operatori aggregati
  • In SQL è possibile utilizzare operatori per
    valutare delle proprietà su insiemi di tuple
  • count ( lt distinct all
    ListaAttributigt)
  • lt sum max min avg gt ( distinct all
    ListaAttributi )

Effettua unoperazione di conteggio
Distinct elimina i duplicati All trascura solo i
valori nulli
Corrispondono alla somma, massimo, minimo, media
13
Esempio 2Query con operatori aggregati
  • Determinare il numero di prodotti disponibili

SELECT Count(Prodotti.IDProdotto) AS
ConteggioDiIDProdotto FROM Prodotti
14
Query con raggruppamento
  • E possibile dividere la tabella risultante da
    una query con operatori aggregati in
    sottoinsiemi, raggruppando le righe che
    contengono gli stessi valori per un insieme di
    attributi.

SELECT count() AS nomeAlias FROM
nomeTabella group by nomeAttributo
Operatore di raggruppamento
15
Esempio 3Query con raggruppamento
Si vogliono determinare i prodotti con prezzo
mediamente maggiore di 100
  • SELECT Prodotti.NomeProdotto, Avg(Prodotti.PrezzoU
    nitario) AS MediaDiPrezzoUnitario
  • FROM Prodotti
  • GROUP BY Prodotti.NomeProdotto
  • HAVING (((Avg(Prodotti.PrezzoUnitario))gt100))

16
Esempio 4Query con raggruppamento
Determinare i fornitori a cui sia stata ordinata
merce in quantità minore di 10 pezzi
  • SELECT Prodotti.IDFornitore, Prodotti.QuantitàOrdi
    nata, Avg(Prodotti.Scorte) AS MediaDiScorte
  • FROM Prodotti
  • GROUP BY Prodotti.IDFornitore, Prodotti.QuantitàOr
    dinata
  • HAVING (((Prodotti.QuantitàOrdinata)lt10))

17
Tipi di Join
  • Join interno
  • produce un risultato nel quale le righe sono
    tutte e sole quelle ottenibili dalle righe delle
    due tabelle di origine, in cui i valori delle
    colonne in comune sono uguali
  • Join esterno
  • esterno sinistro ( rispettivamente destro)
  • include tutti i record della tabella di sinistra
    (rispettivamente di destra) anche se non esistono
    valori corrispondenti ai record nella tabella
    di destra (rispettivamente di sinistra)

18
E possibile determinare il tipo di join esterno
dalle proprietà del join
19
Esempio 5Query di Selezione
Si vuole determinare il prezzo massimo dei
prodotti forniti dalla società Tokyo traders.
SELECT Max(PrezzoUnitario) AS Espr1 FROM
Fornitori INNER JOIN Prodotti ON
Fornitori.IDFornitore Prodotti.IDFornitore WHERE
(((Fornitori.NomeSocietà)"Tokyo Traders"))
20
Query nidificate
  • Largomento della clausola where puo essere a
    sua volta il risultato dellesecuzione di una
    interrogazione. Si assume che lespressione che
    compare nel confronto sia rappresentata dal nome
    di un attributo
  • E possibile in tal caso usare gli operatori di
    confronto ,lt,gt,gt,lt.

21
Esempio 6 Query nidificate
Determinare i prodotti al di sopra del prezzo
medio
  • SELECT Prodotti.NomeProdotto, Prodotti.PrezzoUnita
    rio
  • FROM Prodotti
  • WHERE (((Prodotti.PrezzoUnitario)gt(SELECT
    AVG(PrezzoUnitario) From Prodotti)))
  • ORDER BY Prodotti.PrezzoUnitario DESC

22
Query di inserimento
  • Possono essere inserite singole righe allinterno
    delle tabelle
  • insert into Nometabella Lista Attributi ltvalues
    (ListadiValori SelctSQL)gt
  • Oppure insiemi di righe come risultato di una
    precedente selezione

23
Esempi 7,8Inserimento di righe
INSERT INTO Prodotti ( NomeProdotto,
PrezzoUnitario ) values (NuovoProdotto,10)
  • INSERT INTO Prodotti ( NomeProdotto,
    PrezzoUnitario )
  • SELECT Prodotti.IDCategoria, Prodotti.PrezzoUnitar
    io
  • FROM Prodotti
  • WHERE (((Prodotti.IDCategoria)1) AND
    ((Prodotti.PrezzoUnitario)gt10))

24
Aggiornamento di righe
  • E possibile agiornare una o piu righe mediante
    il comando update che presenta la seguente
    sintassi
  • update NomeTabella set Attributo ltEspressione
    SelectSQL nulldefaultgt,Attributo ltEspressione
    SelectSQL nulldefault) where Condizione

25
Esempio 9Aggiornamento di righe
  • UPDATE Prodotti SET Prodotti.PrezzoUnitario 20
  • WHERE (((Prodotti.PrezzoUnitario)0))

26
Cancellazione di righe
  • La cancellazione di righe dalle tabella è
    effettuata dal comando delete, la cui sintassi è
    la seguente
  • delete from NomeTabella where condizione

27
Esempio 10Cancellazione di righe
  • DELETE Prodotti.NomeProdotto,
  • FROM Prodotti
  • WHERE (((Prodotti.NomeProdotto)NuovoProdotto"))
Write a Comment
User Comments (0)
About PowerShow.com