Esercitazioni del Corso di Sistemi Informativi Marina Mongiello

Slides:



Advertisements
Presentazioni simili
Interrogazioni Semplici Le operazioni di interrogazione vengono specificate per mezzo dellistruzione select select ListaAttributi from ListaTabelle [where.
Advertisements

TIPI STANDARD DI SQL BOOLEAN Valori: vero, falso CHAR(n)
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
1 Comandi per la manipolazione dei dati. 2 Tipi di comandi INSERT UPDATE DELETE COMANDI COMANDI 2.
Query OQL e XQUERY a confronto
SQL92 e XQuery1.0 a confronto1 SQL92 E XQUERY1.0 A CONFRONTO Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria - Sede di Modena Corso.
Biglietti e Ritardi: schema E/R
DML – Data Manipulation Language
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
SQL.
SQL Structured Query Language
19/01/2014 Viste. 19/01/2014 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni.
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) SQL: Data Manipulation Language (DML) Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi,
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
Basi di dati Università Degli Studi Parthenope di Napoli
SQL: Lezione 7 Nataliya Rassadko
SQL Per la modifica di basi di dati
Esercitazione.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Vincoli di integrità generici Con i costrutti visti sinora, non è sempre possibile definire tutti i possibili vincoli di integrità. Per questo esiste listruzione.
Manipolazione dei dati I comandi SQL che permettono di modificare il contenuto di una base di dati sono insertdeleteupdate insert ha la seguente sintassi:
SELECT STATEMENT Clausola WHERE permette di limitare il numero di record da estrarre SELECT */ [DISTINCT] colonna/ espressione [alias],… FROM table [WHERE.
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
SQL basato su ANSI (American National Standards Institute) – standard SQL SQL – Structured Query Language è un linguaggio dichiarativo e permette di comunicare.
In questa lezione Introduzione La query di selezione
Basi di dati Claudia Raibulet
SQL: Structured Query Language
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL OPERATORI INSIEMISTICI IN SQL Siano due tabelle: GiochiSolitari(CodiceGioco, NomeGioco, PrezzoGioco)
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Manipolazione dei dati
Realizzato da Roberto Savino
sql: esempi di linguaggio sql nell'implementazione mysql
1 Il Linguaggio SQL Il Linguaggio SQL Prof. Lorenzo Vita, Ing. Luigi Testa.
Basi di Dati e Sistemi Informativi
SQL.
BIOINFO3 - Lezione 51 INSERIMENTO DEI DATI Visto come si creano le tabelle (sinora tristemente vuote), cominciamo ad occuparci di come riempirle con dei.
DATABASE Introduzione
Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione.
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
SQL Interrogazioni. 2 Interrogazioni in SQL Non esiste un SQL standard (vari dialetti) Formulazione di interrogazioni (query) è parte del Data Manipulation.
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti SQL :Structured Query Language: SELECT (IV) SQL (Slide tratte in parte da da Atzeni, Ceri,
Pagine ASP parte 3 I data base Stefano Schacherl.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
SQL, esempi 30/10/2014Basi di dati SQL1. 30/10/2014Basi di dati SQL2 CREATE TABLE, esempi CREATE TABLE corsi( codice numeric NOT NULL PRIMARY KEY, titolo.
Algebra relazionale (III). Esempi di Interrogazioni: 3 Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di Tutti gli impiegati?
IV D Mercurio DB Lezione 2
Raggruppamento in SQL Esempio di raggruppamento
Microsoft Access Query (III).
1 Basi di Dati S tructured Q uery L anguage Appunti Matteo Longhi.
Interrogazioni (parte 2)
Database Elaborato da: Claudio Ciavarella & Marco Salvati.
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti SQL :Structured Query Language: SELECT (III) SQL (Slide tratte in parte da da Atzeni, Ceri,
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
Vincoli interrelazionali
Raggruppamenti e target list scorretta select padre, avg(f.reddito), p.reddito from persone f join paternita on figlio = nome join persone p on padre =
Lezione 6 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato.
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Approfondimenti SQL.
Basi di Dati e Sistemi Informativi Esercitazione: Il Linguaggio SQL (DDL+DML) Home page del corso:
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
SQL Linguaggio per l’interrogazione di una base dati.
Access Breve introduzione. Componenti E’ possibile utilizzare Access per gestire tutte le informazioni in un unico file. In un file di database di Access.
E. Tinelli SQL come linguaggio di manipolazione dei dati 1 DML – Data Manipulation Language.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
Esercizi SQL Group by. CREATE TABLE dipendente (codDip CHAR(8) NOT NULL UNIQUE PRIMARY KEY, cognome CHAR(60) NOT NULL, nome CHAR(60) NOT NULL, stipendio.
Transcript della presentazione:

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

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

La struttura base della query L’interrogazione è specificata in maniera dichiarativa: si specifica non il modo in cui l’interrogazione 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

Ciascun attributo e tabella può essere ridenominato mediante un alias. Select nome as nome_di _battesimo From Impiegati Where cognome=‘De Paperis’ Select * From Impiegati Cosa restituisce?? * Rappresenta tutti gli attributi delle tabelle presenti nella clausola from, evitando di elencarli Select * From Impiegati Where cognome=‘De Paperis’ AND nome=‘Pippo’ L’argomento della clausola where si basa su condizioni composte tramite operatori logici da predicati semplici Select * From Impiegati Where cognome=‘De Paperis’

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

Esempi di query in SQL Di seguito riportiamo alcuni esempi di query in linguaggio SQL facendo riferimento al database di esempio “northwind” presente nell’applicazione Microsoft Access di cui riportiamo il diagramma delle relazioni

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 FROM Impiegati WHERE (((Impiegati.DataNascita)>1/1/1960) AND ((Impiegati.DataAssunzione)>5/3/1993)); SELECT Impiegati.Cognome, Impiegati.Nome, Impiegati.DataNascita, Impiegati.DataAssunzione FROM Impiegati WHERE (((Impiegati.DataNascita)>1/1/1960) AND ((Impiegati.DataAssunzione)>5/3/1993));

Griglia di struttura corrispondente all’esempio 1

Codice SQL corrispondente all’esempio 1

Operatori aggregati In SQL è possibile utilizzare operatori per valutare delle proprietà su insiemi di tuple count ( < * | [ distinct | all ] ListaAttributi>) < sum | max | min | avg > ( [ distinct | all ] ListaAttributi ) Effettua un’operazione di conteggio Distinct elimina i duplicati All trascura solo i valori nulli Corrispondono alla somma, massimo, minimo, media

Esempio 2 Query con operatori aggregati Determinare il numero di prodotti disponibili SELECT Count(Prodotti.IDProdotto) AS ConteggioDiIDProdotto FROM Prodotti;

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

Esempio 3 Query con raggruppamento Si vogliono determinare i prodotti con prezzo mediamente maggiore di 100 SELECT Prodotti.NomeProdotto, Avg(Prodotti.PrezzoUnitario) AS MediaDiPrezzoUnitario FROM Prodotti GROUP BY Prodotti.NomeProdotto HAVING (((Avg(Prodotti.PrezzoUnitario))>100));

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

Tipi di Join Join interno: Join esterno: 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)

E’ possibile determinare il tipo di join esterno dalle proprietà del join

Esempio 5 Query 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"));

Query nidificate L’argomento della clausola where puo’ essere a sua volta il risultato dell’esecuzione di una interrogazione. Si assume che l’espressione che compare nel confronto sia rappresentata dal nome di un attributo E’ possibile in tal caso usare gli operatori di confronto =,<,>,>=,<=.

Esempio 6 Query nidificate Determinare i prodotti al di sopra del prezzo medio SELECT Prodotti.NomeProdotto, Prodotti.PrezzoUnitario FROM Prodotti WHERE (((Prodotti.PrezzoUnitario)>(SELECT AVG([PrezzoUnitario]) From Prodotti))) ORDER BY Prodotti.PrezzoUnitario DESC;

Query di inserimento Possono essere inserite singole righe all’interno delle tabelle: insert into Nometabella [Lista Attributi] <values (ListadiValori SelctSQL)> Oppure insiemi di righe come risultato di una precedente selezione

Esempi 7,8: Inserimento di righe INSERT INTO Prodotti ( NomeProdotto, PrezzoUnitario ) values (‘NuovoProdotto’,10) INSERT INTO Prodotti ( NomeProdotto, PrezzoUnitario ) SELECT Prodotti.IDCategoria, Prodotti.PrezzoUnitario FROM Prodotti WHERE (((Prodotti.IDCategoria)=1) AND ((Prodotti.PrezzoUnitario)>10));

Aggiornamento di righe E’ possibile agiornare una o piu’ righe mediante il comando update che presenta la seguente sintassi: update NomeTabella set Attributo = <Espressione | SelectSQL |null|default>{,Attributo =<Espressione |SelectSQL |null|default)} [where Condizione]

Esempio 9 Aggiornamento di righe UPDATE Prodotti SET Prodotti.PrezzoUnitario = 20 WHERE (((Prodotti.PrezzoUnitario)=0));

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

Esempio 10 Cancellazione di righe DELETE Prodotti.NomeProdotto, * FROM Prodotti WHERE (((Prodotti.NomeProdotto)=”NuovoProdotto"));