Elena Baralis, Claudio Demartini
|
|
- Berta Giordani
- 5 anni fa
- Visualizzazioni
Transcript
1 Basi di dati relazionali Relazionali - Parte I Introduzione Il linguaggio SQL: definizione dei dati manipolazione dei dati 1 2 DB prodotti-fornitori DB prodotti-fornitori S P S# SNAME STATUS CITY Clark S5 Adams Athens P# PNAME COLOR WEIGHT CITY Bolt Green P3 Rome Cam SP S# P# P3 QTY modello relazionale: tabella prodotti tabella fornitori tabella forniture, che mette in relazione prodotti e fornitori che li forniscono chiave primaria: identificatore del record prodotti: P# fornitori: S# forniture: (S#,P#) 3 4 Manipolazione dei dati 5 Esempio: Ricavare i codici e lo stato dei fornitori nella città di Parigi SELECT S#, STATUS FROM S WHERE CITY='Parigi'; Il risultato è una tabella S# STATUS Manipolazione dei dati 6 Formato generale dell'interrogazione: SELECT [DISTINCT] colonna(e) FROM tabella(e) [WHERE predicato] [GROUP BY colonna(e) [HAVING predicato]] [ORDER BY colonna(e)]; Esempio: SELECT P# FROM SP; I duplicati non vengono eliminati P# P3 Basi di dati relazionali - parte I ~1~
2 SELECT con DISTINCT SELECT Eliminazione dei duplicati: SELECT DISTINCT P# FROM SP; Estrazione di tutte le informazioni: SELECT * FROM S; P# P3 Identificatori completamente specificati: SELECT SS#, SNAME, SSTATUS, SCITY FROM S; 7 8 SELECT (cont) Ricerca con Ordinamento Ricerca qualificata: Individuare i numeri dei fornitori di Parigi con stato > SELECT S# FROM S WHERE CITY='' AND STATUS>; S# Ricavare i codici e lo stato dei fornitori di Parigi in ordine decrescente rispetto allo stato: SELECT S#, STATUS FROM S WHERE CITY='' ORDER BY STATUS DESC; S# STATUS nome-colonna[ordine][,nome-colonna [ordine]] 9 JOIN Interrogazione che ricerca un insieme di dati in due o più tabelle Equijoin semplice: Ricavare tutte le combinazioni di informazioni riguardanti fornitori e parti in modo che entrambi appartengano alla stessa città SELECT S*,P* WHERE SCITY=PCITY; Identificatori completamente espressi per evitare ambiguità 11 JOIN Esecuzione del prodotto cartesiano delle tabelle elencate: questo da origine ad una tabella risultante composta da tutte le possibili righe r dove r è la concatenazione di una riga della prima tabella, una della seconda una della ennesima tabella; da tale tabella vengono eliminate tutte le righe che non soddisfano la condizione espressa in WHERE Basi di dati relazionali - parte I ~2~
3 JOIN: Esempio JOIN: Risultato S# SNAME STATUS SCITY P# PNAME COLOR WEIGHT PCITY S# SNAME STATUS SCITY P# PNAME COLOR WEIGHT PCITY S5 Adams Athens P3 Bolt Cam Green Rome Clark Clark Clark Bolt Cam Bolt Cam Green Green 13 JOIN: Osservazioni Il costrutto sintattico indica le due tabelle da collegare e la condizione esprime la connessione tra di esse (città uguali) S# SNAME STATUS CITY P# PNAME COLOR WEIGHT CITY Natural JOIN Natural join: provoca l'eliminazione di una delle due colonne 'CITY' Equivale a: SELECT S#, SNAME, STATUS, SCITY, P#, PNAME, COLOR, WEIGHT WHERE SCITY=PCITY; S# SNAME STATUS CITY P# PNAME COLOR WEIGHT PCITY Theta JOIN Ricava tutte le combinazioni di fornitori e prodotti tali che la città del fornitore segue la città del prodotto in ordine alfabetico: SELECT S*,P* WHERE SCITY>PCITY; Theta JOIN: esempio SELECT S*,P* WHERE SCITY>PCITY; S# SNAME STATUS SCITY P# PNAME COLOR WEIGHT PCITY 18 Basi di dati relazionali - parte I ~3~
4 JOIN con predicati vari JOIN: esempio Ricavare tutte le combinazioni di fornitori e parti in cui i fornitori e le parti relative sono della stessa città, tralasciando i fornitori con stato= S# SNAME STATUS SCITY P# PNAME COLOR WEIGHT PCITY SELECT S*,P* WHERE SCITY=PCITY AND SSTATUS<>; Bolt Cam Bolt Cam Green Green JOIN di 3 tabelle JOIN: campi specifici Ricavare tutte le coppie di nomi di città tali che un fornitore della prima città fornisca una parte immagazzinata nella seconda: SELECT DISTINCT SCITY,PCITY FROM S,SP,P WHERE SS#=SPS# AND SPP#=PP#; Si noti l'uso di DISTINCT SCITY PCITY Rome Individuare tutti i codici dei fornitori combinati in modo tale che la parte ed il fornitore appartengano alla stessa città SELECT SS#,PP# WHERE SCITY=PCITY; S# P# JOIN di una tabella con se stessa Individuare tutte le coppie di fornitori tali che i due fornitori appartengano alla stessa città SELECT FIRSTS#,SECONDS# FROM S FIRST,S SECOND WHERE FIRSTCITY=SECONDCITY AND FIRSTS#<SECONDS#; Questa operazione si basa sul join della tabella S con se stessa (fatta sulle città uguali) La tabella S compare due volte in FROM 23 S# S# Funzioni aggregate COUNT: conta gli elementi in una colonna SUM: somma dei valori in una colonna AVG: media dei valori di una colonna MAX: massimo valore in una colonna MIN: minimo valore in una colonna SUM e AVG agiscono su valori numerici L'argomento della funzione può essere preceduto da DISTINCT COUNT(*) conta le righe di una tabella 24 Basi di dati relazionali - parte I ~4~
5 Funzioni aggregate Funzioni aggregate Esempi: conteggio delle tuple in S: SELECT COUNT(*) FROM S; uso di DISTINCT: SELECT COUNT(DISTINCT S#) FROM SP; numero di forniture del prodotto : SELECT COUNT(*) FROM SP WHERE P#=''; Ricavare la quantità totale di prodotti forniti SELECT SUM(QTY) FROM SP WHERE P#=''; 00 Uso di GROUP BY: calcolare la quantità fornita per ogni prodotto SELECT P#,SUM(QTY) FROM SP GROUP BY P#; P# P HAVING Ricavare i codici delle parti fornite da più di un fornitore SELECT P# FROM SP GROUP BY P# HAVING COUNT(*)>1; P# Having è per Group by ciò che Where è per le righe della tabella Interrogazione con sottointerrogazione Una sottointerrogazione è una interrogazione annidata in un'altra interrogazione Viene introdotta dal predicato IN Prima si valuta l'interrogazione interna, poi quella esterna Esempio: trovare i nomi dei fornitori che forniscono il prodotto WHERE S# IN (SELECT S# FROM SP WHERE P#=''); SNAME Clark Interrogazione con sottointerrogazione La precedente interrogazione è equivalente al seguente join: SELECT SSNAME FROM S,SP WHERE SS#=SPS# AND SPP#='': Per la base di dati dell'esempio, si può anche scrivere l'interrogazione utilizzando un set predefinito: WHERE S# IN ('','','',''); Interrogazioni annidate Trovare i nomi dei fornitori che forniscono almeno un prodotto rosso WHERE S# IN (SELECT S# FROM SP WHERE P# IN (SELECT P# FROM P WHERE COLOR='')); SNAME Clark 29 Basi di dati relazionali - parte I ~5~
6 Interrogazioni annidate Interrogazioni annidate Trovare il codice dei fornitori che operano nella stessa città di '' SELECT S# FROM S WHERE CITY = (SELECT CITY FROM S WHERE S#=''); S# Se è noto a priori che il valore restituito è unico, è possibile usare = o > al posto di IN Ricavare i codici dei fornitori il cui stato è minore del valore massimo attualmente presente nella tabella SELECT S# FROM S WHERE STATUS < (SELECT MAX(STATUS) FROM S); S# Interrogazione con EXISTS Ricavare i nomi dei fornitori che forniscono il prodotto '' WHERE EXISTS (SELECT * FROM SP WHERE S# = SS# AND P# = ''); L'espressione EXISTS (SELECT * FROM ) è vera se e solo se il risultato della SELECT è diverso dall'insieme vuoto 33 Interrogazione con EXISTS Equivalente a: Selezionare i nomi dei fornitori per i quali esiste una fornitura, qualunque essa sia, relativa al prodotto indicato Per valutare il funzionamento: Considerare ogni valore di SNAME a turno e valutare se il test successivo è vero o falso Es SNAME='',(S#=): il set di record di SP, caratterizzati da S#= e P#= è vuoto?, Se no, ciò implica l'esistenza di un record con S#= e P#=, pertanto è uno dei valori da restituire Parafrasando: selezionare i nomi dei fornitori tali che esista una fornitura relativa al prodotto 34 NOT EXISTS NOT IN Ricavare i nomi dei fornitori che non forniscono il prodotto '' Ricavare i nomi dei fornitori che non forniscono il prodotto '' (SELECT * FROM SP WHERE S# = SS# AND P# = ''); SNAME WHERE S# NOT IN (SELECT S# FROM SP WHERE P# = ''); Adams Basi di dati relazionali - parte I ~6~
7 NOT EXISTS NOT EXISTS Trovare i nomi dei fornitori che forniscono tutti i prodotti: (SELECT * FROM P (SELECT * FROM SP WHERE S# = SS# AND P# = PP#)); 37 Trovare i codici dei fornitori che forniscono almeno tutti i prodotti forniti da La ricerca è frazionabile in passi successivi: 1 Trovare tutti i codici dei prodotti forniti dal fornitore SELECT P# FROM SP WHERE S# = ''; 2 Con CREATE TABLE e INSERT si possono salvare tali dati in una tabella TEMP 2 Successivamente si cercano tutti i fornitori che forniscono tali prodotti 38 NOT EXISTS NOT EXISTS: Soluzione finale SELECT DISTINCT S# FROM SP SPX (SELECT * FROM TEMP (SELECT * FROM SP SPZ WHERE SPZS# = SPXS# AND SPZP# = TEMPP#)); SELECT DISTINCT S# FROM SP SPX (SELECT * FROM SP SPY WHERE S#= AND NOT EXISTS (SELECT * FROM SP SPZ WHERE SPZS# = SPXS# AND SPZP# = SPYP# )); UNION UNION A UNION B, dove A e B sono insiemi è l'insieme degli oggetti tali che se x appartiene ad A o appartiene a B o appartiene ad entrambi, x appartiene a (A UNION B) Le repliche vengono eliminate Ricavare i codici dei prodotti che o pesano più di 16 o sono forniti dal fornitore, o entrambe le cose: SELECT P# FROM P WHERE WEIGHT > 16 UNION SELECT P# FROM SP WHERE S# = ''; Basi di dati relazionali - parte I ~7~
8 DB Prodotti Fornitori Progetti S# SNAME STATUS CITY S J J# JNAME CITY Clark S5 Adams Athens J1 Sorter J2 Punch Rome J3 Reader Athens J4 Console Athens J5 Collator J6 Terminal Oslo P P# PNAME COLOR WEIGHT CITY J7 Tape Bolt Green P3 Rome Cam 43 DB Prodotti Fornitori Progetti SPJ S# P# J# QTY J1 0 J4 700 P3 J1 400 P3 J2 0 P3 J3 0 P3 J4 500 P3 J5 600 P3 J6 400 P3 J7 800 J2 0 P3 J1 0 J2 500 J3 0 J7 0 S5 J2 0 S5 J4 0 S5 J5 500 S5 J7 0 S5 J2 0 S5 J4 0 S5 P3 J4 0 S5 J4 800 S5 J4 400 S5 J Esercizi 45 Trovare i codici dei fornitori che forniscono il progetto J1 ordinati in ordine crescente di codice fornitore SELECT DISTINCT S# FROM SPJ WHERE J# = 'J1' ORDER BY S#; Ricavare l'elenco di tutte le combinazioni colore/città dalla tabella prodotti, eliminando le repliche SELECT DISTINCT COLOR, CITY FROM P; 46 Trovare i codici dei prodotti forniti da fornitori di Londra SELECT DISTINCT P# FROM SPJ, S WHERE SS# = SPJS# AND CITY = ''; Trovare le coppie di città tali che un fornitore nella prima fornisca un progetto nella seconda SELECT DISTINCT SCITY, JCITY FROM S, J, SPJ WHERE SS# = SPJS# AND SPJJ# = JJ#; Trovare i codici dei prodotti forniti a qualsiasi progetto da un fornitore nella stessa città di quel progetto SELECT DISTINCT P# FROM S, J, SPJ WHERE SS# = SPJS# AND JJ# = SPJJ# AND SCITY = JCITY; Basi di dati relazionali - parte I ~8~
9 Trovare il numero totale di progetti forniti da SELECT COUNT (DISTINCT J#) FROM SPJ WHERE S# = ''; Trovare la quantità totale di prodotti forniti dal fornitore SELECT SUM(QTY) FROM SPJ WHERE P# ='' AND S# = ''; Per ogni prodotto fornito ad un progetto, trovare il codice del prodotto, il codice del progetto e la corrispondente quantità complessiva fornita SELECT P#, J#, SUM(QTY) FROM SPJ GROUP BY P#, J#; Trovare i codici dei prodotti forniti in quantità media superiore a 3 SELECT P# FROM SPJ GROUP BY P# HAVING AVG(QTY) > 3; Esercizi Trovare i nomi dei progetti forniti dal fornitore SELECT DISTINCT JNAME FROM J WHERE J# IN (SELECT J# FROM SPJ WHERE S# = ''); Trovare i codici dei progetti le cui città sono caratterizzate da una O come seconda lettera SELECT J#, CITY FROM J WHERE CITY LIKE '_O%'; Trovare i colori dei prodotti forniti dal fornitore SELECT DISTINCT COLOR FROM P WHERE P# IN (SELECT P# FROM SPJ WHERE S# = ''); Trovare i codici dei prodotti forniti a progetti di Londra SELECT DISTINCT P# FROM SPJ WHERE J# IN (SELECT J# FROM J WHERE CITY = ''); Basi di dati relazionali - parte I ~9~
10 Trovare i codici dei progetti che usano almeno un prodotto disponibile presso il fornitore SELECT DISTINCT J# FROM SPJ WHERE P# IN (SELECT P# FROM SPJ WHERE S# = ''); Trovare i codici dei progetti la cui città è prima nell'elenco in ordine alfabetico delle città SELECT J# FROM J WHERE CITY = (SELECT MIN(CITY) FROM J); Trovare i codici dei progetti forniti con prodotti in quantità media maggiore della massima quantità con cui viene rifornito il progetto J1 SELECT J# FROM SPJ WHERE P# = '' GROUP BY J# HAVING AVG(QTY) > (SELECT MAX(QTY) FROM SPJ WHERE J# = 'J1'); Trovare i codici dei fornitori con stato inferiore a quello del fornitore SELECT S# FROM S WHERE STATUS < (SELECT STATUS FROM S WHERE S# = ''); Trovare i codici dei fornitori che forniscono almeno un prodotto fornito da almeno un fornitore che fornisce almeno un prodotto rosso SELECT DISTINCT S# FROM SPJ WHERE P# IN (SELECT P# FROM SPJ WHERE S# IN (SELECT S# FROM SPJ WHERE P# IN (SELECT P# FROM P WHERE COLOR = ''))); Trovare i codici dei fornitori che forniscono almeno un progetto con prodotti in quantità maggiore della quantità media delle forniture di prodotti per quel progetto SELECT DISTINCT S# FROM SPJ SPJX WHERE P# = '' AND QTY > (SELECT AVG(QTY) FROM SPJ SPJY WHERE P# ='' AND SPJYJ# = SPJXJ#); Basi di dati relazionali - parte I ~~
Basi di Dati Relazionali - Parte I
Pagina 1 Relazionali - Parte I Pagina 2 Basi di dati relazionali Introduzione Aspetti relativi al prodotto DB2 (IBM) basato sul modello relazionale Il linguaggio SQL: definizione dei dati manipolazione
DettagliBasi di Dati. Politecnico di Torino CeTeM. Modello relazionale. Basi di Dati (9023N) Tutore: Bartolomeo Montrucchio 18 giugno 2000
Modello relazionale (9023N) Tutore: Bartolomeo Montrucchio 18 giugno 2000 Strutture dati relazionali Modello relazionale Regole di integrità Algebra relazionale Elena Baralis Claudio Demartini a.a. 1999/2000
DettagliBasi di Dati Relazionali - Parte II
Pagina 1 Relazionali - Parte II II Pagina 2 Basi di dati relazionali Esempi di interrogazioni Le viste Il catalogo di sistema Embedded SQL Pagina 3 DB Parti Fornitori Progetti E` data la seguente base
DettagliIL LINGUAGGIO SQL LE BASI
IL LINGUAGGIO SQL LE BASI DB DI RIFERIMENTO PER GLI ESEMPI 2 ESPRESSIONI NELLA CLAUSOLA SELECT La SELECT list può contenere non solo attributi, ma anche espressioni: Le espressioni possono comprendere
DettagliV. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/
Modelli di Base Dati 8 L aggregazione e il raggruppamento in SQL a.a. 2001/2002 8.1 SQL: le funzioni di aggregazione 8.2 funzioni predefinite che agiscono sui valori contenuti in insiemi di righe della
DettagliQL (Query Language) Alice Pavarani
QL (Query Language) Alice Pavarani QL Query Language Linguaggio di interrogazione dei dati, permette di: Interrogare la base di dati per estrarre informazioni Elaborare i dati Il risultato di un interrogazione
DettagliInterrogazioni con ANY e ALL. Operatori ANY e ALL. Interrogazioni con ANY e ALL. Interrogazioni con ANY e ALL. Interrogazioni con ANY e ALL
Interrogazioni con ANY e ALL Operatori ANY e ALL Sintassi: WHERE Attributo OperatoreConfronto [ANY ALL] (SelectAttributoSingolo) ANY: la riga soddisfa la condizione se risulta vero il confronto con almeno
DettagliCaratteristiche dei linguaggi per Database
IL LINGUAGGIO Caratteristiche dei linguaggi per Database I linguaggi per basi di dati relazionali possiedono i comandi per: definizione del data base; manipolazione dei dati; associazione tra tabelle diverse;
DettagliLinguaggio SQL seconda parte
Linguaggio SQL seconda parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright Istituto Italiano Edizioni Atlas Le condizioni di ricerca 2 Le condizioni di ricerca Usate nelle
DettagliStructured Query Language
IL LINGUAGGIO SQL Structured Query Language Contiene sia il DDL sia il DML, quindi consente di: Definire e creare il database Effettuare l inserimento, la cancellazione, l aggiornamento dei record di un
DettagliSQL: le funzioni di aggregazione
SQL: le funzioni di aggregazione funzioni predefinite che agiscono sui valori contenuti in insiemi di righe della tabella: Conteggi Somme Medie Massimi, minimi Funzione Count La funzione COUNT conta il
DettagliLinguaggio SQL: fondamenti D B M G
Linguaggio SQL: fondamenti Istruzione SELECT: fondamenti Cenni di algebra relazionale Struttura di base Clausola WHERE Ordinamento del risultato Join Funzioni aggregate Operatore GROUP BY 2 Algebra relazionale
DettagliElena Baralis 2007 Politecnico di Torino 1
Linguaggio SQL: fondamenti Struttura di base Clausola WHEE Ordinamento del risultato Join unzioni aggregate Operatore GOU BY Istruzione SELECT: esempio di BD forniture prodotti Istruzione SELECT: esempio
DettagliIl linguaggio SQL: raggruppamenti
Il linguaggio SQL: raggruppamenti Sistemi Informativi T Versione elettronica: 04.3.SQL.gruppi.pdf Informazioni di sintesi Quanto sinora visto permette di estrarre dal DB informazioni che si riferiscono
DettagliSelect From Where...
Select From Where... SELECT Le colonne che saranno mostrate e in che ordine. Calcoli su colonne FROM La tabella o le tabelle usate dall interrogazione WHERE Condizione che deve essere soddisfatta dalle
DettagliInterrogazioni complesse. SQL avanzato 1
Interrogazioni complesse SQL avanzato Classificazione delle interrogazioni complesse Query con ordinamento Query con aggregazione Query con raggruppamento Query binarie Query annidate SQL avanzato 2 Esempio
DettagliLinguaggio SQL: fondamenti D B M G
Linguaggio SQL: fondamenti Istruzione SELECT: fondamenti Struttura di base Clausola WHERE Ordinamento del risultato Join Funzioni aggregate Operatore GROUP BY 2 Istruzione SELECT: esempio Trovare il codice
DettagliIl linguaggio SQL: raggruppamenti
Il linguaggio SQL: raggruppamenti Sistemi Informativi T Versione elettronica: 04.3.SQL.gruppi.pdf Informazioni di sintesi Quanto sinora visto permette di estrarre dal DB informazioni che si riferiscono
DettagliD B M G. Linguaggio SQL: fondamenti. Istruzione SELECT: fondamenti. Elena Baralis 2007 Politecnico di Torino 1. Struttura di base
Linguaggio SQL: fondamenti Struttura di base Clausola WHERE Ordinamento del risultato Join Funzioni aggregate Operatore GROUP BY 2007 Politecnico di Torino 1 Istruzione SELECT: esempio Trovare il codice
DettagliEsempi di Query con Aggregazioni in SQL/1
Basi di Dati Prof. Alfredo Cuzzocrea Università degli Studi di Trieste Esempi di Query con Aggregazioni in SQL/1 Credits to: Prof. P. Ciaccia UniBO DB di riferimento per gli esempi AziendaSW Imp CodImp
DettagliCorso sul linguaggio SQL
Corso sul linguaggio SQL Modulo LB (SQL) 5 - Aggregazione e raggruppamento Prerequisiti Conteggio e somma degli elementi di un insieme numerico Massimo, minimo e media di un insieme numerico Ordinamento
DettagliElena Baralis 2007 Politecnico di Torino 1
Linguaggio SQL: fondamenti Struttura di base Clausola WHEE Ordinamento del risultato Join unzioni aggregate Operatore GOU BY Istruzione SELECT: esempio Trovare il codice e il numero di soci dei fornitori
DettagliSQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto
SQL Università degli Studi di Salerno Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto A.A. 2005/2006 Select La forma di select cui siamo arrivati
DettagliSQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma
SQL: Structured Query Language 1 SQL:Componenti Principali Data Manipulation Language (DML): interrogazioni, inserimenti, cancellazioni, modifiche Data Definition Language (DDL): creazione, cancellazione
DettagliIl linguaggio SQL: raggruppamenti. Versione elettronica: SQLb-gruppi.pdf
Il linguaggio SQL: raggruppamenti Versione elettronica: SQLb-gruppi.pdf Informazioni di sintesi Quanto sinora visto permette di estrarre dal DB informazioni che si riferiscono a singole tuple (eventualmente
DettagliIl linguaggio SQL: raggruppamenti
Il linguaggio SQL: raggruppamenti Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLb-gruppi.pdf Sistemi Informativi L-A Informazioni di sintesi
DettagliArchivi e basi di dati - ing. M. Cossentino. Settore. Traccia 1. Traccia 200. Settore non polarizzato
Settore Traccia 1 Traccia 200 Settore non polarizzato '! " # $ % & ( ) * + + ' ' ' !"#"$%, & &'(("% '&)'' ''"* - -. / / / 0/!- "-, (0 #- / / / 0/ --- + 1 ' # $ + 2 13 ,, - 4 '. & 56 2 '/!!! "7&% 8, 9 /'"'0'1'&'
DettagliProgettazione di Sistemi Informatici
Progettazione di Sistemi Informatici Raggruppamenti Domenico Diacono Corso ADM Gennaio 2008 A che punto siamo Finora abbiamo estratto dal DB informazioni relative a singole ennuple, eventualmente ottenute
DettagliStructured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati
Basi di Dati Matteo Longhi Structured Query Language Introduzione Standard creato nel 1976 da IBM Aggiornato (versione 2 nel 1992 (ANSI X3.135 e ISO 9075 Consente di: DDL: definire la struttura del DB
DettagliManuale Comandi SQL SQL. Sito per esercitarsi (on line) SQL
Manuale Comandi SQL Sito per esercitarsi (on line)... 1 SQL... 1 Convenzioni e simboli usati... 2 Query Language... 2 Comando Select... 2 Order By:... 3 Sintassi generale:... 3 Ordinamanto su PIU campi...
DettagliBasi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 4 Raffaella Gentilini 1 / 48 Sommario 1 Join di Tabelle Join Naturale Theta Join Join Esterno 2 La Clausola HAVING 3 2 / 48 Join Naturale Theta Join Join Esterno
DettagliSQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto
SQL Università degli Studi di Salerno Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto A.A. 2007/2008 Interrogazioni con raggruppamento E possibile
DettagliOperatori aggregati. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni con raggruppamento
Operatori aggregati In algebra relazionale le espressioni vengono valutate sulle singole tuple in successione. Talvolta però possono essere necessarie informazioni derivabili dall esame di tutte le tuple
DettagliLezioni di Laboratorio sui Data Base
Lezioni di Laboratorio sui Data Base Informatica per l'impresa Docente Tutor: Dott. Gianluigi Roveda OBIETTIVO: Rivedere come attività di laboratorio le query di tipo select scritte in SQL ma con le variazioni
DettagliManuale SQL. Manuale SQL - 1 -
Manuale SQL - 1 - Istruzioni DDL Creazione di una tabella : CREATE TABLE Il comando CREATE TABLE consente di definire una tabella del database specificandone le colonne, con il tipo di dati ad esse associate,
DettagliSQL. Argomenti della lezione. Join esplicito. Interrogazioni complesse in SQL join esplicito outer join operatori aggregati interrogazioni nidificate
Argomenti della lezione SQL Interrogazioni complesse in SQL join esplicito outer join operatori aggregati interrogazioni nidificate Maternità Paternità Madre Figlio Olga Filippo Sergio Olga Filippo Persone
DettagliBasi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 4 Raffaella Gentilini 1 / 46 Sommario 1 Join di Tabelle Join Naturale Theta Join Join Esterno 2 3 Funzioni d aggregazione La Clausola GROUP BY La Clausola HAVING
DettagliSISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini
SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA 3. Panoramica su SQL Prof. Mauro Giacomini Sommario Introduzione Istruzione SELECT Tipi di Join Subquery Comandi DML Creazione delle tabelle Introduzione
DettagliBasi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 5 Raffaella Gentilini 1 / 22 Sommario 1 Gruppi 2 / 22 Raggruppamenti Gruppi Quanto sinora visto permette di estrarre dal DB informazioni che si riferiscono a
DettagliLezione 7 SQL (II) Basi di dati bis Docente Mauro Minenna Pag.1
Lezione 7 SQL (II) Pag.1 Ancora sugli operatori di confronto tra insiemi Abbiamo già visto IN, EXISTS e UNIQUE. Possiamo anche usare NOT IN, NOT EXISTS e NOT UNIQUE Disponibili anche: op ANY, op ALL Trovare
DettagliSistemi di Elaborazione delle Informazioni
SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2017/2018 1 Sesta parte Interrogazione di una
DettagliLaboratorio di Basi di Dati
Laboratorio di Basi di Dati Query in SQL Anno accademico 2016-2017 Paolo Perlasca Parte di questi lucidi è tratta da una versione precedente di Marco Mesiti, Stefano Valtolina, Daniele Riboni e Sergio
DettagliInterrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor
Interrogare una base di dati: algebra relazionale e SQL Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Contesto didattico Il seguente materiale didattico è
DettagliArgomenti della lezione. Interrogazioni complesse in SQL join esplicito outer join operatori aggregati interrogazioni nidificate
Argomenti della lezione Interrogazioni complesse in SQL join esplicito outer join operatori aggregati interrogazioni nidificate Maternità Paternità Madre Luisa Luisa Anna Anna Maria Maria Padre Sergio
DettagliInterrogazioni di tipo insiemistico. Select. Interrogazioni di tipo insiemistico. Interrogazioni nidificate
Select La sintassi di select cui siamo arrivati dopo le estensioni viste è quindi: SelectSQL ::= select ListaAttributiOEspressioni from ListaTabelle [ where CondizioniSemplici ] [ group by ListaAttributiDiRaggruppamento]
DettagliInterrogazioni semplici
Interrogazioni semplici Lorenzo Sarti 2009 Basi di Dati 1 select Campi considerati Matricola Cognome Nome Data di nascita A80198760 Bianchi Anna 22/03/1967 A80293450 Rossi Andrea 13/04/1968 A80198330 Neri
Dettagli<Nome Tabella>.<attributo>
Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (2) Tabelle mult., variabili, aggreg, group Prof. Alberto
DettagliSQL è stato definito nel 1973 ed è oggi il linguaggio universale dei sistemi relazionali
SQL: Structured Query Language 1 SQL è stato definito nel 1973 ed è oggi il linguaggio universale dei sistemi relazionali Standard: SQL-84, SQL-89, SQL-92 (o SQL2), SQL:1999 (o SQL3) (ANSI/ISO) SQL-92:
DettagliGestione di basi di dati relazionali con SQL (parte II) Valutazione delle condizioni su insiemi di tuple
Gestione di basi di dati relazionali con SQL (parte II) Gian Pietro Picco Dipartimento di Elettronica e Informazione Politecnico di Milano, Italy picco@elet.polimi.it http://www.elet.polimi.it/~picco Valutazione
DettagliSQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)
SQL quick reference piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013) I tipi dei dati di SQL sono: delimitatori delle costanti: TEXT(n) stringa di caratteri
DettagliSQL - Structured Query Language
SQL - Structured Query Language Luca Martini Università di Pisa 16 aprile 2010 Riepilogo sugli operatori aggregati Sintassi SELECT A t t r i b u t o 1, MAX( A t t r i b u t o 2 ),... FROM Tabella1, Tabella2,...
DettagliINFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno
INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno 2.3b: SQL (2) Interrogazioni semplici INFORMATICA GENERALE Prof. Alberto Postiglione Scienze
DettagliTipi di sottoquery SQL
Tipi di sottoquery SQL È possibile specificare subquery in numerose posizioni: Con le parole chiave IN e NOT IN. Con operatori di confronto. Con le parole chiave ANY, SOME e ALL. Con le parole chiave EXISTS
DettagliIl linguaggio SQL - Interrogazioni -
Il linguaggio SQL - Interrogazioni - Dott. Nicola Dragoni nicola.dragoni@gmail.com (Il contenuto di queste slide è stato originariamente creato dal Dott. Matteo Magnani) 1 Il linguaggio SQL Il linguaggio
DettagliQueries su più tabelle
Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (2) Tabelle mult., variabili, aggreg, group Prof. Alberto
DettagliBusiness Intelligence
Business Intelligence Esercitazione di Laboratorio N. 1 L esercitazione ha come obiettivo l interrogazione di una base di dati relazionale mediante query SQL su un DBMS Oracle XE. Schema logico della basi
DettagliBasi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezioni 6 7 Raffaella Gentilini 1 / 46 Sommario 1 Subquery (o Interrogazioni Nidificate) Interrogazioni Annidate con Predicati di Confronto Interrogazioni Annidate con
DettagliEsempi SQL con Access. Orazio Battaglia
con Access Orazio Battaglia Consideriamo la base di dati in figura. 2 Interrogazione 1: Selezioniamo tutti gli impiegati, vogliamo Cognome, Nome e Posizione SELECT Impiegati.Cognome, Impiegati.Nome, Impiegati.Posizione
DettagliSQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative
SQL SQL Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative l utente specifica quale informazione è di suo interesse, ma non come estrarla dai dati Le interrogazioni vengono
DettagliDatabase Lezione 2. Sommario. - Progettazione di un database - Join - Valore NULL - Operatori aggregati
Sommario - Progettazione di un database - Join - Valore NULL - Operatori aggregati Progettazione di un database - In un database c'è una marcata distinzione tra i valori in esso contenuti e le operazioni
DettagliBasi di Dati Relazionali - Parte III
Relazionali - Parte III 1 Basi di dati relazionali Le viste Il catalogo di sistema Cenni ai trigger 2 DB Parti Fornitori Progetti E` data la seguente base di dati: fornitori: S (S#, SNAME, STATUS, CITY)
DettagliIl formato di base di un interrogazione in SQL è: SELECT R i1.c 1, R i2.c 2,..., R in.c n FROM R 1, R 2,..., R k WHERE F;
54 Il formato di base di un interrogazione in SQL è: SELECT R i1.c 1, R i2.c 2,..., R in.c n FROM R 1, R 2,..., R k WHERE F; dove R 1, R 2,..., R k è una lista di nomi distinti di relazioni R i1.c 1, R
DettagliSQL [2] Concetti avanzati di SQL. Esempi di interrogazioni
SQL [2] Concetti avanzati di SQL 2 Esempi di interrogazioni 3 Esempi di interrogazioni 4 Esempi di interrogazioni 5 Confronti che coinvolgono NULL NULL può voler dire: valore sconosciuto (esiste ma non
DettagliSQL - Structured Query Language
SQL - Structured Query Language Lab 05 Alessandro Lori Università di Pisa 27 Aprile 2012 Riepilogo esercitazione precedente Operatori insiemistici (UNION, INTERSECT, EXCEPT) Riepilogo esercitazione precedente
DettagliLaboratorio di Basi di dati Soluzioni della V esercitazione - 23 aprile 2007
Laboratorio di Basi di dati Soluzioni della V esercitazione - 23 aprile 2007 La sintassi dei comandi T-SQL non è rigorosa, poiché permette di ottenere lo stesso risultato con diversi combinazioni di argomenti.
DettagliOPERATORI LOGICI: AND, OR, NOT
Esempi di Queries(interrogazioni): SELECT Nome, Cognome FROM Persone WHERE id = 1 SELECT Nome, Cognome FROM Persone WHERE Nome = Luigi SELECT * FROM Persone WHERE Nome = Luigi ( * = visualizza tutti i
DettagliGestione dei valori nulli
Gestione dei valori nulli La gestione dei valori nulli, a seconda dell implementazione, avviene attraverso una logica a due valori come in SQL-89, o a tre valori (vero, falso, unknown) come in SQL-2. In
DettagliBasi di dati I Prova di autovalutazione 1 novembre 2016 Soluzioni
Basi di dati I Prova di autovalutazione 1 novembre 2016 Soluzioni Domanda 1 Si consideri una base di dati sulle relazioni R 1 (A, B, C) R 2 (D, E, F ) Scrivere interrogazioni in SQL equivalenti alle seguenti
DettagliCorso di Basi di Dati A.A. 2015/2016
Corso di Laurea in Ingegneria Gestionale Sapienza Università di Roma Corso di Basi di Dati A.A. 2015/2016 Language Soluzione Esercizi Tiziana Catarci, Andrea Marrella Ultimo aggiornamento : 19/03/2016
DettagliTabelle esempio: Impiegato/Dipartimento
Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (3) Insiemistiche e Nidificate Prof. Alberto Postiglione
DettagliISBN Titolo CasaEd AnnoEd
SQL Un esempio Si consideri il seguente schema relazionale Catalogo ( ISBN, Titolo, CasaEd, AnnoEd) Supponiamo che interessi conoscere il titolo e la casa editrice dei libri pubblicati nel 2001 1. consultare
DettagliLaboratorio di. Docenti: Alberto Belussi e Carlo Combi
Laboratorio di Basi di dati/basi i di dati per Bioinformatica Docenti: Alberto Belussi e Carlo Combi Lezione 3 Interrogazioni i SQL Le interrogazioni i i SQL hanno la seguente struttura: SELECT
DettagliAtzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 : SQL Operatori aggregati Nelle espressioni della target list possiamo avere anche espressioni che calcolano valori a partire da insiemi
Dettagli3. Selezionare i nomi dei clienti che iniziano con le lettere P, Q, R, S
Esercitazione di SQL Corso di Basi di Dati 1. Visualizzare i clienti in ordine alfabetico select * order by nomesocietà 2. Visualizzare i clienti che non hanno il fax where fax is null 3. Selezionare i
DettagliA.A. 2018/2019. Funzioni di Aggregazione e Raggruppamenti in SQL FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante
A.A. 2018/2019 Funzioni di Aggregazione e Raggruppamenti in SQL Docente Prof. Raffaele Pizzolante FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE Le Funzioni di Aggregazione 1/10 Le funzioni di aggregazione
DettagliCorso di Informatica Medica
Università degli Studi di Trieste Corso di Laurea Magistrale in INGEGNERIA CLINICA ESERCITAZIONE: IL LINGUAGGIO SQL Corso di Informatica Medica Docente Sara Renata Francesca MARCEGLIA Dipartimento di Ingegneria
DettagliE possibile ordinare le righe del risultato di una interrogazione attraverso la clausola order by, a chiusura di una interrogazione.
Ordinamento E possibile ordinare le righe del risultato di una interrogazione attraverso la clausola order by, a chiusura di una interrogazione. order by AttrdiOrdinamento [asc desc] {, AttrdiOrdinamento
DettagliBasi di dati (4) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. Argomento: select (1.
Università di Modena e Reggio Emilia Basi di dati (4) Docente: andrea.bulgarelli@gmail.com Argomento: select (1.0) 1 Panoramica Select Joins Subquery Wildcard Esempi 2 SELECT SELECT [DISTINCT] [TOP n]
DettagliSELECT s.nome, e.data Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola
SQL SELECT s.nome, e.data FROM Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola SELECT s.nome As Nome, 2002 - s.annonascita As Eta, 0 As NumeroEsami FROM Studenti
DettagliSELECT s.nome, e.data FROM Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola
SQL, e.data, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola As Nome, 2002 - s.annonascita As Eta, 0 As NumeroEsami WHERE NOT EXISTS (SELECT * WHERE e.matricola = s.matricola
DettagliAlgebra relazionale. Algebra relazionale. Operatori dell algebra relazionale. Operatori dell algebra relazionale. Algebra relazionale.
Algebra relazionale Algebra relazionale Introduzione Selezione e proiezione Prodotto cartesiano e join Natural join, theta-join e semi-join Outer join Unione e intersezione Differenza e antijoin Divisione
DettagliJoin esplicito. SELECT con join esplicito, sintassi. Ulteriore estensione: join naturale (meno diffuso) Outer join. Join esterno: "outer join"
Join esplicito Padre e madre di ogni persona select paternita.figlio,padre, madre, paternita where paternita.figlio = maternita.figlio SELECT con join esplicito, sintassi SELECT FROM Tabella { JOIN Tabella
DettagliLaboratorio di Basi di Dati e Web
Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 4 Base di Dati usata negli esercizi ( ateneo (DB dell applicazione web di InCorso (,N ) CorsoStudi (,N ) nomecorsostudi CorsoInFacoltà
DettagliProf. Alberto Postiglione Dipartimento di Scienze della Comunicazione Università degli Studi di Salerno
Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (1) Interrogazioni semplici Prof. Alberto Postiglione
DettagliD B M G 2. Linguaggio SQL: fondamenti. Istruzioni di aggiornamento. Introduzione Istruzione INSERT Istruzione DELETE Istruzione UPDATE
Linguaggio SQL: fondamenti DB M B G Introduzione Istruzione INSERT Istruzione DELETE Istruzione UPDATE D B M G 2 DB M B G (1/3) Inserimento di tuple Cancellazione di tuple Modifica di tuple D B M G 4 (2/3)
DettagliOperazioni su insiemi: unione, intersezione e differenza
Operazioni su insiemi: unione, intersezione e differenza Unione La select da sola non permette di fare unioni; serve un costrutto esplicito: select union [all] select... i duplicati vengono eliminati (a
DettagliLezione 6 SQL Basi di dati bis Docente Mauro Minenna Pag.1
Lezione 6 SQL Pag.1 Istanze di esempio vid vnome esperienza età 22 Dustin 7 45.0 29 Brutus 1 33.0 31 Lubber 8 55.5 32 Andy 8 25.5 58 Rusty 10 35.0 64 Horatio 7 35.0 71 Zorba 10 16.0 74 Horatio 9 35.0 85
DettagliINFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione
INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno 2.3b: SQL (2) Interrogazioni semplici INFORMATICA GENERALE Prof. Alberto Postiglione Scienze
DettagliSQL - Sottointerrogazioni correlate
SQL - Sottointerrogazioni correlate negli esempi visti ogni subquery viene eseguita una volta per tutte ed il valore (o insieme di valori) è usato nella clausola WHERE della query esterna è possibile definire
DettagliBasi di dati - Laboratorio
Basi di dati - Laboratorio Corso di Laurea in Bioinformatica Docente: Barbara Oliboni Lezione 4 Contenuto della lezione Interrogazioni SQL Join interni ed esterni Uso di variabili tupla o ALIAS Interrogazioni
DettagliCorso di Informatica Linguaggio SQL seconda parte
Corso di Informatica Linguaggio SQL seconda parte Anno Accademico 2018-2019 Le condizioni di ricerca 2 Le condizioni di ricerca Usate nelle clausole WHERE e HAVING Costruite con gli operatori di confronto:
DettagliOperazioni sui dati. Interrogazioni con operatori aggregati. Capitolo 4
Operazioni sui dati Interrogazioni con operatori aggregati Ordinamento del risultato Nome e reddito delle persone con meno di trenta anni in ordine alfabetico select nome, reddito from persone where eta
DettagliD B M G D B M G 2. Sistemi informativi. Linguaggio SQL: costrutti avanzati
Sistemi informativi D B M G Linguaggio SQL: costrutti avanzati Gestione delle transazioni SQL per le applicazioni Controllo dell accesso Gestione degli indici D B M G 2 Pag. 1 2007 Politecnico di Torino
DettagliInterrogazioni nidificate
Interrogazioni nidificate Nella clausola where si possono utilizzare valori prodotti da altre istruzioni select utilizzando any (qualsiasi) o all (tutti) insieme agli operatori di confronto Trovare nome,
DettagliInterrogazioni su più tabelle. Interrogazioni su più tabelle. Clausola where. Interrogazioni su più tabelle
Interrogazioni su più tabelle Se si vogliono estrarre informazioni da più tabelle, queste devono apparire come argomento della clausola from. Se si deve formulare un join, è possibile farlo in modo esplicito
Dettagli