SQL: Lezione 2 Esercitazione per il corso Basi di Dati Gabriel Kuper Nataliya Rassadko

Slides:



Advertisements
Presentazioni simili
Soluzione Esercitazione 4 Blocco slides cap04-III.
Advertisements

Microsoft SQL Server 2008 Utilizzo. Creazione DataBase CREATE DATABASE CREATE DATABASE Cinema.
1 DATA BASE GESTIONE VENDITE. 2 QUERY1 Per ogni Cognome di Rappresentante e Descrizione di Prodotto calcolare la somma delle quantità vendute: Somma (Quantità)
SQL (Standard query language) Istruzioni per la creazione di una tabella: Create table ( tipo, (, [vincoli]) Primary key ( ) CHIVE PRIMARIA Foreign key(
JPA Overview della tecnologia. Java Persistence Architecture Definita nella JSR-220 EJB 3.0 ( Tentativo di unificare EJB2.1 con.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Each student will be able to ask an adult or stranger: What do you like to do? and What dont you like to …?
Un DataBase Management System (DBMS) relazionale client/server.
MySQL Esercitazioni. Ripasso Connessione a MySQL. Creazione delle basi di dati e delle tablelle. Inserimento dei dati. Interrogazioni.
Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 81 Ricerca e visualizzazione delle informazioni Gestione, ricerca, navigazione: accesso alle.
SQL Esercitazione per il corso “Basi di Dati” Gabriel Kuper
SQL: Lezione 7 Nataliya Rassadko
SQL: Lezione 6 Nataliya Rassadko
Nataliya Rassadko SQL: Lezione 9 Nataliya Rassadko
Nataliya Rassadko SQL: Lezione 5 Nataliya Rassadko
Esercitazione per il corso “Basi di Dati”
Nataliya Rassadko SQL: Lezione 8 Nataliya Rassadko
SQL Esercitazione per il corso “Basi di Dati” Gabriel Kuper
SQL: Lezione 10 Nataliya Rassadko
Memento Chi seguirà il modulo di e-learning?
Esercitazione.
SELECT STATEMENT Clausola WHERE permette di limitare il numero di record da estrarre SELECT */ [DISTINCT] colonna/ espressione [alias],… FROM table [WHERE.
PRODOTTO CARTESIANO Otteniamo un prodotto cartesiano quando: viene omessa la condizione di join una condizione di join non è valida tutte le righe della.
FUNZIONI DI GRUPPO Le funzioni di gruppo operano su un set di record restituendo un risultato per il gruppo. AVG ([DISTINCT|ALL] n) media, ignora i valori.
SQL: Structured Query Language
SOURCE TERM ON NPP SAFETY ANALYSES Marino Mazzini Professore Ordinario nel s.s.d. Impianti Nucleari Università di Pisa Facoltà di Ingegneria Dipartimento.
Università degli studi di Catania
Repetita iuvant Le cose ripetute aiutano - M EETING REGIONALE PER GLI U FFICIALI DI GARA E A LLENATORI DI P ESISTICA DEL F RIULI V ENEZIA G IULIAE A LLENATORI.
L’algebra relazionale
sql: esempi di linguaggio sql nell'implementazione mysql
Basi di Dati e Sistemi Informativi
SUBQUERY Chi ha un salario maggiore di quello di Abel? Occorre scomporre la query in due sotto problemi: MAIN : quali impiegati hanno un salario maggiore.
1 2 3 Il nome del Voki ________________ Città _______________ Lavoro _______________ Interessi __________________ Il nome del Voki ________________ Città
1 Basi di dati (Sistemi Informativi) Scuola di Dottorato in Scienze Veterinarie per la Salute Animale e la Sicurezza Alimentare a.a Ing. Mauro.
SQL Developer Lanciare sqldeveloper (alias sul desktop) / c:\Oracle\sqldeveloper Associare tutti i tipi di file, se volete Tasto destro sulla spina “connection”
Dynamic SQL.
Esercitazione 7.
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.
Database Elaborato da: Claudio Ciavarella & Marco Salvati.
Approfondimenti SQL.
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.
ClienteNomeCCittà RossiC1Roma RossiC2Milano BianchiC3Roma VerdiC4Roma ArticoloADenom.Prezzo A1Piatto3 A2Bicchiere2 A3Tazza4 OrdineCANpezzi C1A1100 C2A2200.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
DML – Data Manipulation Language
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
rielaborato da Atzeni-etal., Basi di dati, Capitolo 4
Interrogazione di una base di dati relazionale
Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3
Corso: gestione dell’azienda agraria e marketing
Basi di dati multimediali Gabriele Monfardini - a.a
COME SI CREA UNA TABELLA CON UNA CHIAVE ESTERNA
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Corso di Basi di Dati Il Linguaggio SQL
Frequenza di fallimento della terapia di prima linea basata su INI vs
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Dino Pedreschi Dipartimento di Informatica a.a. 2011– 2012
SQL per la modifica di basi di dati
Classe V A A.s – 2012 Programma di Informatica
Structured Query Language
Nomi degli studenti che quest’anno hanno preso un voto
APPUNTI SUL LINGUAGGIO C
CALENDARIO TURNI DI LABORATORIO 1 CFU Botanica generale
Docente: Sabato Bufano
Transcript della presentazione:

SQL: Lezione 2 Esercitazione per il corso Basi di Dati Gabriel Kuper Nataliya Rassadko

Lezione 2 Compito da casa WHERE: LIKE NULL UNKNOWN ORDER BY Esercizi

ESERCIZIO Data la seguente tabella: Movie(title, year, length, inColor, studioName, producerC#) Visualizzare in una tabella con intestazione (Anno,titolo, Studio),tutti i film in bianco e nero, prodotti dopo lanno 1990 ma prima del SELECT yeas as Anno, title as Titolo, studioName as Studio FROM movie WHERE not inColor AND year>1990 AND year<1995

ESERCIZIO Data la seguente tabella: Movie(title, year, length, inColor, studioName, producerC#) Visualizzare tutti gli attributi dei film della serie shrek SELECT * FROM movie WHERE title=shrek or title=shrek 2 or title=shrek 3

ESERCIZIO Data la seguente tabella Scrivere la query che restituisce i nomi presenti Scrivere la query che restituisce i cognomi presenti Scrivere la query che restituisce le età presenti Scrivere la query che restituisce nome, cognome e residenza di tutti i clienti Scrivere la query che restituisce tutti i dati dei clienti Clienti CognomeNomeCittàSalarioEtà

ESERCIZI Data la seguente tabella Scrivere la query che restituisce nome e cognome di chi guadagna più di 2000; Scrivere la query che restituisce cognome e nome dei clienti che abitano a Trento; Scrivere la query che restituisce cognome e nome dei clienti che abitano a Trento e guadagnano più di 2500; Scrivere la query che restituisce cognome, nome e salario dei clienti che hanno età compresa fra 20 e 40 anni (estremi compresi); Scrivere la query che restituisce cognome, nome e salario dei clienti che risiedono a Milano e hanno meno di 20 anni o più di 30. Clienti CognomeNomeCittàSalarioEtà

INTERROGAZIONI SQL La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le interrogazioni in modo dichiarativo, ovvero si specifica lobiettivo dellinterrogazione e non il modo in cui ottenerlo. Esistono molti modi diversi per esprimere la stessa interrogazione in SQL: il programmatore dovrà effettuare una scelta basandosi non (o non solo) sullefficienza, ma anche su altri aspetti quali la leggibilità e la modificabilità dellinterrogazione.

INTERROGAZIONI SEMPLICI Le operazioni di interrogazione in SQL vengono specificate per mezzo della gia vista istruzione select. select ListaAttributi from ListaTabelle [ where Condizioni]

Paragono di Stringhe Due stringhe sono uguali se contengono simboli uguali nello stesso ordine Operatori >, >=, <, <= controllono ordine lessicografico (alfabetico) bar<bargain<barracuda In SQL, possiamo paragonare non solo stringa con stringa, ma anche stringa con campione s LIKE p

LIKE Il campione può contenere caratteri specifici e caratteri jolly. I normali caratteri devono corrispondere esattamente ai caratteri specificati nella stringa di caratteri del modello. I caratteri jolly possono venire abbinati a frammenti arbitrari della stringa.

LIKE _ (underscore) per indicare un singolo carattere qualsiasi in quella posizione della stringa; % (percento) per indicare una sequenza qualsiasi di caratteri in quella posizione della stringa.

LIKE LIKE 'xyz%' vengono ricercate tutte le stringhe che iniziano con i caratteri xyz LIKE '%xyz' serve a ricercare tutte le stringhe che finiscono con i caratteri xyz LIKE '%xyz%' per tutte le stringhe che contengono al loro interno i caratteri xyz LIKE '_xyz' controlla le stringhe di 4 caratteri che finiscono con xyz

ESERCIZIO 1 Visualizzare titolo e anno dei film che sono stati prodotti dagli studi cinematografici che hanno una ch allinterno del nome. SELECT title FROM Movie WHERE studioName LIKE %ch%; Movie(title,year,length,inColor,studioName,producerC#) StarsIn(movieTitle,movieYear,starName) MovieStar(name,address,gender,birthdate) MovieExec(name,address,cert#,netWorth) Studio(name,address,presC#)

ESERCIZIO 2 Estrarre tutti gli studi cinemantografici che hanno prodotto film con titoli che contengono la parola pace. SELECT studioName FROM movie WHERE title LIKE %PACE%;

ESERCIZIO 3 Estrarre tutti i film in cui hanno lavorato attori che hanno come iniziali del nome Fr. SELECT title FROM Movie, StarsIn, WHERE starName LIKE FR%;

ESERCIZIO 4 Estrarre tutti i film il titolo di quali contiene s. SELECT title FROM Movie WHERE title LIKE %s%;

ESCAPE E se campione contiene simboli % e _ come simboli definiti? s LIKE x%x% ESCAPE x x è il simbolo di controllo Qualsiasi stringa che ha % come il simbolo iniziale e finale % + qualsiasi_stringa + %

NULL e UNKNOWN Il valore NULL significa: unknown: esiste un valore ma non e conosciuto valore inapplicable: non ci sono valori che abbiano senso (e.g., il valore dellattributo studioName per un video amatoriale) valore |_|: non si e autorizzati a conoscere il valore (e.g. netWorth value for some producers)

NULL Dal punto di vista di teoria delle relazioni, non cè bisogna di NULL, perchè non ci possono essere le celle senza valore, se DB è progettata correttamente Però DB ideale non è efficace DB in 3NF è efficace ma richiede la presenza di NULL Che cosè 3NF? Esempi di non-3NF

NULL e UNKNOWN Quando NULL e una parte di un operazione aritmetica, il risultato e un NULL, e.g. 5*x=NULL, se x = NULL Quando NULL e parte di un espressione di comparazione, il risultato e UNKNOWN, e.g., 5 > x = UNKNOWN, se x = NULL NULL non e costante IS NULL ritorna true se un valore è nullo IS NOT NULL ritorna true se un valore non è nullo

NULL & UNKNOW Supponiamo di avere la seguente query: Intuitivamente immaginiamo che tutte le tuple dovrebbero essere ritornate Select title From Movie Where lenght>=90 or lenght<90;

NULL & UNKNOW In realtà non tutti valori saranno ritornati con questa query. In questo caso, veranno ritornati solo le tuple con valore non nullo dellattributo length La query è equivalente a (esercizio): Select * From Movie Where lenght is not NULL or length is NULL;

NULL e UNKNOWN

ORDER BY È possibile utilizzare lopzione order by su più di un attributo. Quando due valori sono uguali per il primo attributi vengono ordinati in base al secondo.

ORDER BY il risultato puo essere ordinato secondo uno specifico attributo: ORDER BY Per default lordine e crescente, per ordinare il risultato in maniera decrescente si usa la keyword: DESC e.g.:

ORDER BY Visualizzare i titoli dei film ordinati in basi alla durata del film. SELECT title FROM Movie ORDER BY length;

ORDER BY Visualizza i film (title, year, length) ordinati per anno, se più film sono stati prodotti nello stesso anno lordinamento deve essere fatto per durata. SELECT "title", "year", "length" FROM "Movie" ORDER BY "year", "length;

ORDER BY Visualizzare tutti i film ordinati in maniera decrescente per anno. SELECT "title", "year", "length" FROM "Movie" ORDER BY "year" DESC ;

ESERCIZIO Visualizzare lindirizzo dello studio cinematografico Dream Works SKG [us] SELECT address FROM Studio WHERE name LIKE Dream Works SKG [us]";

ESERCIZIO Visualizzare il compleanno dellattore Robert De Niro (De Niro, Robert). SELECT birthdate FROM MovieStar" WHERE name LIKE De Niro, Robert";

ESERCIZIO Data la tabella: Impiegato (Nome,Cognome, Dipart, Ufficio, Stipendio,Città) Restituire lo stipendio mensile dellimpiegato di cognome Bianchi SELECT Stipendio/12 as StipendioMensile FROM Impiegato WHERE Cognome = Bianchi

ESERCIZIO Visualizzare, in ordine di produzione, tutti i film, se più film sono stati prodotti nello stesso anno ordinarli per ordine alfabetico rispetto al titolo. SELECT * FROM Movie ORDER year, title;

ESERCIZIO Estrarre gli impiegati che hanno un cognome che termina con la vocale i e che ha una o in seconda posizione. Impiegato (Nome,Cognome, Dipart, Ufficio, Stipendio,Città) SELECT * FROM Impiegato WHERE Cognome LIKE _o%i

ESERCIZIO Trovare tutte le star che appaiono nei film prodotti prima del 1979 o con un titolo che contiene la parola WAR SELECT starName FROM StarIn, Movie WHERE movieTitle = title and (year<1979 or title LIKE %WAR%);

ESERCIZIO: compito da casa Visualizzare in una tabella con intestazione, Nome, tutti gli attori che hanno partecipato almeno ad un film in bianco e nero.

Compito da casa 1 Product (maker, model, type) PC (model, speed, ram, hd, rd, price) Laptop (model, speed, ram, hd, screen, price) Printer (model, color, type, price) Trovare tutti model del PC, speed del loro processore e capacità di hd, che costano ( price ) meno di 1200 Trovare tutti i maker dei printer del tipo type Trovare tutti model, ram, screen di laptop con prezzo meno 1200

Compito da casa 2 Classes (class, type, country, numGuns, bore, displacement) Ships (name, class, launched) Battles (name, date) Outcomes (ship, battle, result) Trovare i classi ( class ) ed i paesi ( country ) che producono le navi ( Ships ) con almeno 10 numGuns Trovare tutti i nomi ( name ) delle navi ( Ships ) varati ( launched ) prima 1918 e rinomire la colonna del risultato come shipName Trovare i nomi delle navi ( Ships ) affondati (attributo result =sunk) nelle battaglie marine e i nomi di quelle battaglie ( battle ) Trovare i nomi di tutte le navi che hanno la lettere iniziale R Trovare i nomi di tutte le navi che hanno almento tre parole (per esempio King George V)