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;

Documenti analoghi
SQL - Sottointerrogazioni

Istruzioni. DDL: CREATE, DROP e ALTER TABLE. DML: INSERT, DELETE e UPDATE DQL: SELECT. DCL: GRANT e REVOKE

SQL - Interrogazioni. SQL - Interrogazioni. SQL - Interrogazioni. SQL - Interrogazioni. SQL - Interrogazioni. SQL - Interrogazioni

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

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

Linguaggio SQL. e' un linguaggio oggi usato in numerosi DBMS disponibili come prodotti commerciali

4.SQL QUERY. Fare una query significa fare delle ricerche sul nostro database.

SQL - Sottointerrogazioni correlate

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

SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. SQL come Data Manipulation Language - (SELECT FROM WHERE ORDER BY)

SQL - Valori nulli. Linguaggio SQL

QL (Query Language) Alice Pavarani

Prof. Alberto Postiglione Dipartimento di Scienze della Comunicazione Università degli Studi di Salerno

SQL: le funzioni di aggregazione

Caratteristiche dei linguaggi per Database

Structured Query Language

Select From Where...

Linguaggio SQL seconda parte

Basi di Dati: Corso di laboratorio

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

IL LINGUAGGIO SQL LE BASI

Sistemi di Elaborazione delle Informazioni

Lezioni di Laboratorio sui Data Base

Interrogazioni. L istruzione base per le interrogazioni è select

Corso sul linguaggio SQL

SQL Esercizi DML Blocco 1

Corso di Basi di Dati

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

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

Il linguaggio SQL - Interrogazioni -

Linguaggio SQL: fondamenti D B M G

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"

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

Principi di Progettazione del Software a.a Il linguaggio SQL. Il Linguaggio SQL

Interrogazioni Interrogazioni in SQL } L'istruzione base dell'sql per costruire interrogazioni di complessita arbitraria e lo statement SELECT } Sinta

Laboratorio di. Docenti: Alberto Belussi e Carlo Combi

Queries su più tabelle

Interrogazioni su più tabelle. Interrogazioni su più tabelle. Clausola where. Interrogazioni su più tabelle

Consideriamo lo schema relazionale

Interrogazioni di tipo insiemistico. Select. Interrogazioni di tipo insiemistico. Interrogazioni nidificate

Il linguaggio SQL: raggruppamenti

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

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini

Elena Baralis 2007 Politecnico di Torino 1

Interrogazioni semplici

Tabelle esempio: Impiegato/Dipartimento

Corso di Informatica Linguaggio SQL seconda parte

BASI DATI: algebra relazionale INFORMATICA APPLICATA E SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Esempi di Query con Aggregazioni in SQL/1

Lezione 6 SQL Basi di dati bis Docente Mauro Minenna Pag.1

Linguaggio SQL: fondamenti D B M G

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a

<Nome Tabella>.<attributo>

PRODOTTO CARTESIANO Caso Generale

Operatori aggregati. Un operatore aggregato è una funzione che si applica ad un insieme di tuple di una tabella

Idoneita Informatica. Sistemi per la gestione di basi di Dati

Gestione dei valori nulli

Vincoli interrelazionali

Il linguaggio SQL: raggruppamenti

Interrogazioni complesse. SQL avanzato 1

Archivi e basi di dati - ing. M. Cossentino. Settore. Traccia 1. Traccia 200. Settore non polarizzato

ALGEBRA RELAZIONALE. L algebra relazionale

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

Operatori aggregati. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni con raggruppamento

Esercitazione 2 SQL.

Manuale SQL. Manuale SQL - 1 -

Il linguaggio SQL: raggruppamenti

Laboratorio di Basi di Dati

Basi di dati. Gabriella Trucco

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

Linguaggio SQL. Prof. Giuseppe Tandoi

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

OPERATORI LOGICI: AND, OR, NOT

Elena Baralis 2007 Politecnico di Torino 1

E possibile ordinare le righe del risultato di una interrogazione attraverso la clausola order by, a chiusura di una interrogazione.

Informatica II Basi di Dati (07/08) Parte 2. 4 Accesso ai dati di un DB. Accesso ai dati di un DB. Accesso ai dati di un DB

Gestione di basi di dati relazionali con SQL (parte I) Linguaggi per basi di dati

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

SQL: RAGGRUPPAMENTI, QUANTIFICAZIONE, METODO. Patrizio Dazzi a.a

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

BASI DATI: algebra relazionale

Basi di Dati. Concetti Avanzati

ISBN Titolo CasaEd AnnoEd

Prova Pratica di Informatica, Modulo Basi di dati Appello 23/07/2018

BASE DI DATI. Concetti trattati: Funzioni aggregate Raggruppamenti Nidificazione Viste. Informatica Umanistica Università di Pisa

ALGEBRA'RELAZIONALE'

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

Prova Scritta di Basi di Dati

Aggiornamenti e Interrogazioni

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto

SQL - Structured Query Language

Corso sul linguaggio SQL

STRUCTURED QUERY LANGUAGE (SQL) E INTERROGAZIONI. Patrizio Dazzi a.a

Interrogazioni in SQL SQL. Interrogazioni in SQL. Sintassi. Significato dell interrogazione. Notazione

Laboratorio di Basi di Dati

Lezione 6. Algebra e Calcolo Relazionale

Database parte 2. Database azienda

Interrogazioni in SQL SQL. Interrogazioni in SQL. Cenni sull implementazione

Manuale Comandi SQL SQL. Sito per esercitarsi (on line) SQL

Domini Numerici Esatti (1) I domini numerici esatti permettono di definire attributi che contenegono valori esatti interi o con parte frazionaria.

Transcript:

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 i2.c 2,..., R in.c n è una lista di nomi di colonne la notazione R.C indica la colonna di nome C nella relazione R se una sola relazione nella lista di relazioni nella clausola FROM ha una colonna di nome C, si può usare C invece di R.C F è un predicato analogo ai predicati visti nel caso dell'operazione relazionale σ Il significato dell interrogazione SQL: SELECT R i1.c 1, R i2.c 2,..., R in.c n FROM R 1, R 2,..., R k WHERE F; può essere espresso per mezzo della seguente espressione algebrica π R i1.c 1, R i2.c 2,..., R in.c n (σ F (R 1 x R 2 x...x R k )) 55 1

esempi dalla base di dati impiegati e dipartimenti Q1: selezionare gli impiegati che hanno uno stipendio maggiore di 2000 σ Stipendio>2000 (Impiegati) SELECT * FROM Impiegati WHERE Stipendio>2000; il simbolo * nella clausola di proiezione indica che tutte le colonne delle relazione devono essere ritrovate 56 Risultato Q1: Imp# Nome Mansione Data_A StipendioPremio_P Dip# 7566 Rosi dirigente 02-Apr-81 2975,00? 20 7698 Blacchi dirigente 01-Mag-81 2850,00? 30 7782 Neri 01-Giu-81 2450,00 200,00 10 7839 Dare 17-Nov-81 2600,00 300,00 10 7977 Verdi dirigente 10-Dic-80 3000,00? 10 57 2

esempi dalla base di dati impiegati e dipartimenti Q2: selezionare il nome e il numero di dipartimento degli impiegati che hanno uno stipendio maggiore di 2000 e hanno mansione di π Nome,Dip# (σ Stipendio>2000 Mansione= (Impiegati)) 58 SELECT WHERE nome, Dip# FROM Impiegati Stipendio>2000 AND Mansione = ; Q2: Nome Dip# Neri 10 Dare 10 esempi dalla base di dati impiegati e dipartimenti Q3: selezionare il numero degli impiegati che lavorano nel dipartimento 30 e sono ingegneri o tecnici π Imp# (σ Dip#=30 (Mansione= ' Mansione= 'tecnico ) (Impiegati)) SELECT Imp# FROM Impiegati WHERE Dip#=30 AND (Mansione = ' OR Mansione = 'tecnico ); 59 risultato Q3: Imp# 7499 7521 7844 7900 3

Condizioni su intervalli di valori l'operatore BETWEEN permette di determinare le tuple che contengono in un dato attributo valori in un intervallo dato formato: forma negata C BETWEEN v 1 AND v 2 C NOT BETWEEN v 1 AND v 2 60 Condizioni su intervalli di valori esempio SELECT Nome, Stipendio FROM Impiegati WHERE Stipendio BETWEEN 1100 AND 1400; Nome Stipendio Adami 1100,00 Milli 1300,00 61 4

Ricerca di valori in un insieme l'operatore IN permette di determinare le tuple che contengono, in un dato attributo, uno tra i valori in un insieme specificato formato C IN (v 1, v 2,...,v n ) C IN sq forma negata (dove sq è una sottoquery) C NOT IN (v 1, v 2,...,v n ) C NOT IN sq 62 Ricerca di valori in un insieme esempio SELECT * FROM Dipartimenti WHERE Dip# IN (10,30); Dip# Nome_Dip Ufficio Divisione Dirigente 10 Edilizia Civile 1100 D1 7977 30 Edilizia Stradale 5100 D2 7698 63 5

64 Confronto tra stringhe di caratteri l'operatore LIKE permette di eseguire alcune semplici operazioni di pattern-matching su colonne di tipo stringa un predicato di confronto espresso con l'operatore LIKE ha il seguente formato C [NOT] LIKE pattern dove pattern è una stringa di caratteri che può contenere i caratteri speciali % e _ il carattere % denota una sequenza di caratteri arbitrari di lunghezza qualsiasi (anche zero) il carattere _ denota esattamente un carattere 65 Confronto tra stringhe di caratteri esempio: determinare tutti gli impiegati che hanno 'R' come terza lettera del cognome SELECT Nome FROM Impiegati WHERE Nome LIKE ' r%'; Nome Martini Neri Dare Turni Fordi Verdi 6

Ordinamento del risultato di una query negli esempi visti, l'ordine delle tuple risultato di una interrogazione è determinato dal sistema (dipende dalla strategia usata per eseguire l'interrogazione) è possibile specificare un ordinamento diverso aggiungendo alla fine dell'interrogazione la clausola ORDER BY esempio: elencare lo stipendio, la mansione e il nome di tutti gli impiegati del dipartimento 30, ordinando le tuple in ordine crescente in base allo stipendio 66 67 Ordinamento del risultato di una query SELECT Stipendio, Mansione, Nome FROM Impiegati WHERE Dip#=30 ORDER BY Stipendio; - le tuple sono ordinate in ordine crescente Stipendio Mansione Nome 800,00 tecnico Andrei 800,00 tecnico Bianchi 800,00 segretaria Martini 1500,00 tecnico Turni 1950,00 Gianni 2850,00 dirigente Blacchi 7

Ordinamento del risultato di una query l'ordinamento non è limitato ad una sola colonna, né ad un ordine crescente esempio: si vuole elencare mansione, nome e stipendio di tutti gli impiegati ordinando le tuple in base alla mansione in ordine crescente, ed in base allo stipendio in ordine decrescente SELECT Mansione, Stipendio, Nome FROM Impiegati ORDER BY Mansione ASC, Stipendio DESC; 68 69 Ordinamento del risultato di una query Mansione Stipendio Nome dirigente 3000,00 Verdi dirigente 2975,00 Rosi dirigente 2850,00 Blacchi 2450,00 Neri 2000,00 Dare 1950,00 Gianni 1600,00 Rossi 1300,00 Milli 1100,00 Adami segretaria 1000,00 Fordi segretaria 800,00 Martini segretaria 800,00 Scotti tecnico 1500,00 Turni tecnico 800,00 Andrei tecnico 800,00 Bianchi 8

70 Eliminazione dei duplicati supponiamo di voler ritrovare la lista di tutte le mansioni presenti nella relazioni Impiegati SELECT Mansione FROM Impiegati; Mansione tecnico tecnico dirigente segretaria dirigente segretaria tecnico segretaria dirigente Eliminazione dei duplicati è possibile richiedere l eliminazione dei duplicati tramite la clausola DISTINCT SELECT DISTINCT Mansione FROM Impiegati; Mansione tecnico dirigente segretaria 71 9