Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi

Documenti analoghi
Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi

Informatica. Sintassi. Interrogazioni in SQL. Significato dell interrogazione. Tabella Impiegato. Basi di dati parte 4 SQL

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione

SQL. SQL: "storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. "standard di fatto"

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a

Tabelle esempio: Impiegato/Dipartimento

<Nome Tabella>.<attributo>

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati

Linguaggio SQL seconda parte

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

Linguaggio SQL. studenti matricola nome cognome citta anno 11 marco bini bologna laura sicuro rimini 1984 esami codice

Corso di Basi di Dati

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

Informatica B. Introduzione alle Basi di Dati e ai DBMS

Basi di Dati: Corso di laboratorio

Caratteristiche dei linguaggi per Database

Idoneita Informatica. Sistemi per la gestione di basi di Dati

SQL e algebra relazionale

DataBase Management System - DBMS

Elena Baralis 2007 Politecnico di Torino 1

Basi di Dati. Esercitazione 1: Interrogazioni in SQL. K. Donno - Interrogazioni in SQL

Elena Baralis 2007 Politecnico di Torino 1

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2

SQL. SQL: una visione panoramica. SQL: "storia" Definizione dei dati

Uno dei principali motivi del successo delle basi di dati: è diventato uno standard

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)

3 SQL : Interrogazioni

Gestione e Analisi dei Dati. Lezione 2 Vincoli su attributo Selezioni semplici su una tabella

Interrogazioni semplici

Tabelle esempio: Impiegato/Dipartimento

D B M G. Linguaggio SQL: fondamenti. Istruzione SELECT: fondamenti. Elena Baralis 2007 Politecnico di Torino 1. Struttura di base

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

SQL. Storia un po piu in dettaglio. SQL: "storia" Tre livelli per SQL-2. Standard, dialetti, mercato

BASI DATI: algebra relazionale

RELAZIONI E BASI DI DATI

Algebra relazionale: operazioni

Basi di dati (database)

DDL DML. Tipi di linguaggi per basi di dati. Si distinguono due categorie:

Parte III. L algebra relazionale

Modello logico dei dati utilizzato nell ambito delle basi di dati, introdotto da Codd nel 1970.

Il linguaggio SQL: DML di base. Versione elettronica: 04.2.SQL.DMLbase.pdf

Il linguaggio SQL: DML di base

Il modello relazionale dei dati. modello relazionale 1

Il linguaggio SQL: raggruppamenti. Versione elettronica: SQLb-gruppi.pdf

Corso di Basi di Dati A.A. 2015/2016

Basi di Dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

DATABASE PER IL WEB. Programmazione Web 1

SQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Access. P a r t e t e r z a

Alessandra Raffaetà. Esercizio: Cinema

S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali. Alessandra Raffaetà

Elena Baralis 2007 Politecnico di Torino 1

MODULO 2. Query normali e parametriche Query di:

4/16/07. Le Basi di Dati Relazionali. Concetti Fondamentali. Base di dati, tabella, ennupla, attributo, dominio. Valori nulli

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/

3 Algebra Relazionale

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26

SQL - Sottointerrogazioni

SQL [2] Concetti avanzati di SQL. Esempi di interrogazioni

Sistemi di Elaborazione delle Informazioni (C.I. 15) Basi di dati Introduzione teorica

CORSO ACCESS 2000 PARTE VI

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione

Join in SQL (primo modo) Informatica. Interrogazione 4a. Tabella Dipartimento. Per formulare interrogazioni che coinvolgono.

Basi di Dati. Programmazione e gestione di sistemi telematici

Instanze inconsistenti. Informatica II Basi di Dati (07/08) Parte 2. Instanze inconsistenti. Vincoli di integrità

Basi di Dati: Corso di laboratorio

SELECT s.nome, e.data Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola

SELECT s.nome, e.data FROM Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola

Manuale SQL. Manuale SQL - 1 -

Sommario. Introduzione... 13

Join in SQL (primo modo) Informatica. Interrogazione 4a. Tabella Dipartimento. Interrogazione 4b. Interrogazione 4a

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

Il modello relazionale

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3

Domande utili alla preparazione dell orale di Informatica all Esame di Stato

Gestione di basi di dati in Access. SUISM Docente: Ugo de Liguoro a.a Asti

Data Management Software. Il linguaggio SQL. Query Innestate. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management 10 Settembre 2003

Corso di Basi di Dati

SQL - Structured Query Language

Tipi di operatori. Gli operatori dell algebra relazionale sono classificabili nelle seguenti categorie:

Introduzione alle basi di dati

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

SQL (STRUCTURED QUERY LANGUAGE)

SQL aspetti essenziali

Laboratorio di Basi di Dati

Basi di da' Il modello relazionale. Anna Monreale Università di Pisa

Filtri. Microsoft Access. Filtri. Filtri

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

Microsoft Access (parte 5) Query. Query. Query. Query. Creare una query

Lezione 6. Algebra e Calcolo Relazionale

Esercitazione 3 SQL 2

Le basi di dati. Base di dati = dati + DBMS.

Trasparenze rielaborate da Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999 Capitolo 4: SQL-2, seconda parte.

Operatori aggregati: COUNT

Laboratorio di Basi di Dati

Linguaggio SQL Descriviamo la notazione usata nel seguito:

SQL QUERY: Le interrogazioni del database

Il modello Relazionale.

Transcript:

Informatica della Facoltà di Lingue e Letterature dell Università degli Studi di Torino. Qualsiasi altro Query (Interrogazioni) SQL Materiale aggiuntivo per il corso di laurea in Lingue e Culture per il Turismo classe L- È necessario un modo per interrogare le basi di dati, cioè per estrarre conoscenza Per reperire le informazioni di interesse da un DB, un utente non può semplicemente leggere le tabelle: le tabelle possono essere molto grosse può essere necessario utilizzare più tabelle contemporaneamente Si usano le query (interrogazioni) 2 Query Una query permette di specificare cosa cercare all interno del DB (criteri di selezione) quali informazioni (campi) visualizzare Il risultato consiste in una nuova tabella temporanea con i campi e i record di interesse 3 SQL Originariamente Structured Query Language SQL è un linguaggio che consente di formulare interrogazioni o (query) (Data aa Manipulation Language, DML) Anche usato come Data Declaration Language, DDL (per esempio, per dichiarare vincoli di integrità) È il linguaggio utilizzato da tutti i DBMS relazionali commerciali (con qualche differenza da un sistema all altro) 4 Sintassi Significato dell interrogazione Esistono, in generale, più modi per effettuare un interrogazione: scelta basata sulla leggibilità (più che sull efficienza ) Struttura essenziale (introdurremo le variazioni di volta in volta): select ListaAttributi (target list) ListaTabelle (clausola ) [ Condizione] (clausola ) Le parentesi quadre [ ] indicano che il termine all interno è opzionale: può non comparire o comparire una sola volta DEVE comparire per porre dei requisiti sulle tuple in uscita 5 Si considerano la tabella/le tabelle della clausola Si selezionano i record che soddisfano la condizione della clausola (opzionale) Si danno in output i valori degli attributi elencati nella target list ( select ) 6 1

Informatica della Facoltà di Lingue e Letterature dell Università degli Studi di Torino. Qualsiasi altro Tabella Impiegato Tabella Impiegato Schema: Impiegato(Matricola, Nome, Cognome, Dipart, Ufficio, Stipendio, Città) Impiegato 46 Carlo Bianchi Prod 20 12 Torino 47 Giuseppe Verdi 20 13 Roma 48 Franco Neri Distrib 16 Napoli 50 Lorenzo Lanzi Direzione 7 21 Genova 51 Paola Burroni 75 13 Venezia 52 Marco Franco Prod 20 14 Roma 7 8 Interrogazione Cognome = Rossi Interrogazione 1 tutti gli attributi Cognome = Rossi 9 10 Interrogazione 2 Interrogazione 2bis select Stipendio Cognome = Rossi select Stipendio as Salario Cognome = Rossi Stipendio Salario 11 12 2

Informatica della Facoltà di Lingue e Letterature dell Università degli Studi di Torino. Qualsiasi altro Interrogazione 2bis Interrogazione 3 select Stipendio as Salario Cognome = Rossi alias select Stipendio/12 as StipendioMensile Cognome = Bianchi Salario StipendioMensile 1 13 14 Interrogazione 3 select Stipendio/12 as StipendioMensile Cognome = Bianchi StipendioMensile 1 espressioni i Join Per formulare interrogazioni che coinvolgono più tabelle occorre effettuare un join, cioè congiungere le tabelle È un operazione fondamentale: di norma in un DB le informazioni sono registrate in più tabelle La congiunzione avviene sui valori in comune tra le tabelle 16 Join in SQL In SQL per effettuare un join si deve: 1. elencare le tabelle di interesse nella clausola 2. definire i nella clausola l le condizioni necessarie per mettere in relazione fra loro gli attributi di interesse Tabella Dipartimento Dipartimento(Nome, Indirizzo, Città) Nome Indirizzo Città Via Vai Milano Prod P.le Lavater 3 Torino Distrib Via Segre 9 Roma Direzione Via Vai 2 Milano Ricerca Via Morone 6 Milano 17 18 3

Informatica della Facoltà di Lingue e Letterature dell Università degli Studi di Torino. Qualsiasi altro Interrogazione 4 Restituire nome e cognome degli impiegati e le città in cui lavorano select Impiegato.Nome,Cognome, Dipartimento.Città Impiegato,Dipartimento Dipart = Dipartimento.Nome Interrogazione 4 Restituire nome e cognome degli impiegati e delle città in cui lavorano La notazione punto select (Tabella.Attributo) Impiegato.Nome,Cognome, serve per disambiguare Dipartimento.Città Impiegato,Dipartimento Dipart = Dipartimento.Nome 19 20 Risultato interrogazione 4 Impiegato.Nome Cognome Dipartimento.Città Mario Rossi Milano Carlo Bianchi Torino Giuseppe Verdi Milano Franco Neri Roma Carlo Rossi Milano Lorenzo Lanzi Milano Paola Burroni Milano Marco Franco Torino Interrogazione 4bis Attenzione! Se si omette la condizione di join, si ottiene un risultato poco significativo: ogni tupla di una relazione viene messa in corrispondenza con ogni tupla dell altra l relazione Per es.:,dipartimento 21 22 Matricol a Risultato interrogazione 4bis Impiegato.Nom e Cognom e Dipart Dipartime nto.nome Indirizz o 45 Mario Rossi Via Vai 2 Milano 45 Mario Rossi Prod P.le Lavater 3 Torino 45 Mario Rossi Distrib Via Segre 9 Roma 45 Mario Rossi Direzione Via Vai 2 Milano 45 Mario Rossi Ricerca Via Morone 6 Milano 46 Carlo Bianchi Prod Via Vai 2 Milano 46 Carlo Bianchi Prod Prod P.le Lavater 3 Torino 46 Carlo Bianchi Prod Distrib Via Segre 9 Roma 46 Carlo Bianchi Prod Direzione Via Vai 2 Milano 46 Carlo Bianchi Prod Ricerca Via Morone 6 Milano 52 Marco Franco Prod Via Vai 2 Milano 52 Marco Franco Prod Prod P.le Lavater 3 Torino 52 Marco Franco Prod Distrib Via Segre 9 Roma 52 Marco Franco Prod Direzione Via Vai 2 Milano 52 Marco Franco Prod Ricerca Via Morone 6 Milano Dipartimento.Citt à 23 Interrogazione 4ter,Dipartimento Dipart=Dipartimento.Nome Matricola Impiegato.Nome Cognome Dipart Dipartiment onome o.nome Indirizzo Dipartimento.Città 45 Mario Rossi Via Vai 2 Milano 46 Carlo Bianchi Prod Prod P.le Lavater 3 Torino 47 Giuseppe Verdi Via Vai 2 Milano 48 Franco Neri Distrib Distrib Via Segre 9 Roma 49 Carlo Rossi Direzione Direzione Via Vai 2 Milano 50 Lorenzo Lanzi Direzione Direzione Via Vai 2 Milano 51 Paola Burroni Via Vai 2 Milano 52 Marco Franco Prod Prod P.le Lavater 3 Torino 24 4

Informatica della Facoltà di Lingue e Letterature dell Università degli Studi di Torino. Qualsiasi altro Sulla clausola Interrogazione 6 Ammette come argomento un espressione booleana Predicati semplici combinati con not, and,, or (not ha la precedenza, è consigliato l uso di parentesi( )) Ciascun predicato usa operatori: =, <>, <, >, <=, >= Confronto tra valori di attributi, costanti, espressioni select Nome,Cognome Impiegato Ufficio = 20 and Dipart = Nome Cognome Giuseppe Verdi 25 26 Interrogazioni 7 e 8 Nome Cognome select Nome, Cognome 7 Mario Rossi 7 Carlo Bianchi Dipart= Prod or Paola Burroni Dipart= Marco Franco 8 select Nome Giuseppe Verdi Cognome= Rossi and Nome 8 (Dipart= Prod or Dipart= ) Mario Operatore like Usato per i confronti con stringhe _ = carattere arbitrario; es. p_ denota una qualunque stringa di due caratteri il cui primo carattere è p (come, po, pu, pr, ) % = stringa di lunghezza arbitraria (anche 0) di caratteri arbitrari; ad es. p% denota una qualunque stringa che inizia per p (come p, po, politica, pino, ) 28 Operatore like Esempi: ab%ba_ denota tutte le stringhe che cominciano con ab e che hanno ba come coppia di caratteri prima dell ultima posizione (es. abjjhhdhdbak,abbap) bb %mari_ denota mario, maria, piermario, piermaria, %mari% denota mari, mario, maria, piermario, piermaria, marino, marina, mariuolo, Interrogazione 9 Cognome like B% 46 Carlo Bianchi Prod 20 12 Torino 51 Paola Burroni Ammistr 75 13 Venezia 29 Nota: c è distinzione tra maiuscole e minuscole 30 5

Informatica della Facoltà di Lingue e Letterature dell Università degli Studi di Torino. Qualsiasi altro Interrogazione 9bis Cognome like _o%i or Cognome like _ u%i 51 Paola Burroni Ammistr 75 13 Venezia Nota: c è distinzione tra maiuscole e minuscole 31 Interrogazione 9ter Nome like %o 46 Carlo Bianchi Prod 20 12 Torino 48 Franco Neri Distrib 16 Napoli 50 Lorenzo Lanzi Direzione 7 21 Genova 52 Marco Franco Prod 20 14 Roma 32 Gestione dei valori nulli Gestione dei valori nulli Campo con valore nullo significa: non applicabile a una certa tupla, o valore sconosciuto, o non si sa nulla Sarebbe sbagliato scrivere Attributo = null : null è un valore che non fa parte del dominio di nessun attributo SQL offre il predicato is null : Attributo is [not] null 33 Quando specifichiamo in una clausola Stipendio>13 cosa succede se l attributo Stipendio è nullo? La tupla non viene selezionata Per selezionarla, occorre specificarlo espicitamente. Per esempio: Stipendio > 13 or Stipendio is null 34 Interrogazione 5 Duplicati select I.Nome, Cognome, D.Città Impiegato as I, Dipartimento as D Dipart = D.Nome Impiegato as I : esempio di aliasing di una tabella L aliasing per le tabelle serve ad abbreviare e disambiguare i riferimenti alle tabelle 35 Per motivi di efficienza, SQL conserva eventuali duplicati risultanti da un interrogazione select Dipart Dipart Prod Distrib Direzione Direzione Prod 36 6

Informatica della Facoltà di Lingue e Letterature dell Università degli Studi di Torino. Qualsiasi altro Duplicati Per eliminare i duplicati, occore specificare la parola chiave distinct select distinct Dipart Dipart Prod Direzione Distrib Ordinamento Per ordinare le righe del risultato di un interrogazione, si può usare la clausola order by order by Matricola asc ordine crescente order by Matricola desc ordine decrescente 37 asc può essere lasciato sottointeso 38 Ordinamento Si possono combinare più criteri di ordinamento aparità di cognome, ordina per nome order by Cognome, Nome (ordine crescente sottinteso) 39 7