SOLUZIONI COMMENTATE

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "SOLUZIONI COMMENTATE"

Transcript

1 Nel database Biblioteca vi sono le seguenti tabelle: SOLUZIONI COMMENTATE Utenti := < id, nome, cognome, indirizzo,città, tel_fisso,cellulare > Prestiti := < id, id_libro, id_utente, data_ora_prestito, data_ora_restituzione> Libri := < id, titolo, descrizione, data_pubblicazione> Autori:=<id,nome,cognome> Autori_Libri := <id_autore,id_libro> 1) Creazione tabelle: Di seguito sono riportati gli statement di creazione di MySQL dove figura KEY al posto di INDEX e CONSTRAINT <nome indice chiave esterna> prima di FOREIGN KEY. CONSTRAINT significa letteralmente VINCOLO. Infatti serve a specificare un vincolo referenziale CREATE TABLE `biblioteca`.`autori` ( `id` int(10) unsigned NOT NULL auto_increment, `nome` varchar(45) NOT NULL, `cognome` varchar(45) NOT NULL, PRIMARY KEY (`id`), KEY `nome_cognome` (`nome`,`cognome`) ) CREATE TABLE `biblioteca`.`libri` ( `id` int(10) unsigned NOT NULL auto_increment, `titolo` varchar(100) NOT NULL, `descrizione` varchar(500) NOT NULL, `data_pubblicazione` date NOT NULL, PRIMARY KEY (`id`) ) CREATE TABLE `biblioteca`.`utenti` ( `id` int(10) unsigned NOT NULL auto_increment, `nome` varchar(45) NOT NULL, `cognome` varchar(45) NOT NULL, `indirizzo` varchar(100) NOT NULL, `città` varchar(45) NOT NULL, `tel_casa` varchar(10) NOT NULL, `cellulare` varchar(10) NOT NULL, PRIMARY KEY (`id`), KEY `nome_cognome` (`nome`,`cognome`) ) OSSERVAZIONE: Notare che si sono definiti degli indici su nome e cognome utente e nome e cognome autore perchè si presume che si effettueranno frequentemente ricerche per utente o per autore (specificando sia nome che cognome). Ha senso definire degli indici su questi campi perchè sono relativamente brevi e la ricerca viene effettuata confrontando le stringhe a partire dal primo carattere, mentre nel caso del titolo o della descrizione dei libri si

2 ricercano parole all'interno della stringa per cui gli indici, che si basano sull'ordinamento dei valori e sull'associazione di valori numerici alle stringhe, non porterebbero i vantaggi desiderati(sarebbe più conveniente creare un indice delle singole parole alla maniera di Google o Word: un'altro storage engine di MySQL(quello che si utilizza qui è InnoDB che permette di specificare vincoli referenziali), MySQL ISAM fa proprio questo con i campi Text e Blob con indici detti FULLTEXT vedi al riguardo Differenze My ISAM e InnoDB). Per ulteriori dettagli vedi INDICI (par.2.4) Database Open Office CREATE TABLE `biblioteca`.`prestiti` ( `id` int(10) unsigned NOT NULL auto_increment, `id_libro` int(10) unsigned NOT NULL, `id_utente` int(10) unsigned NOT NULL, `data_ora_prestito` datetime NOT NULL, `data_ora_restituzione` datetime, PRIMARY KEY (`id`), KEY `fk_utente` (`id_utente`), KEY `fk_libro` (`id_libro`), CONSTRAINT `fk_libro` FOREIGN KEY (`id_libro`) REFERENCES `libri` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT `fk_utente` FOREIGN KEY (`id_utente`) REFERENCES `utenti` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE ) OSSERVAZIONE IMPORTANTE: notare che data_ora_restituzione NON ha il vincolo NOT NULL perchè quando prendo in prestito un libro non immetto un valore per data_ora_restituzione che rimane pari a NULL fino al momento della restituzione. CREATE TABLE `biblioteca`.`autori_libri` ( `id_autore` int(10) unsigned NOT NULL, `id_libro` int(10) unsigned NOT NULL, KEY `FK_autore` (`id_autore`), KEY `FK_libri` (`id_libro`), CONSTRAINT `FK_autore` FOREIGN KEY (`id_autore`) REFERENCES `autori` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT `FK_libri` FOREIGN KEY (`id_libro`) REFERENCES `autori` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE ) ; OSSERVAZIONE IMPORTANTE: I vincoli sull'update per le tabelle autori_libri e prestiti sono in effetti superflui poichè essendo la chiave primaria un semplice contatore autoincrementato è improbabile che venga modificata (avrebbe senso se la chiave primaria fosse inserita direttamente in fase di immissione dei dati es. CODICE FISCALE). Andrebbe benissimo anche l'opzione ON UPDATE RESTRICT. In effetti in questo caso poiché le opzioni di default di MySQL sono proprio RESTRICT su DELETE e su UPDATE potrei fare a meno di specificare i vincoli referenziali. Tuttavia all'esame e al compito dovete comunque commentare questa omissione per far capire al docente che

3 sapete cos'è un vincolo referenziale, quando e perchè viene applicato e perchè eventualmente può essere omesso. ESERCIZIO 2) Quando devo cercare qualcosa all'interno di una stringa(una sequenza di caratteri ASCII) devo ricorrere a LIKE: SELECT titolo,descrizione FROM libri WHERE (descrizione LIKE '%divulgazione%') AND (descrizione LIKE '%universo%'); ESERCIZIO 3) E' possibile risovere il problema posto in maniere differenti: Prima Soluzione) Creo una tabella di supporto che contenga il numero di libri scritti dai vari autori. Posso ottenere questa tabella nel seguente modo: CREATE TABLE libriscritti( SELECT id_autore,count(*) as num_libri FROM autori_libri GROUP BY id_autore HAVING num_libri>2 ); Il motivo per cui ho creato questa tabella è che viene richiesto il nome e cognome di ogni autore e questi non posso metterli direttamente nella SELECT se nella GROUP BY metto solo id_autore (vedi subito dopo il titolo Raggruppamenti Guida SQL). Procedo pertanto come segue: mi salvo il risultato della SELECT precedente in una tabella di appoggio che chiamo libriscritti ed effettuo una GIUNZIONE tra questa tabella e autori. In ultimo effettuo la PROIEZIONE su nome e cognome della tabella autori.

4 SELECT nome, cognome FROM autori, libriscritti WHERE (autori.id = libriscritti.id_autore) Seconda Soluzione) Non ho bisogno di creare effettivamente un'altra tabella, posso semplicemente mettere la SELECT di prima all'interno della clausola FROM e le assegno come alias libriscritti come mostrato di seguito SELECT nome, cognome FROM autori,(select id_autore,count(*) as num_libri FROM autori_libri GROUP BY id_autore HAVING num_libri>2) AS libriscritti WHERE (autori.id = libriscritti.id_autore) Terza Soluzione) E' una soluzione ancora più semplice delle precedenti. Posso raggruppare in base a 3 attributi invece che ad uno solamente: 1. Prendo anche la tabella autori ed effettuo la giunzione con la tabella autori_libri 2. Raggruppo in base agli attributi: id_autore, nome e cognome (in questa maniera si ottenengono gli stessi gruppi ottenuti effettuando il raggruppamento solo in base a id_autore perchè nome e cognome risulteranno gli stessi a parità di id_autore e pertanto gli attributi aggiunti nella clausola GROUP BY non modificano la composizione del gruppo) In finale ottengo: SELECT nome, cognome FROM autori_libri, autori WHERE (autori.id = autori_libri.id_autore ) GROUP BY id_autore,nome,cognome HAVING COUNT(*)>2 Le tre soluzioni appena analizzate sono riassunte nel seguente riquadro:

5 CREATE TABLE libriscritti( SELECT id_autore,count(*) as num_libri FROM autori_libri GROUP BY id_autore HAVING num_libri>2 ); SELECT nome, cognome FROM autori,libriscritti WHERE (autori.id = libriscritti.id_autore) oppure: SELECT nome, cognome FROM autori,(select id_autore,count(*) as num_libri FROM autori_libri GROUP BY id_autore HAVING num_libri>2) AS libriscritti WHERE (autori.id = libriscritti.id_autore) oppure: SELECT nome, cognome FROM autori_libri, autori WHERE (autori.id = autori_libri.id_autore ) GROUP BY id_autore,nome,cognome HAVING COUNT(*)>2 ESERCIZIO 4) Si parte dall'individuazione delle tabelle che contengono i dati di interesse: Da un lato devo visualizzare nome e cognome degli utenti quindi avrò bisogno di utenti, dall'altro mi serve data_ora_prestito che si trova nella tabella prestiti. Come sempre quando si ha a che fare con più di una tabella si deve effettuare la GIUNZIONE(JOIN) ( più esattamente L'INNER JOIN ) tra le tabelle ovvero filtrare solo i record effettivamente associati delle 2 tabelle dal miscuglio del prodotto cartesiano. FROM utenti,prestiti mi restituirebbe, infatti, il prodotto cartesiano delle 2 tabelle ovvero tutte le possibili coppie utente,prestito anche se l'utente non ha effettuato il prestito in questione!!! Allo scopo di associare ogni utente con il prestito che ha effettuato mi serve il legame espresso dall'uguaglianza chiave esterna = chiave primaria. In questo modo si ottiene una tabella con tutti gli attributi di utenti e prestiti

6 SELECT * FROM utenti,prestiti WHERE (utenti.id=prestiti.id_utente) A questo punto però devo ulteriormente filtrare (RESTRIZIONE) i risultati ottenuti aggiungendo la condizione su data e ora del prestito ovvero aggiungendo un'altra condizione nella clausola WHERE. NOW() mi ritorna data e ora corrente, se sottraggo 1 MESE( - INTERVAL 1 MONTH.) dal valore restituito da NOW() avrò la data (e l'ora) di un mese fa: data_ora_prestito deve essere successiva( > ) alla data così ricavata. Rimane solo da effettuare la PROIEZIONE sulle colonne nome e cognome(ovvero visualizzare solo questi attributi). Non serve specificare il nome della tabella utenti perchè in prestiti non ci sono attributi omonimi per cui non si hanno problemi di ambiguità. In finale avremo: SELECT nome,cognome FROM utenti,prestiti WHERE (utenti.id=prestiti.id_utente) AND (data_ora_prestito > NOW() - INTERVAL 1 MONTH) ESERCIZIO 5) Quello che mi serve è associare libri, prestiti, utenti per scoprire chi ha preso in prestito cosa. La GIUNZIONE tra le tabelle viene effettuata, come al solito, uguagliando le chiavi esterne alle chiavi primarie associate( effettuo una RESTRIZIONE(WHERE) del PRODOTTO CARTESIANO Libri x Utenti x Prestiti ). Alla luce di ciò, posso iniziare con lo scrivere qualcosa del genere: SELECT * FROM libri,utenti,prestiti WHERE (libri.id=prestiti.id_libro) AND (utenti.id=prestiti.id_utente) Una volta effettuata la GIUNZIONE tra le tabelle è necessario effettuare un'ulteriore RESTRIZIONE dell'insieme dei risultati per ottenere solo le righe che mi interessano: quelle relative a Mario Rossi (aggiungo delle condizioni nella clausola WHERE con AND). Inoltre si devono visualizzare solo gli attributi (ovvero le colonne) di libri(proiezione) dunque nella

7 SELECT drovremo specificare libri.* al posto di *, in finale otterremo: SELECT libri.* FROM libri,utenti,prestiti WHERE (libri.id=prestiti.id_libro) AND (utenti.id=prestiti.id_utente) AND (utenti.nome='mario') AND (utenti.cognome='rossi') ESERCIZIO 6) Per prima cosa mi devo ricavare CHI HA SCRITTO COSA, mi servono pertanto i dati contenuti nella tabella autori, libri e nella tabella di associazione autori_libri, quindi avrò l'esigenza di effettuare la solita GIUNZIONE tra libri e autori_libri da un lato e autori e autori_libri dall'altro, ottenendo come risultato: SELECT * FROM autori,libri,autori_libri WHERE (libri.id=autori_libri.id_libro) AND (autori.id=autori_libri.id_autore) Questa query mi fornisce come risultato una tabella in cui per ogni riga ho gli attributi delle 3 tabelle, tra gli altri: nome e cognome dell'autore, data di pubblicazione,titolo del libro (scritto dal medesimo autore: ho infatti associato i libri con i loro effettivi autori), se uno stesso libro ha più autori vi saranno più righe per tale libro una per ogni co-autore. A questo punto devo filtrare i risultati in base al nome e cognome dell'autore che sto cercando: Stephen Hawking e ordinare i risultati in base alla data di pubblicazione (dalla data maggiore ovvero più recente a quella minore ). SELECT * FROM autori,libri,autori_libri WHERE (libri.id=autori_libri.id_libro) AND (autori.id=autori_libri.id_autore) AND (nome='stephen') AND (cognome = 'Hawking') ORDER BY data_pubblicazione DESC Poichè non mi servono infatti tutti gli attributi ma solamente il titolo del libro, effettuo una PROIEZIONE (cioè visualizzo solo alcune colonne) sul solo attributo titolo e visto che sono richiesti solamenti i 3 libri più recenti limito i risultati ai primi 3 attraverso la clausola LIMIT come mostrato di seguito:

8 SELECT titolo FROM autori,libri,autori_libri WHERE (libri.id=autori_libri.id_libro) AND (autori.id=autori_libri.id_autore) AND (nome='stephen') AND (cognome = 'Hawking') ORDER BY data_pubblicazione DESC LIMIT 3; ESERCIZIO 7) Devo innanzitutto determinare la durata di ogni prestito: questo significa effettuare la differenza tra data_ora_restituzione e data_ora_prestito per ogni prestito. A questo scopo utilizzo la funzione TIMESTAMPDIFF (vedi esempi in soluzioni di Esercizi_SQL2) e specifico che intendo calcolare tale differenza in giorni specificando DAY come primo argomento della funzione(anche se non è specificato dal problema è abbastanza plausibile che l'unità temporale richiesta sia questa). Ottengo tale risultato attraverso la seguente query: SELECT TIMESTAMPDIFF(DAY,data_ora_prestito,data_ora_restituzione) AS durata_in_giorni FROM prestiti Quello che voglio però è la media e a questo punto è immediato calcolarla attraverso la funzione AVG, in finale avrò SELECT AVG(TIMESTAMPDIFF(DAY,data_ora_prestito,data_ora_restituzione)) AS durata_media_in_giorni FROM prestiti ESERCIZIO 8) Questa volta mi servono i dati che si trovano sia in prestiti (data e ora prestito, data e ora restituzione) che in utenti(nome, cognome), pertanto dovrò effettuare una GIUNZIONE tra le 2 tabelle prestiti e utenti. Come al solito avremo SELECT * FROM utenti,prestiti WHERE (utenti.id=prestiti.id_utente) Nella tabella risultante ho sia gli attributi di prestiti che di utenti, quindi ho data_ora_prestito e data_ora_restituzione, ma anche nome e cognome utente, insomma tutto quello che mi serve per effettuare

9 la query desiderata. Effettuo come prima il calcolo della durata del prestito con TIMESTAMPDIFF e filtro in base a nome e cognome, in finale avremo: SELECT AVG(TIMESTAMPDIFF(DAY,data_ora_prestito,data_ora_restituzione) ) AS durata_media_in_giorni FROM utenti,prestiti WHERE (utenti.id=prestiti.id_utente) AND (nome='mario') AND (cognome='rossi') Qui dovendo calcolare la media per un unico utente è superfluo usare GROUP BY. ESERCIZIO 9) I dati che mi servono si trovano in utenti e prestiti (se volessi visualizzare anche i libri non restituiti dovrei aggiungere anche libri ma per il momento non ci complichiamo la vita!). Come al solito si parte dal trovare CHI HA PRESO IN PRESTITO COSA effettuando la solita GIUNZIONE tra utenti e prestiti nel modo mostrato di seguito: SELECT * FROM prestiti,utenti WHERE (prestiti.id_utente = utenti.id); Questa tabella contiene tutti gli attributi delle due tabelle e in ogni riga ci sono sia la data e l'ora di restituzione sia il nome e cognome dell'utente che ha effettuato quel prestito insieme a tutti gli altri attributi. Quello che devo fare è effettuare un' ulteriore RESTRIZIONE( aggiungere un'altra condizione nella clausola WHERE ) restringendo l'insieme dei risultati alle righe per cui data_ora_restituzione non è specificata. A questo scopo utilizzo la funzione IS NULL. Inoltre devo imporre che il prestito sia stato effettuato ALMENO due mesi fa, per cui data_ora_prestito deve essere precedente a NOW() - INTERVAL 2 MONTH E' richiesto di visualizzare solamente nome e cognome dell'utente quindi devo effettuare una PROIEZIONE sulle colonne nome e cognome ottenendo: SELECT nome,cognome FROM prestiti,utenti WHERE (prestiti.id_utente = utenti.id) AND (data_ora_restituzione IS NULL) AND (data_ora_prestito < NOW() - INTERVAL 2 MONTH) Se un utente ha preso in prestito più libri però, il suo nome figurerà più volte nella tabella dei risultati(una per ogni libro preso in prestito).

10 Ho bisogno di eliminare i duplicati attraverso la clausola DISTINCT ottenendo: SELECT DISTINCT nome,cognome FROM prestiti, utenti WHERE (prestiti.id_utente=utenti.id) AND (data_ora_restituzione IS NULL) AND (data_ora_prestito < NOW() - INTERVAL 2 MONTH) ESERCIZIO 10) Prima Soluzione) Per determinare quali sono i libri più richiesti posso iniziare raggruppando i prestiti effettuati per ogni libro(group BY id_libro) e applicando la funzione COUNT(ovvero contandoli)... utilizzo un ALIAS per rendere tutto più chiaro. Otterrò una tabella con due sole colonne id_libro e num_prestiti. SELECT id_libro,count(*) as num_prestiti FROM prestiti GROUP BY id_libro Ordinando le righe per valori di num_prestiti decrescenti (la prima riga è quella per cui ho il valore di num_prestiti più grande e poi via via decrescendo man mano che scendo verso il basso) e limitando i risultati visualizzati ai primi 10 (LIMIT 10) otterrei l'elenco, ordinato in base al numero di prestiti effettuati, dei 10 libri più letti: SELECT id_libro,count(*) as num_prestiti FROM prestiti GROUP BY id_libro ORDER BY num_prestiti DESC LIMIT 10 C'è solo un problema... ciò che è richiesto è il titolo dei libri non l'id!. Procedo pertanto come segue: A questa tabella associo l'alias TOP10 ed effettuo una GIUNZIONE tra questa tabella e la tabella libri, visualizzando solo la colonna titolo che è quella che mi interessa: SELECT titolo FROM libri, (SELECT id_libro,count(*) as num_prestiti FROM prestiti GROUP BY id_libro ORDER BY num_prestiti DESC LIMIT 10) AS TOP10 WHERE (libri.id = TOP10.id_libro);

11 Seconda Soluzione) Oppure posso effettuare subito la giunzione con libri e raggruppare in base a: id_libro e titolo ricordando che l'aggiunta dell'attributo titolo non modifica la composizione dei gruppi poiché tutti i libri che hanno lo STESSO ID_LIBRO avranno necessariamente lo STESSO TITOLO. La query diventa: SELECT titolo FROM prestiti, libri WHERE (libri.id = prestiti.id_libro) GROUP BY id_libro,titolo ORDER BY COUNT(*) DESC LIMIT 10 Notare che COUNT(*) viene messo nella clausola ORDER BY poiché devo visualizzare solamente il titolo dei libri (e non il numero di prestiti effettuati per ogni libro). MySQL 5.0 interpreta correttamente questa istruzione mentre versioni precedenti NO Riassumendo: SELECT titolo FROM libri, (SELECT id_libro,count(*) as num_prestiti FROM prestiti GROUP BY id_libro ORDER BY num_prestiti DESC LIMIT 10) AS TOP10 WHERE (libri.id = TOP10.id_libro); Oppure: SELECT titolo FROM prestiti, libri WHERE (libri.id = prestiti.id_libro) GROUP BY id_libro,titolo ORDER BY COUNT(*) DESC LIMIT 10

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti: Date le tabelle: Clienti := < id, nome, cognome, indirizzo,città > Ordini := < id, data_ora_ordine, id_prodotto, id_cliente, quantità> Prodotti := < id, nome, descrizione, costo,scorte > INDICI Prevediamo

Dettagli

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

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Si consiglia di creare il data base, inserire i dati nelle tabelle, provare

Dettagli

SQL (STRUCTURED QUERY LANGUAGE)

SQL (STRUCTURED QUERY LANGUAGE) SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura

Dettagli

VIDES. Mariagrazia Rossi

VIDES. Mariagrazia Rossi VIDES Mariagrazia Rossi Sommario Descrizione della realtà... 2 Requisiti Funzionali... 2 Requisiti non Funzionali... 3 Dizionario dei termini... 3 Diagramma dei casi d uso... 4 CASI D USO... 7 Process

Dettagli

SQL (STRUCTURED QUERY LANGUAGE)

SQL (STRUCTURED QUERY LANGUAGE) SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language DDL Obiettivo: Definire la struttura

Dettagli

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7 ESEMPI DI QUERY SQL Dati di esempio... 2 Query su una sola tabella... 2 Esempio 1 (Ordinamento)... 2 Esempio 2 (Scelta di alcune colonne)... 3 Esempio 3 (Condizioni sui dati)... 3 Esempio 4 (Condizioni

Dettagli

Create la tabella Dipendenti:

Create la tabella Dipendenti: Create la tabella Dipendenti: create table Dipendenti( id int(3) not null auto_increment, livello int(1) not null, stipendio int(4) not null, primary key(id)); mysql> describe Dipendenti; --------+------+-----+---------+----------------+

Dettagli

SQL -DDL. FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza)

SQL -DDL. FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza) 26/03/2013 SQL SQL -DDL Esercizio 4.3 Dare le definizioni SQL delle tre tabelle FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza) rappresentando

Dettagli

Istruzioni DML di SQL

Istruzioni DML di SQL Istruzioni DML di SQL Pag. 99 par.4 1 Sintassi: Costrutto: INSERT INTO (Inserimento di dati in tabelle) INSERT INTO [(, ,, )] VALUES (, ,

Dettagli

Storia. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia:

Storia. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia: Corso di Basi di Dati Spaziali Linguaggi: SQL Angelo Montanari Donatella Gubiani Storia Storia: 1974: prima proposta SEQUEL 1981: prime implementazioni 1983: standard di fatto 1986, 1989, 1992 e 1999:

Dettagli

Il linguaggio SQL: le basi

Il linguaggio SQL: le basi Il linguaggio SQL: le basi Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLa-basi.pdf Sistemi Informativi L-A SQL: caratteristiche generali

Dettagli

OR true null false true true true true null true null null false true null false NOT

OR true null false true true true true null true null null false true null false NOT Il linguaggio SQL è un linguaggio standard per la definizione, manipolazione e interrogazione delle basi di dati relazionali ed ha le seguenti caratteristiche: è dichiarativo; opera su multiset di tuple,

Dettagli

MAX, SUM, AVG, COUNT)

MAX, SUM, AVG, COUNT) INTRODUZIONE A SQL Definizione di tabelle e domini Alcuni vincoli di integrità Struttura base SELECT FROM WHERE Funzioni di aggregazione (MIN, MAX, SUM, AVG, COUNT) Query da più tabelle (FROM R1, Rk) Join

Dettagli

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. (Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System

Dettagli

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

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,

Dettagli

Basi di Dati Corso di Laura in Informatica Umanistica

Basi di Dati Corso di Laura in Informatica Umanistica Basi di Dati Corso di Laura in Informatica Umanistica Appello del 10/09/2010 Parte 1: Algebra Relazionale e linguaggio SQL Docente: Giuseppe Amato Sia dato il seguente schema di base di dati per la gestione

Dettagli

Introduzione a MySQL

Introduzione a MySQL Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da

Dettagli

Documentazione SQL. Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema}

Documentazione SQL. Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema} Documentazione SQL Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema} Definizione tabella Definizione dominio Specifica di valori

Dettagli

SQL: definizione schema

SQL: definizione schema Si Clienti(codice,nome,indirizzo,p_iva) scriva il SQL che definisce il seguente schema relazionale Prodotti(codice,nome,descrizione,prezzo) SQL: definizione schema Fatture(codice,cliente,data) RigheFattura(codice,fattura,prodotto,quantità,prezzo)

Dettagli

Università degli studi di Urbino C.d.L : Informatica Applicata Anno Accademico : 2007/2008. .: FastResearch :. Gestionale per Negozio Informatico

Università degli studi di Urbino C.d.L : Informatica Applicata Anno Accademico : 2007/2008. .: FastResearch :. Gestionale per Negozio Informatico Università degli studi di Urbino C.d.L : Informatica Applicata Anno Accademico : 2007/2008.: FastResearch :. Gestionale per Negozio Informatico..: Realizzato da Giorgio Rosolia Mat. 205993 :.. Corso: Basi

Dettagli

Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica

Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica Istituto di Istruzione Superiore Alessandrini - Marino 1 Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica Descrizione Un azienda commerciale che vende prodotti IT (computers,

Dettagli

Logout [ e01692 ] FAQ Cerca Iscritti Pannello di Controllo Utente. Ultimo accesso: ieri, 8:07 Oggi è 07/04/2009, 9:44

Logout [ e01692 ] FAQ Cerca Iscritti Pannello di Controllo Utente. Ultimo accesso: ieri, 8:07 Oggi è 07/04/2009, 9:44 lnx.brescianet.com Sito didattico - Prof. Sechi Marco Logout [ e01692 ] FAQ Cerca Iscritti Pannello di Controllo Utente Ultimo accesso: ieri, 8:07 Oggi è 07/04/2009, 9:44 Messaggi senza risposta Argomenti

Dettagli

Metodi per la Gestione dei Dati (lezioni di laboratorio)

Metodi per la Gestione dei Dati (lezioni di laboratorio) Università degli Studi di Modena e Reggio Emilia Facoltà di Scienze della Comunicazione e dell Economia Corso di Laurea in Comunicazione e Marketing Titolare del corso: ing. Stefano SETTI Lezioni di laboratorio

Dettagli

Definizione di domini

Definizione di domini Definizione di domini Come nei linguaggi ad alto livello (es. C) è possibile definire nuovi domini (tipi di dati) a partire da quelli predefiniti, anche se il costruttore è più limitato. create domain

Dettagli

----------------------------------------------------------------------------

---------------------------------------------------------------------------- APPUNTI DI SQL Gli appunti qui forniti vogliono essere un riferimento scritto di alcuni degli argomenti trattati a lezione per gli studenti a cui vengono messi a disposizione. Non viene fornita alcuna

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

Istruzioni SQL 1. Query di selezione 2 Istruzione SELECT 2 Istruzione SELECT DISTINCT 2 ORDER BY 3 WHERE 3 La condizione LIKE 4 BETWEEN AND 5

Istruzioni SQL 1. Query di selezione 2 Istruzione SELECT 2 Istruzione SELECT DISTINCT 2 ORDER BY 3 WHERE 3 La condizione LIKE 4 BETWEEN AND 5 Istruzioni SQL Istruzioni SQL 1 Query di selezione 2 Istruzione SELECT 2 Istruzione SELECT DISTINCT 2 ORDER BY 3 WHERE 3 La condizione LIKE 4 BETWEEN AND 5 Query di inserimento 5 INSERT INTO 5 Query di

Dettagli

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE SQL e ACCESS Prof. Salvatore Multazzu (salvatoremultazzu@tiscali.it) Applicazioni Informatiche nella comunicazione Modello relazionale Entità Record o Ennuple Attributi o Campi Tipi Chiavi Primarie (PK)

Dettagli

MySQL Database Management System

MySQL Database Management System MySQL Database Management System II parte Progetto gestione booking prenotazioni on-line 1. Progettazione e creazione struttura database che chiameremo booking. 2. Progettazione e creazione di un form

Dettagli

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

Vincoli di Integrità Approccio dichiarativo alla loro implementazione Vincoli di Integrità Approccio dichiarativo alla loro implementazione Antonella Poggi Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Progetto di Applicazioni Software Anno accademico

Dettagli

Lezione del modulo 7 SQL e database del giorno 04/05/2006 tot. ore 3. Lo Standard SQL

Lezione del modulo 7 SQL e database del giorno 04/05/2006 tot. ore 3. Lo Standard SQL Lezione del modulo 7 SQL e database del giorno 04/05/2006 tot. ore 3 Lo Standard SQL Il linguaggio SQL è un linguaggio non procedurale (o di tipo dichiarativo), divenuto, ormai da tempo, il linguaggio

Dettagli

SQL: Concetti Base -Prima Parte-

SQL: Concetti Base -Prima Parte- SQL: Concetti Base -Prima Parte- Atzeni, Ceri, Paraboschi, Torlone Basi Di Dati: Modelli e Linguaggi di Interrogazione, McGraw-Hill Italia Capitolo 4 SQL Structured Query Language Contiene: DDL (Data Definition

Dettagli

Il linguaggio SQL: le basi. Versione elettronica: SQLa-basi.pdf

Il linguaggio SQL: le basi. Versione elettronica: SQLa-basi.pdf Il linguaggio SQL: le basi Versione elettronica: SQLa-basi.pdf SQL: caratteristiche generali SQL (Structured Query Language) è il linguaggio standard de facto per DBMS relazionali, che riunisce in sé funzionalità

Dettagli

DUE GRUPPI DI COMANDI

DUE GRUPPI DI COMANDI LEZIONE16 SQL DDL PAG. 1 / 9 PROF. ANDREA ZOCCHEDDU LEZIONE16 SQL DDL LINGUAGGIO SQL DATA DESCRIPTION LANGUAGE DUE GRUPPI DI COMANDI I comandi del linguaggio SQL sono divisi in due grandi gruppi che formano

Dettagli

Vincoli di Integrità

Vincoli di Integrità Vincoli di Integrità Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2010-2011 Questi lucidi sono stati prodotti

Dettagli

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

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a Join in SQL (primo modo) Informatica Lezione 7 Laurea magistrale in Psicologia Laurea magistrale in Psicologia dello sviluppo e dell'educazione Anno accademico: 09- Per formulare interrogazioni che coinvolgono

Dettagli

Corso di Laboratorio di Basi di Dati

Corso di Laboratorio di Basi di Dati Corso di Laboratorio di Basi di Dati F1I072 - INF/01 a.a 2009/2010 Pierluigi Pierini Technolabs S.p.a. Pierluigi.Pierini@technolabs.it Università degli Studi di L Aquila Dipartimento di Informatica Technolabs

Dettagli

MySQL Database Management System

MySQL Database Management System MySQL Database Management System http://www.mysql.com/ DATABASE RELAZIONALI Un database è una collezione strutturata di informazioni. I database sono delle strutture nelle quali è possibile memorizzare

Dettagli

Esercitazione: Il DBMS MySQL

Esercitazione: Il DBMS MySQL Laurea in Ingegneria Informatica SAPIENZA Università di Roma Insegnamento di Basi di Dati Esercitazione: Il DBMS MySQL Marco Console Aspetti Organizzativi Marco Console Sito: www.dis.uniroma1.it/~console

Dettagli

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi Vogliamo creare una struttura per permettere di memorizzari i voti della classe in tutte le materie Per fare questo untilizziamo tre tabelle Alunni,materie,voti Alunni Materie Voti Creo un record per ogni

Dettagli

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed

Dettagli

Linguaggio SQL. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Linguaggio SQL. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Linguaggio SQL Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni SQL: caratteristiche generali SQL (Structured Query Language) è il linguaggio standard de facto per DBMS relazionali, che

Dettagli

SQL. Structured Query Language

SQL. Structured Query Language Structured Query Language fields seleziona i campi (colonne) da visualizzare table specifica la tabella da cui leggere i dati WHERE condizione seleziona i record (righe) da visualizzare expression è possibile

Dettagli

Il linguaggio SQL. ing. Alfredo Cozzi 1

Il linguaggio SQL. ing. Alfredo Cozzi 1 Il linguaggio SQL ing. Alfredo Cozzi 1 Il linguaggio SQL Il linguaggio SQL (Structured Query Language) è nato con l intento di soddisfare alle seguenti richieste nei db relazionali: - definire e creare

Dettagli

Capitolo 4. Soluzione: Soluzione: Create domain STRING as character varying (256) default sconosciuto not null

Capitolo 4. Soluzione: Soluzione: Create domain STRING as character varying (256) default sconosciuto not null Capitolo 4 Esercizio 4.1 Ordinare i seguenti domini in base al valore massimo rappresentable, supponendo che integer abbia una rappresentazione a 32 bit e smallint a 16 bit: numeric(12,4), decimal(10),

Dettagli

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2011-2012

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2011-2012 Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2011-2012 2012 Docente: Gigliola Vaglini Docente laboratorio: Alessandro Lori 1 Lezione 3 Structured Query Language

Dettagli

ITIS "E. Divini" Specializzazione di INFORMATICA SAN SEVERINO MARCHE (MC) Il linguaggio SQL

ITIS E. Divini Specializzazione di INFORMATICA SAN SEVERINO MARCHE (MC) Il linguaggio SQL Il linguaggio SQL Introduzione SQL (Structured Query Language) è il linguaggio ormai assunto come standard per la trattazione di Data Base (DB) relazionali. La sua stesura è dovuta essenzialmente a E.

Dettagli

INTRODUZIONE AD SQL (CAPITOLO 4) R. Basili a.a. 2011-2012

INTRODUZIONE AD SQL (CAPITOLO 4) R. Basili a.a. 2011-2012 1 INTRODUZIONE AD SQL (CAPITOLO 4) R. Basili a.a. 2011-2012 SQL Dopo aver eseguito l installazione del DBMS e di uno o più database: Accesso al DBMS Interpretazione di uno script Descrizione dello schema

Dettagli

Concetti fondamentali dei database database Cos'è un database Principali database

Concetti fondamentali dei database database Cos'è un database Principali database Concetti fondamentali dei database Nella vita di tutti i giorni si ha la necessità di gestire e manipolare dati. Le operazioni possono essere molteplici: ricerca, aggregazione con altri e riorganizzazione

Dettagli

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione SQL DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE SQL è più di un semplice linguaggio di interrogazione! Linguaggio di definizione dati (Data-definition language, DDL):! Crea/distrugge/modifica relazioni

Dettagli

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI IL LINGUAGGIO SQL Il linguaggio SQL ( Structured Query Languages) è un linguaggio non procedurale che è diventato uno standard tra i linguaggi per la gestione dei database relazionali. Il linguaggio procedurale

Dettagli

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

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: storia SQL SQL: concetti base originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia il DML ne esistono varie versioni vediamo gli aspetti essenziali,

Dettagli

SQL. Storia e standard

SQL. Storia e standard SQL Lorenzo Sarti 2009 Basi di Dati 1 Storia e standard Lorenzo Sarti 2009 Basi di Dati 2 SQL-2 È ricco e complesso e nessun sistema commerciale lo implementa in maniera completa Sono definiti 3 livelli

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 2 Raffaella Gentilini 1 / 45 Sommario 1 Il DDL di SQL: Cancellazione ed Aggiornamento di una BD Cancellazione di Schemi, Tabelle, e Domini Aggiornamento di Tabelle

Dettagli

CAPITOLO 5: DATABASE INTRODUZIONE

CAPITOLO 5: DATABASE INTRODUZIONE CAPITOLO 5: DATABASE INTRODUZIONE Una base di dati (o database) è semplicemente una collezione di dati organizzati in qualche modo e con qualche criterio. Il modello più diffuso è quello relazionale, ovvero

Dettagli

CAPITOLO 4 ESERCIZI SU SQL

CAPITOLO 4 ESERCIZI SU SQL CAPITOLO 4 ESERCIZI SU SQL (le soluzioni sono riportate da pag. 5 in poi (Nota: gli esercizi non sono sempre in ordine di difficoltà Esercizio 1 Si prendano tutti gli schemi relazionali considerati negli

Dettagli

http://technet.microsoft.com/it-it/library/bb500469.aspx Le versioni di SQL Server sono state molte; traggo le principali da Wikipedia:

http://technet.microsoft.com/it-it/library/bb500469.aspx Le versioni di SQL Server sono state molte; traggo le principali da Wikipedia: LEZIONE-TSQL-01 DDL (VER01 PAG. 1 / 11 LEZIONE-TSQL-01 DDL (VER01 T-SQL PROGRAMMAZIONE PARTE PRIMA MICROSOFT SQL SERVER IL PRODOTTO MICROSOFT SQL SERVER Le dispense SQL descrivono un generico SQL utilizzato

Dettagli

SQL - Funzioni di gruppo

SQL - Funzioni di gruppo una funzione di gruppo permette di estrarre informazioni da gruppi di tuple di una relazione le funzioni di gruppo si basano su due concetti: partizionamento delle tuple di una relazione in base al valore

Dettagli

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov.

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov. Appunti di MySql Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov. Indice generale avviare la shell mysql...2 comandi SQL per la gestione del database (DDL)...2 visualizzare l'elenco

Dettagli

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date;

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date; CREAZIONE STRUTTURA DI UNA TABELLA by Marinsalta Fausto CREATE TABLE Personale Matricola char(5), Cognome char(30), Nome char(20), Codfis char(16) not null, Assunzione date, Filiale smallint, Funzione

Dettagli

ITI Galilei Salerno Corso Database ed SQL

ITI Galilei Salerno Corso Database ed SQL ITI Galilei Salerno Corso Database ed SQL prof Carmine Napoli Introduzione Database: Si definisce Database un insieme di dati, di solito di notevoli dimensioni, raccolti, memorizzati ed organizzai in modo

Dettagli

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

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3 INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3 L azienda Plastic S.p.A, operante nel settore materie plastiche, ha deciso di dotarsi di un Sistema Informativo per la gestione del suo

Dettagli

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL))

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) SQL PER LA DEFINIZIONE DI BASI DI DATI 1 SQL non è solo un linguaggio di interrogazione (Query Language), ma Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) CREATE SCHEMA

Dettagli

SQL PER LA DEFINIZIONE DI BASI DI DATI

SQL PER LA DEFINIZIONE DI BASI DI DATI SQL PER LA DEFINIZIONE DI BASI DI DATI SQL non è solo un linguaggio di interrogazione (Query Language), ma Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) CREATE SCHEMA

Dettagli

SQL. Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM 1986 1992: SQL ISO 9075:1992 SQL:1999 SQL:2003

SQL. Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM 1986 1992: SQL ISO 9075:1992 SQL:1999 SQL:2003 SQL Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM 1986 1992: SQL ISO 9075:1992 SQL:1999 SQL:2003 SQL Il linguaggio SQL è stato originariamente dichiarativo, diventando nel tempo sempre

Dettagli

Structured Query Language parte 1

Structured Query Language parte 1 Consorzio per la formazione e la ricerca in Ingegneria dell'informazione Structured Query Language parte 1 Come interrogare una base di dati relazionale ed avere la risposta esatta Docente: Gennaro Pepe

Dettagli

Modello Relazionale. Sistemi di Elaborazione delle Informazioni. DB ed SQL. Modello relazionale: concetti di base

Modello Relazionale. Sistemi di Elaborazione delle Informazioni. DB ed SQL. Modello relazionale: concetti di base Sistemi di Elaborazione delle Informazioni DB ed SQL Prof. Silvio Vassallo Modello Relazionale Il modello relazionale si basa sul concetto di RELAZIONE tra insiemi di oggetti. Dati n insiemi A 1,A 2, A

Dettagli

MySQL Command Line Client: operazioni fondamentali

MySQL Command Line Client: operazioni fondamentali MySQL Command Line Client: operazioni fondamentali INTRODUZIONE Il RDBMS MySQL, oltre a fornire un applicazione che abbia un interfaccia user-friendly, ha a disposizione anche un altro client, che svolge

Dettagli

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System) (DataBase Management System) Sistemi di ges3one di basi di da3 Un Database Management System è un sistema software progettato per consentire la creazione e manipolazione efficiente di database (collezioni

Dettagli

Il Linguaggio SQL. Il Linguaggio SQL

Il Linguaggio SQL. Il Linguaggio SQL Il Linguaggio SQL 23 Il Linguaggio SQL SQL è l acronimo di Standard Query Language e identifica un linguaggio di interrogazione (gestione) per basi di dati relazionali. Le sue origini risalgono alla fine

Dettagli

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

Informatica. Sintassi. Interrogazioni in SQL. Significato dell interrogazione. Tabella Impiegato. Basi di dati parte 4 SQL Informatica Basi di dati parte 4 SQL Lezione 13 Laurea magistrale in Scienze della mente Laurea magistrale in Psicologia dello sviluppo e dell'educazione Anno accademico: 2012 2013 1 Interrogazioni in

Dettagli

PROGRAMMA DI CLASSE 5AI

PROGRAMMA DI CLASSE 5AI Istituto di Istruzione Superiore Euganeo Istituto tecnico del settore tecnologico Istituto professionale del settore servizi socio-sanitari Istituto professionale del settore industria e artigianato PROGRAMMA

Dettagli

Domini elementari in SQL

Domini elementari in SQL SQL SQL è un acronimo per Structured Query Language. Fu sviluppato originalmente come linguaggio per il DBMS System R dall IBM Research Laboratory (San Jose, California) nei tardi anni settanta. Al giorno

Dettagli

Introduzione ad SQL. 1. Introduzione. 2. Gli operatori. 3. Istruzione SELECT. 4. Istruzione INSERT. 5. Istruzione UPDATE. 6.

Introduzione ad SQL. 1. Introduzione. 2. Gli operatori. 3. Istruzione SELECT. 4. Istruzione INSERT. 5. Istruzione UPDATE. 6. Introduzione ad SQL Guida a cura di Rio Chierego 1. Introduzione 2. Gli operatori 3. Istruzione SELECT 4. Istruzione INSERT 5. Istruzione UPDATE 6. Istruzione DELETE 7. Istruzione CREATE, ALTER e DROP

Dettagli

IL DAT A B A S E DI ALGE B R A N D O

IL DAT A B A S E DI ALGE B R A N D O IL DAT A B A S E DI ALGE B R A N D O Un progetto di: Davide Valeriani Matricola 190883 davide.valeriani@studenti.unipr.it Corso di laurea in Ingegneria Informatica Esame di Basi di Dati A Prof. Stefano

Dettagli

Database Lezione 1. Sommario. - Introduzione - Tabelle e chiave primaria - Query - Calcoli ed alias - Ordinamento

Database Lezione 1. Sommario. - Introduzione - Tabelle e chiave primaria - Query - Calcoli ed alias - Ordinamento Sommario - Introduzione - Tabelle e chiave primaria - Query - Calcoli ed alias - Ordinamento Introduzione - Un database è un archivio strutturato di dati che può essere manipolato con dei comandi nel linguaggio

Dettagli

SQL Sintassi Dei Comandi

SQL Sintassi Dei Comandi SQL Sintassi Dei Comandi Di Roberto Aloi http://prof3ta.homeunix.org prof3ta@email.it Questo fascicolo è stato realizzato esclusivamente a fini divulgativi e per la libera consultazione. E' concessa la

Dettagli

Database e SQL. A cura del prof. Gennaro Cavazza

Database e SQL. A cura del prof. Gennaro Cavazza Database e SQL A cura del prof. Gennaro Cavazza Introduzione ai database La base di qualsiasi esigenza pratica da parte di una qualsiasi organizzazione è quella di gestire dei dati in maniera logica e

Dettagli

Basi di Dati Relazionali

Basi di Dati Relazionali Corso di Laurea in Informatica Basi di Dati Relazionali a.a. 2009-2010 Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio Coadiutore: Dott.ssa D. Nicotera PROGETTAZIONE FISICA SQL-DDL OBIETTIVO: Rappresentare

Dettagli

Corso Sistemi Informativi Avanzati. Programma 30 set 2015. Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

Corso Sistemi Informativi Avanzati. Programma 30 set 2015. Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende. Programma 30 set 205 Installazione Macchina Virtuale Introduzione alla BI nelle Aziende Introduzione SQL Macchina Virtuale È un emulazione di un computer su un altro computer Stesso punto di partenza per

Dettagli

Il linguaggio SQL. Evoluzione del linguaggio. I linguaggi dentro SQL. I dialeu SQL. U@lizzo di SQL SQL. A. Ferrari 1

Il linguaggio SQL. Evoluzione del linguaggio. I linguaggi dentro SQL. I dialeu SQL. U@lizzo di SQL SQL. A. Ferrari 1 Il linguaggio SQL Structured Query Language SQL è un linguaggio di interrogazione per database proge

Dettagli

Corso di Basi di Dati A.A. 2013/2014

Corso di Basi di Dati A.A. 2013/2014 Corso di Laurea in Ingegneria Gestionale Sapienza Università di Roma Corso di Basi di Dati A.A. 2013/2014 Tiziana Catarci, Andrea Marrella Ultimo aggiornamento : 29/03/2014 SQL : Structured Query Language

Dettagli

Biglietti e Ritardi: schema E/R

Biglietti e Ritardi: schema E/R Biglietti e Ritardi: schema E/R Ritardi: Progettazione dello schema di Fatto! Definire uno schema di fatto per analizzare i ritardi; in particolare l analisi deve considerare l aeroporto di partenza, mentre

Dettagli

L istruzione SELECT di SQL

L istruzione SELECT di SQL L istruzione SELECT di SQL Sintassi dell istruzione SELECT... 2 Clausola WHERE... 3 Clausola ORDER BY... 5 Le funzioni di aggregazione... 6 Raggruppamenti... 9 Inner Join (giunzione naturale o join interno)...10

Dettagli

Basi di Dati. Programmazione e gestione di sistemi telematici

Basi di Dati. Programmazione e gestione di sistemi telematici Basi di Dati. Programmazione e gestione di sistemi telematici Coordinatore: Prof. Paolo Nesi Docenti: Prof. Paolo Nesi Dr.sa Michela Paolucci Dr. Emanuele Bellini SQL SQL = Structured Query Language Linguaggio

Dettagli

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database Uso delle basi di dati Uso delle Basi di Dati Il modulo richiede che il candidato comprenda il concetto di base dati (database) e dimostri di possedere competenza nel suo utilizzo. Cosa è un database,

Dettagli

Basi di Dati e Sistemi Informativi. Structured Query Language

Basi di Dati e Sistemi Informativi. Structured Query Language Basi di Dati e Sistemi Informativi Structured Query Language Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale SQL come DDL e DML SQL non è solo un linguaggio di interrogazione Linguaggio

Dettagli

MODULO 5 DATA BASE PROGRAMMA. Progettazione rapida introduzione alla progettazione di DB

MODULO 5 DATA BASE PROGRAMMA. Progettazione rapida introduzione alla progettazione di DB MODULO 5 DATA BASE MODULO 5 - DATA BASE 1 PROGRAMMA Introduzione: concetti generali di teoria Progettazione rapida introduzione alla progettazione di DB Utilizzo di Access pratica sulla creazione e l utilizzo

Dettagli

07. Ottimizzare le istruzioni SQL

07. Ottimizzare le istruzioni SQL 07. Ottimizzare le istruzioni SQL Introduzione Union, subquery e Join Il piano di esecuzione L ottimizzatore Le statistiche Il comando EXPLAIN Gli Hint A.A. 2005 Laboratorio di basi di dati - LB 2 La UNION

Dettagli

Interrogazione della base di dati

Interrogazione della base di dati Interrogazione della base di dati SQL è un linguaggio di definizione e di manipolazione dei dati. In quanto linguaggio di manipolazione, SQL permette di selezionare dati di interesse dalla base e di aggiornarne

Dettagli

Destinazione: d:\programmi\xampp\mysql\bin\mysql -h localhost -u root -p (-p solo se avete la password)

Destinazione: d:\programmi\xampp\mysql\bin\mysql -h localhost -u root -p (-p solo se avete la password) MySQL di Sanarico Andrea MySQL è un DBMS (DataBase Management System) server, nel senso che è possibile accedere alle sue funzioni e ai suoi servizi da un host client remoto. Per aprire il programma: Destinazione:

Dettagli

Il linguaggio SQL e Access

Il linguaggio SQL e Access Il linguaggio SQL e Access 1 Linguaggio SQL Caratteristiche generali L SQL (structured query language) è un linguaggio utilizzato per definire, gestire, controllare e reperire dati di un DBMS; prevede

Dettagli

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report Facoltà di Lingue e Letterature Straniere Le QUERY 2 Che cos è una Query? Una Query rappresenta uno strumento per interrogare un database.

Dettagli

Corso sul linguaggio SQL

Corso sul linguaggio SQL Corso sul linguaggio SQL Modulo L2B (SQL) 2.2 Comandi sulle tabelle 1 Prerequisiti Introduzione ai DB Tabelle, relazioni e attributi Chiave primaria Chiave esterna Vincoli di integrità 2 1 Introduzione

Dettagli

Codice Progetto: 15001 Pagina 1 di 22 Data Emissione: 15-06-2015 Versione: 1.0 Nome Progetto: Database. Database. Documentazione di Progetto

Codice Progetto: 15001 Pagina 1 di 22 Data Emissione: 15-06-2015 Versione: 1.0 Nome Progetto: Database. Database. Documentazione di Progetto Codice Progetto: 15001 Pagina 1 di 22 Database Documentazione di Progetto Codice Progetto: 15001 Pagina 2 di 22 Indice generale Indice generale Tabella delle versioni e autorizzazioni...3 Descrizione e

Dettagli

Structured Query Language. Informatica Generale - SQL Versione 1.0, aa 2005-2006 p.1/172

Structured Query Language. Informatica Generale - SQL Versione 1.0, aa 2005-2006 p.1/172 Structured Query Language Informatica Generale - SQL Versione 1.0, aa 2005-2006 p.1/172 Linguaggio SQL (1) Il linguaggio SQL, acronimo di Structured Query Language è un linguaggio per la definizione e

Dettagli

Lezione 8. Metadati, Viste e Trigger

Lezione 8. Metadati, Viste e Trigger Lezione 8 Metadati, Viste e Trigger Pag.1 Metadati e catalogo di sistema I metadati sono dati a proposito dei dati (quali tabelle esistono?, quali campi contengono?, quante tuple contengono?, ci sono vincoli

Dettagli

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Basi di dati Il linguaggio SQL teoria e pratica con Microsoft Access Riepilogando Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi

Dettagli

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Riepilogando Basi di dati Il linguaggio SQL Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi degli attributi, domini, 2. una parte

Dettagli

Metodi per la Gestione dei Dati (lezioni di laboratorio)

Metodi per la Gestione dei Dati (lezioni di laboratorio) Università degli Studi di Modena e Reggio Emilia Facoltà di Scienze della Comunicazione e dell Economia Corso di Laurea in Comunicazione e Marketing Anno Accademico 2005/06 Metodi per la Gestione dei Dati

Dettagli