Il linguaggio SQL. ing. Alfredo Cozzi 1
|
|
|
- Ernesto Ricciardi
- 10 anni fa
- Просмотров:
Транскрипт
1 Il linguaggio SQL ing. Alfredo Cozzi 1
2 Il linguaggio SQL Il linguaggio SQL (Structured Query Language) è nato con l intento di soddisfare alle seguenti richieste nei db relazionali: - definire e creare il database - effettuare le diverse operazioni di gestione dei dati, quali l inserimento, la cancellazione e la variazione dei record di un archivio - interrogare il db a scopo informativo Il linguaggio SQL è un linguaggio non procedurale che è diventato uno standard tra i linguaggi per la gestione di database relazionali. Nato alla fine degli anni 70 è oggi usato in tutti i prodotti DBMS come linguaggio di comando per l utente della base di dati (Oracle, Informix, MySQL, SQLServer, Access) 2
3 Il linguaggio SQL Il linguaggio SQL consente all utente di: - definire la struttura delle relazioni del db e di controllare gli accessi al db (DDL) - modificare i dati contenuti nel db, con le operazioni di inserimento, variazione e cancellazione (DML) - porre interrogazioni al db (Query Language) Il linguaggio SQL fornisce inoltre gli opportuni comandi per definire i tabulati di uscita dei risultati (report), per ricuperare i dati quando accade un interruzione del programma, un guasto nei supporti magnetici, per definire le viste degli utenti sul db, per garantire la sicurezza dei dati nei confronti degli accessi di più utenti. 3
4 Identificatori e tipi di dati Gli identificatori sono costituiti da sequenze di caratteri di lunghezza massima uguale a 18 caratteri. Il nome di un attributo (una colonna di una tabella) è identificato per mezzo della notazione abituale: NomeTabella.NomeAttributo (il nome della tabella può essere omesso se non ci sono ambiguità nell identificazione dell attributo) Nella dichiarazione della struttura di una tabella occorre specificare il tipo di dati scelto per gli attributi. 4
5 Tipi standard I tipi standard del linguaggio SQL sono: - BOOLEAN (valore logico) - CHARACTER(n) (stringa di lunghezza n) o CHAR - DATE (data nella forma MM/GG/AA) - TIME (ora nella forma HH:MM) - INTEGER(p) (numero intero con precisione p) o INT - SMALLINT (numero intero con precisione 5) - INTEGER (numero intero con precisione 10) - DECIMAL (p,s) (numero decimale con precisione p e s cifre decimali) o NUMERIC - REAL (numero reale con mantissa di precisione 7) - FLOAT (numero reale con mantissa di precisione 15) - FLOAT(p) (numero reale con mantissa di precisione p) Per i dati numerici la precisione p indica il numero massimo di cifre che il numero può contenere 5
6 La definizione delle tabelle Le tabelle vengono definite con il comando CREATE TABLE, seguito dal nome della tabella e dall elenco degli attributi. Per ogni attributo bisogna specificare il nome e il tipo di dato. Gli attributi possono essere qualificati mediante diverse clausole con le quali è possibile definire: la chiave primaria, le chiavi esterne, l obbligatorietà e il valore di default di un campo Es. Creare la tabella degli Impiegati e dei Dipartimenti CREATE TABLE Impiegati (ID smallint primary key, Cognome char(30) not null, Nome char(20) not null, Stipendio decimal(9,2), Dipartimento char(5) references Dipartimenti(Codice)); Not null indica che in tutte le righe della tabella quella colonna deve essere riempita con un valore non nullo e rende il campo obbligatorio La clausola REFERENCES indica che l attributo Dipartimento è chiave esterna e definisce il vincolo di integrità referenziale con la tabella Dipartimenti 6
7 Per creare la tabella Dipartimenti: CREATE TABLE Dipartimenti (Codice char(5), Descrizione char(20) not null, Sede char(20), Manager smallint, Primary Key (Codice), Unique (Descrizione), Foreign Key (Manager) references Impiegati(ID) On Delete set null On Update cascade); La definizione delle tabelle -non ci possono essere due dipartimenti con lo stesso nome - è possibile dichiarare la chiave esterna in una riga a sé stante (Foreign Key) - Manager è chiave esterna associata alla tabella Impiegati - la cancellazione di una riga di Impiegati con un valore di ID associato a valori di Manager è permessa e i valori di ID corrispondenti assumono valore nullo (On Delete set null) - l aggiornamento di un ID associato a Manager si riflette a catena sui valori di Manager (On Update cascade) 7
8 La struttura di una tabella può essere modificata con il comando ALTER TABLE, per aggiungere una nuova colonna (ADD) a quelle già esistenti, oppure per togliere una colonna (DROP). Es. ALTER TABLE Impiegati ADD Nascita date; ALTER TABLE Impiegati DROP Residenza; L istruzione CREATE INDEX viene utilizzata per creare un nuovo indice su una tabella esistente, indicando il nome della tabella e il nome dell attributo o degli attributi ai quali associare l indice. Se non si vuole che ci siano valori duplicati per l attributo associato all indice in righe diverse, occorre usare la clausola UNIQUE. Es. Il comando seguente crea un indice di nome IndiceImpiegati sulla tabella Impiegati secondo gli attributi Cognome e Nome e non sono ammessi duplicati CREATE UNIQUE INDEX IndiceImpiegati ON Impiegati(Cognome Nome); Una tabella o indice possono essere eliminati con il comando DROP, seguito dal nome della tabella o dell indice. Es. DROP TABLE Impiegati; DROP INDEX IndiceImpiegati ON Impiegati; Nelle versioni moderne dei prodotti DBMS le operazioni di creazione di tabelle e indici, vengono effettuate come in Access attraverso un interfaccia interattiva che facilita il lavoro dell utente. 8
9 I comandi per la manipolazione dei dati I valori degli attributi nelle righe della tabella possono essere inseriti, aggiornati o cancellati rispettivamente con i comandi INSERT, UPDATE, DELETE. Es. Per inserire i valori di una nuova riga della tabella Impiegati: INSERT INTO Impiegati (ID, Nome, Cognome, Residenza, Stipendio, Dipartimento) VALUES(20, Mario, Rossini, Caserta, 3100, Mag ); Per assegnare il dipendente con ID=20, presente in anagrafica, al dipartimento di produzione: UPDATE Impiegati SET Dipartimento = Prod WHERE Matricola = 20; Per cancellare dalla tabella Dipendenti i dati del dipendente con ID=20: DELETE FROM Impiegati WHERE ID = 20; L uso della clausola Where nei comandi Update e Delete consente di operare su gruppi di record Es. se si vuole aumentare del 5% lo stipendio di tutti i dipendenti del dipartimento produzione: UPDATE Impiegati SET Stipendio = Stipendio * 1.05 WHERE Dipartimento = Prod ; 9
10 Il comando Select Con il comando Select è possibile estrarre dal database le informazioni desiderate. Vengono attivate le interrogazioni sulle relazioni e le operazioni relazionali per ottenere nuove tabelle. La struttura base del comando Select è la seguente: SELECT Colonne FROM Tabelle WHERE Condizioni Accanto alla parola Select vengono indicati i nomi degli attributi (le colonne) da elencare (se è necessario elencare tutti gli attributi basta scrivere il segno di * dopo la parola Select); dopo From vengono indicati i nomi della tabella o delle tabelle; dopo la clausola Where si specifica una condizione logica su uno o più attributi con lo scopo di filtrare le righe delle tabelle. Es. Effettuare interrogazioni sulla tabella Impiegati L elenco con cognome, nome e residenza dei dipendenti del dipartimento di codice Prod: SELECT Cognome, Nome, Residenza FROM Impiegati WHERE Dipartimento = Prod ; 10
11 L elenco dei dipendenti che lavorano alla produzione con residenza a Torino: SELECT Cognome, Nome, Residenza FROM Impiegati WHERE Dipartimento = Prod AND Residenza = Torino ; Tutti i dati dei dipendenti che abitano a Roma: SELECT * FROM Impiegati WHERE Residenza Roma ; Se viene specificato il predicato DISTINCT le righe duplicate nella tabella risultante vengono ridotte a una. Es. Se si desidera ottenere l elenco di tutte le località di residenza dei dipendenti senza duplicati: SELECT DISTINCT Residenza FROM Impiegati; 11
12 La tabella che si ottiene come risultato dell interrogazione con Select possiede un intestazione delle colonne che riporta i nomi degli attributi; è possibile modificare questa intestazione rinominando la colonna sfruttando la clausola AS. Es. SELECT ID AS Matricola, Nome, Cognome FROM Impiegati; Con il comando SELECT si può anche richiedere il calcolo di espressioni sugli attributi presenti nella tabella;la tabella risultante contiene una colonna aggiuntiva con i risultati del calcolo per ogni riga. Es. SELECT Cognome, Nome, Stipendio AS Attuale, Stipendio*1.05 AS Nuovo FROM Impiegati; In alcuni comandi vengono usati valori costanti nelle condizioni scritte dopo WHERE: SELECT Cognome, Nome, Residenza FROM Impiegati WHERE Stipendio >= 5500; Si potrebbe invece chiedere all utente il valore del confronto (in Access questo può essere fatto indicando tra parentesi quadre il nome del parametro): SELECT Cognome, Nome, Residenza FROM Impiegati WHERE Stipendio >= [Retribuzione annuale minima?]; Per ottenere l elenco dei dipendenti privi di dipartimento: SELECT ID AS Matricola, Cognome, Nome FROM Impiegati WHERE Dipartimento IS NULL; 12
13 Le operazioni relazionali nel linguaggio SQL Il comando SELECT può operare su più tabelle, indicandone i nomi dopo la clausola FROM e scrivendo dopo la parola WHERE la condizione che fa corrispondere le righe di una tabella con quelle dell altra. Nelle quasi totalità dei casi la congiunzione necessaria è un equi-join per cui la condizione da scrivere nella clausola WHERE consiste nell uguaglianza tra attributi in due tabelle; se poi si ha un join naturale, gli attributi hanno il medesimo nome. Si realizza in pratica l operazione di congiunzione di due tabelle secondo un attributo comune. Es. Ottenere l elenco di tutti i dipendenti con i dati del dipartimento dove lavorano: SELECT * FROM Impiegati, Dipartimenti WHERE Dipartimento = Codice; Per maggior chiarezza si può anche scrivere nel modo seguente: SELECT * FROM Impiegati, Dipartimenti WHERE Impiegati.Dipartimento = Dipartimenti.Codice; Poiché nella condizione scritta accanto a Where viene usato il segno uguale, la congiunzione precedente fornisce un esempio di equi-join, cioè vengono combinate solo le righe per le quali si possono trovare valori uguali negli attributi che si corrispondono. 13
14 Nella versione del linguaggio SQL adottata da Access l equi-join viene indicato come inner join: SELECT Impiegati.*, Dipartimenti.* FROM Dipartimenti INNER JOIN Impiegati ON Dipartimenti.Codice = Impiegati.Dipartimento; Ottenere l elenco dei dipendenti che lavorano in un dipartimento con sede a Roma, con cognome, nome e descrizione del dipartimento: SELECT Impiegati.Cognome, Impiegati.Nome, Dipartimenti.Descrizione FROM Impiegati, Dipartimenti WHERE Impiegati.Dipartimento = Dipartimenti.Codice AND Dipartimenti.Sede = Roma ; La prima condizione scritta dopo Where (Dipartimento = Codice)serve a specificare l uguaglianza tra gli attributi comuni delle tabelle coinvolte nella congiunzione, la seconda condizione (Sede = Roma ) specifica il criterio per operare la selezione sulle righe di Dipartimenti. Per semplificare la scrittura del comando Select è possibile fare ricorso agli alias per il nome della tabella, specificando dopo il nome originale della tabella la parola AS seguita dal nuovo nome: SELECT I.Cognome, I.Nome, D.Descrizione FROM Impiegati AS I INNER JOIN Dipartimenti AS D ON I.Dipartimento = D.Codice WHERE D.Sede = Roma ; 14
15 Join esterni SQL permette di costruire forme di join che rispondono all esigenza di congiungere due tabelle includendo nella congiunzione anche quelle righe di una delle due tabelle che non hanno una riga associata nell altra. Queste congiunzioni prendono il nome di join esterni e corrispondono alle operazioni di left join, right join, full join dell algebra relazionale. Si consideri per es. la congiunzione tra le tabelle Impiegati e Dipartimenti. Nella tabella prodotta dal join non compaiono le informazioni sui dipendenti che non sono stati assegnati a un dipartimento e le informazioni dei dipartimenti dove non lavora nessuno. Per considerare anche queste informazioni: SELECT Impiegati.Nome, Impiegati.Cognome, Dipartimenti.Descrizione FROM Impiegati LEFT JOIN Dipartimenti ON Dipartimenti.Codice = Impiegati.Dipartimento; Analogamente volendo considerare tutti i dipartimenti bisogna includere nel join tutte le righe della seconda tabella: SELECT Impiegati.Nome, Impiegati.Cognome, Dipartimenti.Descrizione FROM Impiegati RIGHT JOIN Dipartimenti ON Dipartimenti.Codice = Impiegati.Dipartimento; 15
16 Le funzioni di aggregazione All interno del comando Select possono essere usate funzioni predefinite che agiscono sui valori contenuti in insiemi di righe della tabella e che per questo motivo si chiamano funzioni di aggregazione. Le funzioni di aggregazione agiscono sui valori di una singola colonna e restituiscono un solo valore come il massimo o il minimo dei valori considerati. Funzione COUNT La funzione COUNT conta il numero di righe selezionate dall interrogazione; si deve specificare come argomento della funzione il nome dell attributo o il caratter *; nel primo caso vengono conteggiate le righe che hanno valore Null nella colonna dell attributo specificato, nel secondo caso viene calcolato il numero delle righe delle tabelle incluse quelle con i campi di tipo Null. Es. visualizza il numero di tutte le righe presenti nella tabella Impiegati: SELECT COUNT (*) FROM Impiegati; Specificando il nome dell attributo Dipartimento si ottiene il numero dei dipendenti che sono assegnati a un dipartimento: SELECT COUNT (Dipartimento) FROM Impiegati; 16
17 Restituire il numero di dipendenti residenti a Roma: SELECT COUNT (*) FROM Impiegati WHERE Residenza = Roma ; La stessa funzione nella versione COUNT(DISTINCT x) consente di ottenere il numero dei valori diversi tra loro nella colonna x che soddisfano alla condizione scritta dopo Where. Es. se si vuole conoscere da quante differenti città di residenza provengono i dipendenti del dipartimento Produzione: SELECT COUNT (DISTINCT Residenza) FROM Impiegati WHERE Dipartimento = Prod ; Oppure SELECT COUNT (DISTINCT Residenza) AS Provenienza FROM Impiegati WHERE Dipartimento = Prod ; 17
18 Funzione SUM La funzione SUM restituisce la somma di tutti i valori contenuti in una colonna specificata come argomento della funzione: naturalmente l attributo utilizzato nel calcolo deve essere di tipo numerico Es. Se si vuole ottenere la somma degli stipendi dei dipendenti che appartengono al dipartimento Marketing: SELECT SUM (Stipendio) FROM Impiegati WHERE Dipartimento = Mkt ; L argomento della funzione Sum può anche essere un espressione numerica contenente i nomi di attributi di tipo numerico. Si supponga di avere una tabella delle fatture che contiene gli attributi prezzo unitario dei prodotti e la quantità ordinata. Il totale delle fatture viene calcolato: SELECT SUM (PrezUnit * Qta) AS Totale FROM Fatture; 18
19 Funzione AVG La funzione AVG calcola la media dei valori contenuti in una deternimata colonna, con l eventuale aggiunta dell opzione Distinct. La funzione AVG non include nel calcolo i valori di tipo NULL presenti nella colonna. Es. Calcolare lo stipendio medio dei dipendenti che lavorano in dipartimenti con sede a Torino: SELECT AVG(Stipendio) FROM Impiegati, Dipartimenti WHERE Dipartimento = Codice AND Sede = Torino ; 19
20 Funzioni MIN e MAX Le funzioni MIN e MAX restituiscono rispettivamente il valore minimo e massimo tra i valori della colonna di una tabella specificata come argomento della funzione. Es. Calcolare i valori minimo e massimo degli stipendi di tutti i dipendenti: SELECT MIN (Stipendio), MAX(Stipendio) FROM Impiegati; Visualizza il primo cognome e l ultimo nell elenco dei dipendenti: SELECT MIN(Cognome), MAX(Cognome) FROM Impiegati; 20
21 Ordinamenti e raggruppamenti Nel comando Select si può inserire la clausola ORDER BY per ottenere i risultati di un interrogazione ordinati secondo i valori contenuti in una o più colonne, tra quelle elencate accanto alla parola Select. La clausola Order By deve essere l ultimo elemento di un comando Select. Es. mostrare l elenco alfabetico dei dipendenti con cognome, nome, residenza: SELECT Cognome, Nome, Residenza FROM Impiegati ORDER BY Cognome, Nome; Produrre l elenco dei dipendenti in ordine decrescente di stipendio e a parità di stipendio in ordine crescente di cognome: SELECT Cognome, Stipendio FROM Impiegati ORDER BY Stipendio DESC, Cognome; 21
22 GROUP BY La clausola GROUP BY permette di raggruppare un insieme di righe aventi lo stesso valore nelle colonne indicate dalla clausola. L opzione produce una riga di risultati per ogni raggruppamento. Es. Elencare i dipartimenti dove lavorano i dipendenti, con la somma degli stipendi e il numero dei dipendenti per ogni dipartimento: SELECT Dipartimento, COUNT(ID), SUM(Stipendio) FROM Impiegati GROUP BY Dipartimento; L interrogazione viene eseguita per passi: 1)le righe vengono raggruppate per Dipartimento, 2) le funzioni di aggregazione vengono applicate ai singoli raggruppamenti. Se si desidera che compaia il nome per esteso del dipartimento bisogna includere anche la tabella Dipartimenti nell interrogazione e effettuare il raggruppamento sul campo Descrizione: SELECT Dipartimento, COUNT(*), SUM(Stipendio) FROM Impiegati, Dipartimenti WHERE Impiegati.Dipartimento = Dipartimenti.Codice GROUP BY Dipartimento; 22
23 Condizioni sui raggruppamenti La struttura del comando Select con raggruppamenti può essere ulteriormente ampliata con la clausola HAVING con la quale è possibile sottoporre al controllo di una o più condizioni i gruppi creati con la clausola Group by (HAVING serve a visualizzare le sole righe di raggruppamento che soddisfano alle scritte accando a HAVING). HAVING pone condizioni sui gruppi, WHERE pone condizioni sulle singole righe. Es. Visualizzare per i soli dipartimenti con più di due addetti, il numero degli addetti e la somma degli stipendi: SELECT Dipartimento, COUNT(ID), SUM(Stipendio) FROM Impiegati GROUP BY Dipartimento HAVING COUNT(ID) > 2; Visualizzare l elenco dei dipartimenti con sede a Torino con più di un addetto, per questi dipartimenti viene elencato oltre al nome anche il numero di impiegati e la somma degli stipendi: SELECT Descrizione, COUNT(*), SUM(Stipendio) FROM Impiegati, Dipartimenti WHERE Impiegati.Dipartimento = Dipartimenti.Codice AND Sede = Torino GROUP BY Descrizione HAVING COUNT(*) > 1; 23
24 Sintetizzando le diverse clausole: SELECT Elenco colonne da mostrare FROM Tabelle da cui estrarre le righe WHERE Condizioni sulle congiunzioni o sulle righe estratte GROUP BY Campi da considerare per raggruppamenti HAVING Condizioni sui raggruppamenti ORDER BY Ordinamenti sulle colonne elencate nella clausola SELECT n.b. le sole clausole che devono comparire obbligatoriamente in un comando Select sono le prime due dell elenco, le altre sono facoltative le clausole utilizzate devono essere elencate rispettando l ordinamento del precedente elenco le interrogazioni che si possono costruire con le operazioni relazionali si esprimono con le sole clausole Select, From e Where. 24
25 Le condizioni di ricerca Le condizioni di ricerca sono utilizzate insieme alle clausole Where e Having per determinare i criteri di selezione rispettivamente delle righe e dei raggruppamenti. Nella scrittura delle condizioni si usano i segni di confronto =, <, >, <>, >=, <=. Una condizione di ricerca è costruita anche mettendo insieme più condizioni legate tra loro con gli operatori AND e OR, precedute eventualmente dall operatore NOT. Le condizioni di ricerca si possono esprimere utilizzando anche altre parole del linguaggio SQL: BETWEEN: questo operatore controlla se un valore è compreso all interno di un intervallo di valori, inclusi gli estremi. Es. ottenere l elenco dei dipendenti che hanno retribuzione compresa tra e euro SELECT Cognome, Nome, Funzione FROM Impiegati WHERE Stipendio BETWEEN AND 45000; 25
26 l operatore IN controlla se un valore appartiene a uno dei valori di una lista che viene precisata dopo la parola In all interno della condizione. Es. Ottenere tutti i dati dei dipendenti che risiedono a Torino, Venezia e Palermo: SELECT * FROM Impiegati WHERE Residenza IN ( Torino, Venezia, Palermo ); LIKE: questo operatore confronta il valore di un attributo di tipo carattere con un modello di stringa che può contenere caratteri jolly (o metacaratteri). I caratteri jolly sono _ (underline) per indicare uno e un solo carattere qualsiasi in quella posizione della stringa, %(percento) per indicare una sequenza di zero o più caratteri. Es. ottenere il cognome e il dipartimento dei dipendenti con il cognome che inizia con R SELECT Cognome, Dipartimento FROM Impiegati WHERE Cognome LIKE R% ; il predicato IS NULL confronta il valore in una colonna con il valore Null. L uso di questo predicato è il solo modo per controllare la presenza del valore NULL in una colonna. Es. ottenere l elenco dei dipendenti per i quali è indicato lo stipendio: SELECT Cognome, Nome FROM Impiegati WHERE Stipendio IS NOT NULL; 26
27 Interrogazioni nidificate Si supponga di voler conoscere il nome del manager di Mario Rossi (Mario Rossi con ID=1 lavora nel dipartimento di codice Prod che ha come manager una persona con ID=12 -> Anita Bianco): SELECT C.Cognome, C.Nome FROM Impiegati I, Dipartimenti D, Impiegati C WHERE I.Dipartimento=D.Codice AND D.Manager=C.ID AND I.Nome= Mario AND I.Cognome= Rossi ; Le interrogazioni nidificate permettono di risolvere lo stesso problema nel seguente modo: 1. Estrarre da Impiegati il codice del dipartimento dove lavora Mario Rossi 2. Usare il codice dipartimento trovato al punto1 per estrarre da Dipartimenti l identificativo del manager del dipartimento 3. Dall identificativo ricavato al punto 2 è possibile risalire al nome del manager per mezzo della tabella Impiegati SELECT Cognome, Nome FROM Impiegati 3 WHERE ID= ); (SELECT Manager FROM Dipartimenti 2 WHERE Codice= ) ( SELECT Dipartimento FROM Impiegati 1 WHERE Cognome= Rossi AND Nome= Mario 1 27
28 Elencare cognome e nome dei dipendenti che hanno lo stipendio inferiore allo stipendio medio di tutti i dipendenti: SELECT Cognome, Nome FROM Impiegati WHERE Stipendio < (SELECT AVG (Stipendio) FROM Impiegati ); Elencare i dipendenti per i quali lo stipendio risulta maggiore del valore medio di tutti gli stipendi; l elenco deve contenere cognome, nome e descrizione del dipartimento del dipendente oltre allo scarto rispetto al valore medio degli stipendi: SELECT Cognome, Nome, Descrizione, Stipendio (SELECT AVG(Stipendio) FROM Impiegati) FROM Impiegati, Dipartimenti WHERE Dipartimento = Codice AND Stipendio = (SELECT AVG(Stipendio) Produrre l elenco dei dipendenti che sono manager: SELECT Cognome, Nome, ID FROM Impiegati WHERE ID IN (SELECT DISTINCT Manager FROM Impiegati); FROM Dipartimenti); 28
29 ANY ANY viene utilizzata in una clausola Where in espressioni del tipo: x > ANY Elenco; il predicato ANY è vero se il confronto è vero per almeno uno dei valori dell elenco Es. ottenere le informazioni dei dipendenti del dipartimento Amministrazione con lo stipendio superiore a quello di almeno un impiegato del Marketing: SELECT Cognome, Nome FROM Impiegati WHERE Dipartimento = Amm AND Stipendio > ANY ( SELECT Stipendio FROM Impiegati WHERE Dipartimento = Mkt ); ALL ALL viene utilizzato in una clausola Where in espressioni del tipo x <= ALL Elenco; il predicato ALL restituisce vero se il confronto è vero per ciascuno dei valori restituiti. La condizione di ricerca è falsa se il confronto è falso per almeno uno tra i valori restituiti dalla sottoquery. Sostituendo ALL a ANY nella precedente interrogazione si possono estrarre tutte le righe dei dipendenti dell Amministrazione che hanno lo stipendio maggiore di quello di tutti gli impiegati del Marketing Valgono le seguenti equivalenze: Attributo IN (Select ) equivale a: Attributo = ANY (Select ) Attributo NOT IN (Select ) equivale a: Attributo <> ALL (Select ) 29
30 EXISTS EXISTS viene utilizzato in una clausola WHERE in espressioni del tipo EXISTS Elenco Il predicato EXISTS controlla se vengono restituite righe dall esecuzione delle sottoquery; la condizione di ricerca è vera se la Select nidificata produce una o più righe come risultato. Es. Ottenere l elenco dei dipendenti con cognome e nome e scostamento dalla media degli stipendi del dipartimento Marketing, solo se esistono dipendenti che lavorano in quel dipartimento: SELECT Cognome, Nome, Stipendio (SELECT AVG(Stipendio) FROM Impiegati WHERE EXIXTS (SELECT * FROM Impiegati FROM Impiegati WHERE Dipartimento = Mkt ); WHERE Dipartimento = Mkt ) 30
31 Le viste logiche Il linguaggio SQL consente di decidere le modalità con le quali gli utenti possono vedere le tabelle del DB creando una finestra, detta VIEW (vista), su alcuni o su tutti i dati contenuti in una o più tabelle. La vista viene identificata con un nome assegnato in fase di creazione con il comando CREATE VIEW. L utente può operare sulla vista come se fosse una tabella del DB (non rimane distratto dai dati che sono ininfluenti sul tipo di elaborazione che deve fare). La creazione della vista viene realizzata con l uso dell istruzione Select all interno del comando Create View. Es. creare una vista di nome ImpiegatiCapi contenente i dati dei manager: CREATE VIEW ImpiegatiCapi AS SELECT ID, Nome Cognome, Dipartimento FROM Impiegati WHERE ID IN (10,12,13,14); Essendo 10,12,13,14 gli identificativi dei manager. Una vista può essere eliminata con il comando DROP VIEW seguito dal nome assegnato alla vista in fase di creazione. Es. per eliminare la vista creata con il nome ImpiegatiCapi : DROP VIEW ImpiegatiCapi ; 31
32 Le viste logiche possono semplificare la progettazione di query complesse. Es. costruiamo la vista logica di nome PersonaleDipartimenti che elenca, per ogni dipartimento, il totale degli stipendi erogati e il numero dei dipendenti che lavorano nel dipartimento: CREATE VIEW PersonaleDipartimenti (Dipart,NumDipendenti,TotStipendi) AS SELECT Dipartimento, Count(*), SUM(Stipendio) FROM Impiegati GROUP BY Dipartimenti; Il comando Create View crea una vista logica con tre attributi di nome Dipart, NumDipendenti, TotStipendi con i quali si fa riferimento ai 3 valori prodotti dalla Select. Partendo dalla vista logica è facile costruire le seguenti interrogazioni: dipartimento che spende di più: SELECT Dipart FROM PersonaleDipendenti WHERE TotStipendi = (SELECT MAX(TotStipendi) FROM PersonaleDipartimenti); numero medio di dipendenti per dipartimento: SELECT AVG(NumDipendenti) FROM PersonaleDipartimenti; 32
33 Esempi di interrogazioni Attività sportive studentesche Le informazioni relative alle attività sportive studentesche devono essere organizzate in una base di dati. Gli studenti frequentano gli istituti superiori e possono partecipare a una o più manifestazioni sportive. Per ogni attività sportiva le scuole indicano un professore che svolge la funzione di riferimento e di allenatore: ogni professore segue una sola manifestazione, ma una stessa manifestazione può essere seguita da professori diversi di scuole diverse. Definire il modello del DB e rappresentare le seguenti interrogazioni: - numero di studenti che partecipano a una determinata manifestazione sportiva - elenco anagrafico degli allenatori di un attività sportiva - elenco delle scuole con il numero di studenti che partecipano alle attività sportive - elenco delle scuole con studenti che partecipano a una determinata manifestazione sportiva - elenco allenatori e scuole di appartenenza in ordine alfabetico - numero degli studenti partecipanti di una determinata scuola per ciascuna delle manifestazioni sportive 33
34 Analisi di dati Le entità che possono essere individuate nel problema sono: - Istituto, per gli istituti di appartenenza di studenti e professori - Studente, per gli studenti delle diverse scuole che partecipano alle manifestazioni - Professore, per rappresentare i docenti che svolgono le funzioni di allenatore - Manifestazione, per le attività sportive Gli attributi di Istituto sono: codice dell istituto, denominazione, indirizzo, telefono Gli attributi di Studente sono: codice dello studente, cognome, nome, data di nascita, classe Gli attributi di Professore sono: codice del professore, cognome, nome Gli attributi di Manifestazione sono: codice della manifestazione, descrizione, luogo, data inizio per i tornei e i campionati o di svolgimento per le gare di una giornata 34
35 Modello E/R Studente N N 1 Frequentare Istituto 1 Partecipare Impiegare N Manifestazione 1 N Coordinatore N Professore 35
36 Modello Logico Utilizzando le regole di derivazione si passa dal modello concettuale al modello logico, cioè alle tabelle: le associazioni uno a molti si rappresentano introducendo le chiavi esterne; nelle tabelle Studenti e Istituto per indicare l istituto di appartenenza; nella tabella Professori viene aggiunta anche un altra chiave esterna per l associazione con l entità Manifestazioni; l associazione molti a molti genera una nuova tabella Iscrizioni che contiene le chiavi primarie di Studenti e Manifestazioni più la data di iscrizione Tabelle Istituti (CodiceIstituto, Denominazione, Indirizzo, Telefono) Studenti (CodiceStud, CognStud, NomeStud, DataNascita, Classe, CodiceIstituto) Manifestazioni (CodiceManif, Descrizione, Luogo, DataInizio) Professori (CodiceProf CognProf, NomeProf, CodiceIstituto, CodiceManif) Iscrizione (CodiceStud, CodiceManif, DataIscrizione) 36
37 Interrogazioni - Numero di studenti che partecipano a una determinata manifestazione sportiva SELECT COUNT(*) FROM Manifestazioni, Iscrizioni WHERE Manifestazioni.CodiceManif = Iscrizioni.CodiceManif AND Descrizione = [manifestazione da controllare]; - Elenco delle scuole con il numero di studenti che partecipano alle attività sportive SELECT Denominazione, COUNT (DISTINCT CodiceStud) FROM Studenti, Istituti WHERE Studenti.CodiceIstituto = Istituto.CodiceIstituto GROUP BY Denominazione; -Elenco delle scuole con studenti che partecipano a una determinata manifestazione sportiva SELECT Denominazione, Indirizzo, Telefono FROM Manifestazioni, Iscrizioni, Studenti, Istituti WHERE Manifestazioni.CodiceManif = Iscrizioni.CodiceManif AND Studenti.CodiceStud = Iscrizioni.CodiceStud AND Sudenti.CodiceIstituto = Istituti.CodiceIstituto AND Descrizione = [manifestazione da controllare] GROUP BY Denominazione, Indirizzo, Telefono; 37
38 -Elenco allenatori e scuole di appartenenza in ordine alfabetico SELECT CognProf, NomeProf, Denominazione FROM Professori, Istituti WHERE Professori.CodiceIstituto = Istituto.CodiceIstituto ORDER BY CognProf, NomeProf; - Numero degli studenti partecipanti di una determinata scuola per ciascuna delle manifestazioni sportive SELECT Descrizione, COUNT(*) FROM Manifestazioni, Iscrizioni, Studenti, Istituti WHERE Manifestazioni.CodiceManif = Iscrizioni.CodiceManif AND Studenti.CodiceStud = Iscrizioni.CodiceStud AND Studenti.CodiceIstituto = Istituto.CodiceIstituto AND Denominazione = [scuola da controllare] GROUP BY Descrizione; 38
39 Viaggi e vacanze Un agenzia di viaggi intende organizzare in una base di dati tutte le informazioni riguardanti la sua attività: i viaggi o vacanze, le organizzazioni turistiche o tour oparator, i clienti dei propri servizi, le nazioni o località o città che sono destinazione dei viaggi/vacanze. Tutte le attività proposte ai clienti sono dei pacchetti: ciascuno di essi si riferisce a un organizzazione turistica e riguardano una precisa zona del mondo o nazione o città. Ci possono essere offerte di viaggi con la stessa destinazione da parte di organizzazioni diverse. Per es. ci può essere una crociera nel Mediterraneo proposta dall organizzazione turistica A, oppure un soggiorno di una settimana a Vienna offerta dall organizzazione turistica B. Di ogni pacchetto offerto occorre conoscere modalità e prezzi; di ogni località o nazione è opportuno tenere memorizzate informazioni su condizioni climatiche, moneta. Un cliente può acquistare in date diverse molti viaggi o vacanze. Definire il modello del DB e rappresentare le seguenti interrogazioni: - Elenco dei viaggi/vacanza con prezzo inferiore a un prezzo prefissato - Elenco dei soggiorni con prezzo in una località prefissata - Elenco dei clienti, con nome e indirizzo, che hanno fatto un viaggio con una determinata destinazione - Numero dei pacchetti offerti da un organizzazione turistica prefissata - Elenco di tutte le nazioni o località con il numero di pacchetti che si riferiscono ad esse 39
40 Analisi dei dati Le entità che possono essere individuate nel problema sono: - Nazione, per rappresentare gli stati o le località che sono destinazioni dei pacchetti di vacanze - Organizzazione, per società di turismo che offrono i viaggi e i soggiorni di vacanze - Cliente, per l anagrafica dei clienti dell agenzia di viaggi - Pacchetto, per rappresentare i pacchetti di viaggio o soggiorno Gli attributi di Nazione sono: codice della nazione o località, denominazione più dettagliata dello stato o della località di destinazione, moneta, clima Gli attributi di Organizzazione sono: codice dell organizzazione, nome, telefono Gli attributi di Cliente sono: codice del cliente, cognome e nome, indirizzo, telefono Gli attributi di Pacchetto sono: codice del pacchetto, modalità, prezzo 40
41 Organizzazione 1 N Offrire Pacchetto N N Acquistare Cliente N Riferirsi 1 Nazione 41
42 Utilizzando le regole di derivazione si passa dal modello concettuale al modello logico, cioè le tabelle: le associazioni uno a molti si rappresentano introducendo le chiavi esterne nella tabella Pacchetti per indicare l organizzazione proponente e la nazione o località di destinazione. L associazione molti a molti genera una nuova tabella Acquisti che ha come chiave un numero progressivo di registrazione e contiene le chiavi di Pacchetti e Clienti più la data in cui il cliente ha acquistato il pacchetto. Tabelle Nazioni (CodiceNaz, Denominazione, Moneta, Clima) Clienti (CodiceCli, Cognome, Nome, Indirizzo, Telefono) Organizzazioni (CodiceOrg, NomeOrg, TelefOrg) Pacchetti (CodicePac, Descrizione, Modalità, Prezzo, CodiceNaz, CodiceOrg) Acquisti (NumReg, CodiceCli, CodicePac, DataAcquisto) 42
43 Interrogazioni Elenco dei viaggi/vacanza con prezzo inferiore a un prezzo prefissato SELECT * FROM Pacchetti WHERE Prezzo < [prezzo massimo] Elenco dei soggiorni con prezzo in una località prefissata SELECT Descrizione, Modalità, Prezzo FROM Nazioni, Pacchetti WHERE Nazioni.CodiceNaz = Pacchetti.CodiceNaz AND Denominazione = [località prefissata] Elenco dei clienti, con nome e indirizzo, che hanno fatto un viaggio con una determinata destinazione SELECT Cognome, Nome, Indirizzo FROM Nazioni, Pacchetti, Acquisti, Clienti WHERE Nazioni.CodiceNaz = Pacchetti.CodiceNaz AND Pacchetti.CodicePac = Acquisti.CodicePac AND Acquisti.CodiceCli = Clienti.CodiceCli AND Denominazione = [località da controllare]; 43
44 Numero dei pacchetti offerti da un organizzazione turistica prefissata SELECT COUNT(*) FROM Pacchetti, Organizzazioni WHERE Pacchetti.CodiceOrg = Organizzazioni.CodiceOrg AND NomeOrg = [organizzazione da controllare]; Elenco di tutte le nazioni o località con il numero di pacchetti che si riferiscono ad esse SELECT Denominazione, COUNT(*) FROM Nazioni, Pacchetti WHERE Nazioni.CodiceNaz = Pacchetti.CodiceNaz GROUP BY Denominazione; 44
45 Rappresentanti e fatture ai clienti Si vogliono organizzare le informazioni relative ai clienti, ai loro rappresentanti e alle fatture emesse. Ogni rappresentante ha tanti clienti, mentre a un cliente corrisponde un solo rappresentante. Per semplicità si supponga di registrare solo la data e l importo totale di ogni fattura, senza specificare le righe di dettaglio sugli articoli venduti. Definire il modello del database e rappresentare le seguenti interrogazioni: Elenco dei clienti di un rappresentante Numero dei clienti affidati a un determinato rappresentante Cognome e nome del rappresentante di un determinato cliente Elenco delle fatture di un codice cliente prefissato, in ordine di data Fatturato raggruppato per codice rappresentante Numero delle fatture emesse raggruppate per codice rappresentante Nome del cliente e data di emissione per la fattura con importo massimo Codice e nome dei clienti per i quali il fatturato totale è superiore a una cifra prefissata Codice e nome dei rappresentanti per i quali il numero delle fatture è superiore a un numero prefissato 45
46 Analisi dei dati Le entità che possono essere individuate nel problema sono: Cliente, per i clienti ai quali vengono emesse le fatture Rappresentante, per gli agenti ai quali sono assegnati i clienti Fattura, per le vendite effettuate dai rappresentanti Gli attributi di Cliente sono: codice del cliente, ragione sociale, indirizzo, telefono, partita IVA. Gli attributi di Rappresentante sono: codice del rappresentante, cognome, nome, zona assegnata. Gli attributi di Fattura sono: numero della fattura, data di emissione, importo. 46
47 Schema Entity/Relationship Fattura N 1 N 1 Cliente Rappresentante Ricevere Visitare Il modello viene verificato utilizzando le regole di lettura del modello E/R: Ogni rappresentante può visitare uno o più clienti, ogni cliente deve essere visitato da un solo rappresentante. Ogni cliente può ricevere una o più fatture, ogni fattura deve essere ricevuta da un solo cliente. Utilizzando le regole di derivazione si passa dal modello concettuale alle tabelle, introducendo le chiavi esterne per rappresentare le associazioni uno a molti TABELLE Rappresentanti (CodiceRap, CognomeRap, NomeRap, Zona) Clienti (CodiceCli, RagioneSociale, Indirizzo, Telefono, PartitaIVA, CodiceRap) Fatture (NumeroFatt, DataFatt, Importo, CodiceCli) 47
48 Interrogazioni Elenco dei clienti di un rappresentante SELECT RagioneSociale, Indirizzo, Telefono FROM Clienti, Rappresentanti WHERE Clienti.CodiceRap = Rappresentanti.CodiceRap AND CognomeRap = [rappresentante da controllare]; Numero dei clienti affidati a un determinato rappresentante SELECT COUNT(*) FROM Clienti, Rappresentanti WHERE Clienti.CodiceRap = Rappresentanti.CodiceRap AND CognomeRap = [rappresentante da controllare]; Cognome e nome del rappresentante di un determinato cliente SELECT CognomeRap, NomeRap FROM Clienti, Rappresentanti WHERE Clienti.CodiceRap = Rappresentanti.CodiceRap AND RagioneSociale = [cliente da controllare]; 48
49 Elenco delle fatture di un codice cliente prefissato, in ordine di data SELECT * FROM Fatture WHERE CodiceCli = [codice da controllare] ORDER BY DataFatt; Fatturato raggruppato per codice rappresentante 1. Temp1=congiunzione di Clienti e Fatture su CodiceCli 2. Temp2=Raggruppamento di Temp1 per CodiceRap e calcolo somma Importo 3. Proiezione di Temp2 su CodiceRap, Somma SELECT CodiceRap, SUM(Importo) FROM Fatture, Clienti WHERE Fatture.CodiceCli = Clienti.CodiceCli GROUP BY CodiceRap; 49
50 Numero delle fatture emesse raggruppate per codice rappresentante 1. Temp1=Congiunzione di Clienti e Fatture su CodiceCli 2. Temp2=Raggruppamento di Temp1 per CodiceRap e Conteggio 3. Proiezione di Temp2 su CodiceRap, conteggio SELECT CodiceRap, COUNT(*) FROM Fatture, Clienti WHERE Fatture.CodiceCli = Clienti.CodiceCli GROUP BY CodiceRap; 50
51 Nome del cliente e data di emissione per la fattura con importo massimo 1. ValMax=Valore massimo importo fatture 2. Temp1=Selezione di Fatture per Importo=ValMax 3. Temp2=Congiunzione di Clienti e Temp1 su CodiceCli 4. Proiezione di Temp2 su RagioneSociale,DataFatt,Importo SELECT RagioneSociale, DataFatt, Importo FROM Fatture, Clienti WHERE Fatture.CodiceCli = Clienti.CodiceCli AND Importo = ( SELECT MAX(Importo) FROM Fatture); Cognome e nome del rappresentante corrispondente alla fattura con importo massimo 1. ValMax=Valore massimo importo fatture 2. Temp1=Selezione di Fatture per Importo=ValMax 3. Temp2=Congiunzione di Clienti e Temp1 su CodiceCli 4. Temp3=Congiunzione di Rappresentanti e Temp2 su CodiceRap 5. Proiezione di Temp3 su CognomeRap, NomeRap SELECT CognomeRap, NomeRap FROM Fatture, Rappresentanti, Clienti WHERE Clienti.CodiceRap = Rappresentanti.CodiceRap AND Fatture.CodiceCli = Clienti.CodiceCli AND Importo = ( SELECT MAX(Importo) FROM Fatture); 51
52 Codice e ragione sociale dei clienti per i quali il fatturato totale è superiore a una cifra prefissata 1. Temp1=Congiunzione di Clienti e Fatture su CodiceCli 2. Temp2=Raggruppamento di Temp1 per cliente e Somma importi 3. Temp3=selezione di Temp2 per Somma importi >[cifra prefissata] 4. Proiezione di Temp3 su CodiceCli,RagioneSociale SELECT CodiceCli, RagioneSociale FROM Fatture, Clienti WHERE Clienti.CodiceCli = Fatture.CodiceCli HAVING SUM(Importo) > [cifra prefissata]; 52
53 Codice e nome dei rappresentanti per i quali il numero delle fatture è superiore a un numero prefissato 1. Temp1=Congiunzione di Rappresentanti e Clienti su CodiceRap 2. Temp2=Congiunzione di Temp1 e fatture su CodiceCli 3. Temp3=Raggruppamento di Temp2 per rappresentante e Conteggio 4. Temp4=Selezione di Temp3 per conteggio>[numero prefissato] 5. Proiezione di Temp4 su CodiceRap, CognomeRap, NomeRap SELECT CodiceRap, CognomeRap, NomeRap FROM Fattura, Rappresentanti, Clienti WHERE Clienti.CodiceRap = Rappresentanti.CodiceRap AND Fatture.CodiceCli = Clienti.CodiceCli GROUP BY Codice.Rap, CognomeRap, NomeRap HAVING COUNT(*) > [numero prefissato]; 53
54 I comandi per la sicurezza L amministrazione della base di dati può stabilire anche il diritto di accesso per utenti specifici o per tutti gli utenti, nel caso di accessi multipli alle tabelle del DB. Il comando GRANT concede i permessi, specificando il tipo di accesso, le tabelle sulle quali è consentito l accesso e l elenco degli utenti ai quali è permesso di accedere. Il tipo di accesso può riguardare il diritto di modifica della struttura della tabella con l aggiunta di nuove colonne, oppure di modifica dei dati contenuti nella tabella, oppure l uso del comando Select. Per concedere il diritto di modifica sulla tabella dei dipendenti agli utenti denominati User1 e User2, si deve usare il comando: GRANT UPDATE ON Impiegati TO User1, User2; La revoca dei permessi con annullamento dei diritti di accesso viene effettuato con il comando REVOKE che ha una sintassi analoga a quella del comando Grant: REVOKE UPDATE ON Impiegati FROM User1, User2 54
55 I permessi che possono essere concessi (o revocati) agli utenti sono indicati con le seguenti parole chiave che vanno specificate dopo Grant o Revoke: ALTER per aggiungere o eliminare colonne, oppure per modificare i tipi di dati DELETE per eliminare righe dalle tabelle INDEX INSERT per creare indici per inserire nuove righe nelle tabelle SELECT per ritrovare i dati dalle tabelle UPDATE per cambiare i valori contenuti nelle tabelle ALL per tutti i permessi precedenti I permessi con le opzioni Select e Update, nei comandi Grant e Revoke, diventano più restrittivi specificando, tra parentesi tonde e separati con la virgola, i nomi delle colonne che l utente può vedere o modificare Es. Per concedere il diritto di modifica della residenza e dello stipendio dei dipendenti all utente denominato con User3: GRANT UPDATE (Residenza, Stipendio) ON Impiegati TO User3; 55
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
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
********************* 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
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,
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
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
Lezione V. Aula Multimediale - sabato 29/03/2008
Lezione V Aula Multimediale - sabato 29/03/2008 LAB utilizzo di MS Access Definire gli archivi utilizzando le regole di derivazione e descrivere le caratteristiche di ciascun archivio ASSOCIAZIONE (1:1)
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 (, ,
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
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
Volumi di riferimento
Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di
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.
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
Operazioni sui database
Operazioni sui database Le operazioni nel modello relazionale sono essenzialmente di due tipi: Operazioni di modifica della base di dati (update) Interrogazioni della base di dati per il recupero delle
I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER
Caratteristiche generali del linguaggio SQL Il linguaggio SQL è il linguaggio usato per la gestione dei database relazionali, cioè dei database creati con un DBMS di tipo relazionale. Esso nacque nella
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
User Tools: DataBase Manager
Spazio di lavoro Per usare T-SQL Assistant selezionare il link Simple Query e spostare a piacere la piccola finestra dove un menu a tendina mostra i diversi comandi SQL selezionabili, il pulsante Preview
SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:
SQL SQL (pronunciato anche come l inglese sequel: acronimo di Structured Query Language (linguaggio di interrogazione strutturato Linguaggio completo che presenta anche proprietà di: DDL (Data Definition
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
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
Gestione delle tabelle
Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 Creazione di una tabella (1/3) Si utilizza
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,
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
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
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
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
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
Dispensa di database Access
Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di
Corso sul linguaggio SQL
Corso sul linguaggio SQL Modulo L2B (SQL) 2.1 Comandi sui database 1 Prerequisiti Introduzione ai DB Linguaggi per database Tipi fondamentali di dati 2 1 Introduzione In questa Unità introduciamo il linguaggio
Sistemi per la gestione di database: MySQL ( )
Sistemi per la gestione di database: MySQL ( ) Relational Database e Relational Database Management System Un database è una raccolta di dati organizzata in modo da consentire l accesso, il reperimento
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
Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle
Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 2007 Politecnico di Torino 1 Creazione
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
SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE
SQL e ACCESS Prof. Salvatore Multazzu ([email protected]) Applicazioni Informatiche nella comunicazione Modello relazionale Entità Record o Ennuple Attributi o Campi Tipi Chiavi Primarie (PK)
Corso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati) Lezione 6 (15 gennaio 2009) Linguaggio SQL: Data Definition Language (DDL) Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof.
Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6
Data Base 1 Sommario I concetti fondamentali. Database Relazionale.. Query e SQL MySql, Creazione di un db in MySQL con PHPmyAdmin Creazione database e delle Tabelle Query Inserimento Ricerca Modifica
Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi
Query (Interrogazioni) Ultima modifica: 5/4/2012 SQL Materiale aggiuntivo per il corso di laurea in Lingue e Culture per il Turismo classe L-15! È necessario un modo per interrogare le basi di dati, cioè
Giovanna Rosone 04/03/2010. 04/03/2010 SQL, Istruzioni per la modifica dello schema
Giovanna Rosone 04/03/2010 04/03/2010 SQL, Istruzioni per la modifica dello schema 1 Riepilogo Impiegato Pagamenti Nome colonna PAG_COD PAG_MATR Tipo dati CHAR(6) CHAR(6) Nome colonna Tipo dati PAG_STIPENDIO
Le Basi di Dati. Le Basi di Dati
Le Basi di Dati 20/05/02 Prof. Carlo Blundo 1 Le Basi di Dati Le Base di Dati (database) sono un insieme di tabelle di dati strutturate in maniera da favorire la ricerca di informazioni specializzate per
Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati
Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7 Il trattamento dei dati database: il linguaggio SQL seconda parte Prof. Valle D.ssa Folgieri Lez9 15.11.06 Trattamento dati. Database: il
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
Capitolo 13. Interrogare una base di dati
Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per
Data Management Software. Il linguaggio SQL. Raggruppamenti. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004
DB2 Data Management Software Il linguaggio SQL Raggruppamenti Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004 LEGGERE LE SEGUENTI ATTENZIONI Le informazioni contenute in questa
Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26
Uso delle variabili di alias SQL slide aggiuntive Laurea magistrale in Scienze della mente Laurea magistrale in Psicologia dello sviluppo e dell'educazione educazione Non solo per disambiguare la notazione
Le query. Lezione 6 a cura di Maria Novella Mosciatti
Lezione 6 a cura di Maria Novella Mosciatti Le query Le query sono oggetti del DB che consentono di visualizzare, modificare e analizzare i dati in modi diversi. Si possono utilizzare query come origine
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. [email protected] Università degli Studi di L Aquila Dipartimento di Informatica Technolabs
Basi di dati 9 febbraio 2010 Compito A
Basi di dati 9 febbraio 2010 Compito A Domanda 0 (5%) Leggere e rispettare le seguenti regole: Scrivere nome, cognome, matricola (se nota), corso di studio e lettera del compito (ad esempio, A) sui fogli
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:
Laboratorio di Basi di Dati e Web
Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 1 SQL Structured Query Language SQL è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali Il linguaggio
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),
Progettazione di un Database
Progettazione di un Database Per comprendere il processo di progettazione di un Database deve essere chiaro il modo con cui vengono organizzati e quindi memorizzati i dati in un sistema di gestione di
OSSIF WEB. Manuale query builder
OSSIF WEB Manuale query builder - Maggio 2010 1) Sommario 1) SOMMARIO... 2 INTRODUZIONE... 3 Scopo del documento... 3 Struttura del documento... 3 Descrizione dell interfaccia grafica... 3 SELEZIONE DI
UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME
UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME 14 maggio 2009 1 Progettazione di basi di dati Si vuole
SQL Sintassi Dei Comandi
SQL Sintassi Dei Comandi Di Roberto Aloi http://prof3ta.homeunix.org [email protected] Questo fascicolo è stato realizzato esclusivamente a fini divulgativi e per la libera consultazione. E' concessa la
Data base relazionale ed SQL. Modello relazionale dei data base e il linguaggio standard per la loro gestione
Data base relazionale ed SQL Modello relazionale dei data base e il linguaggio standard per la loro gestione Contenuti Modello relazionale Cenni sulla progettazione di un data base Normalizzazione delle
Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati
Basi di dati Il Modello Relazionale dei Dati Proposto da E. Codd nel 1970 per favorire l indipendenza dei dati Disponibile come modello logico in DBMS reali nel 1981 (non è facile realizzare l indipendenza
Il linguaggio SQL: query innestate
Il linguaggio SQL: query innestate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLc-subquery.pdf Sistemi Informativi L-A DB di riferimento
SQL. Alcune note sulla definizione dei dati
SQL Alcune note sulla definizione dei dati Domini Domini elementari (predefiniti) Domini definiti dall'utente (riutilizzabili, possono servire per specificare vincoli di dominio propri di una certa applicazione)
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,
Organizzazione degli archivi
COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i
Informatica per le discipline umanistiche 2 lezione 10
Informatica per le discipline umanistiche 2 lezione 10 Parte III: il computer come strumento per l interazione e la comunicazione Si è parlato di identità Parte III: il computer come strumento per l interazione
Il linguaggio SQL: viste e tabelle derivate
Il linguaggio SQL: viste e tabelle derivate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLd-viste.pdf Sistemi Informativi L-A DB di riferimento
Interrogazioni complesse. SQL avanzato 1
Interrogazioni complesse SQL avanzato Classificazione delle interrogazioni complesse Query con ordinamento Query con aggregazione Query con raggruppamento Query binarie Query annidate SQL avanzato 2 Esempio
Data management a.a. 2009-2010. Il linguaggio SQL
Data management a.a. 2009-2010 Il linguaggio SQL 1 Modello di database E' un database generico con anagrafica e movimenti di uso molto frequente: per esempio, clienti e fatture, studenti ed esami sostenuti,
Il linguaggio SQL: DDL di base
Il linguaggio SQL: DDL di base Sistemi Informativi T Versione elettronica: 04.1.SQL.DDLbase.pdf SQL: caratteristiche generali SQL (Structured Query Language) èil linguaggio standard de facto per DBMS relazionali,
Introduzione ai database relazionali
Introduzione ai database relazionali Tabelle Un database (DB) è costituito da un insieme di file che memorizzano dati opportunamente organizzati Nei database relazionale tale organizzazione è costituita
2104 volume III Programmazione
2103 SQLite Capitolo 77 77.1 Utilizzo generale................................. 2104 77.1.1 Utilizzo di sqlite3».......................... 2104 77.1.2 Copie di sicurezza............................ 2106
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
Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf
Il linguaggio SQL: viste e tabelle derivate Versione elettronica: SQLd-viste.pdf DB di riferimento per gli esempi Imp Sedi CodImp Nome Sede Ruolo Stipendio Sede Responsabile Citta E001 Rossi S01 Analista
TEORIA sulle BASI DI DATI
TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere
Compito DA e BD. Tempo concesso: 90 minuti 12 giugno 03 Nome: Cognome: Matricola: Esercizio 1
Compito DA e BD. Tempo concesso: 90 minuti 12 giugno 03 Nome: Cognome: Matricola: Esercizio 1 Si considerino le seguenti specifiche relative alla realizzazione della base di dati di una facoltà e si definisca
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
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 DEFINIZIONE Il concetto di vista 2 È una relazione derivata. Si specifica l espressione che genera il suo contenuto.
DATABASE RELAZIONALI
1 di 54 UNIVERSITA DEGLI STUDI DI NAPOLI FEDERICO II DIPARTIMENTO DI DISCIPLINE STORICHE ETTORE LEPORE DATABASE RELAZIONALI Dott. Simone Sammartino Istituto per l Ambiente l Marino Costiero I.A.M.C. C.N.R.
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
Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 9 SETTEMBRE 2015 Tempo: 2h30m
Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 9 SETTEMBRE 2015 Tempo: 2h30m Si consideri il seguente schema di base di dati, che vuole memorizzare informazioni relative a un sito di affitto
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,
Prova Scritta di Basi di Dati
Prova Scritta di Basi di Dati 25 Luglio 2006 COGNOME: NOME: MATRICOLA: Si prega di risolvere gli esercizi direttamente sui fogli del testo, negli spazi indicati. Usare il foglio protocollo solo per la
Introduzione all Algebra Relazionale
Basi di dati L Algebra Relazionale Introduzione all Algebra Relazionale Una volta definito lo schema logico di un database, partendo da un Diagramma E-R, e dopo aver inserito le tabelle nel database, eventualmente
Corso di Basi di Dati A.A. 2014/2015
Corso di Laurea in Ingegneria Gestionale Sapienza - Università di Roma Corso di Basi di Dati A.A. 2014/2015 Esercitazione su Progettazione Logica Tiziana Catarci, Andrea Marrella Ultimo aggiornamento :
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
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
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,
Microsoft Access. Microsoft Access
Microsoft Access E. Tramontana E. Tramontana 1 Microsoft Access Un Database è una collezione di dati relazionati e strutturati MS Access è uno strumento per la gestione di Database Consente di archiviare
Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale
Basi di dati L Algebra Relazionale Introduzione all Algebra Relazionale Una volta definito lo schema logico di un database, partendo da un Diagramma E-R, e dopo aver inserito le tabelle nel database, eventualmente
ARCHIVI E DATABASE (prof. Ivaldi Giuliano)
ARCHIVI E DATABASE (prof. Ivaldi Giuliano) Archivio: è un insieme di registrazioni (o records) ciascuna delle quali è costituita da un insieme prefissato di informazioni elementari dette attributi (o campi).
MODULO 5 ACCESS Basi di dati. Lezione 4
MODULO 5 ACCESS Basi di dati Lezione 4 ARGOMENTI Lezione 4 Filtrare i dati Esempio 1 Query Cos è Creare Query in visualizza struttura Criteri di ricerca Esempio 2 Esempio 3 Esempio 4 Creare Query in creazione
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
CONCETTO DI ANNIDAMENTO
LEZIONE14 SQL ANNIDAMENTI PAG. 1 / 5 PROF. ANDREA ZOCCHEDDU LEZIONE14 SQL ANNIDAMENTI CONCETTO DI ANNIDAMENTO LINGUAGGIO SQL QUERY ANNIDATE Per annidamento si intende la possibilità che, all interno di
I Sistemi Informativi
I Sistemi Informativi Definizione Un Sistema Informativo è un mezzo per acquisire, organizzare, correlare, elaborare e distribuire le informazioni che riguardano una realtà che si desidera descrivere e
Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino
Integration Services Project SQL Server 2005 Integration Services Permette di gestire tutti i processi di ETL Basato sui progetti di Business Intelligence di tipo Integration services Project SQL Server
Corso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati) Lezione 1 (12 dicembre 2008) Introduzione alle Basi di Dati Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof. Carlo Batini,
Sviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL.
Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL. 2ELHWWLYL GD UDJJLXQJHUH SHU JOL VWXGHQWL alla fine dell esercitazione gli studenti dovranno essere in grado di: 1. utilizzare
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
Informatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati
Informatica Generale Andrea Corradini 19 - Sistemi di Gestione delle Basi di Dati Sommario Concetti base di Basi di Dati Il modello relazionale Relazioni e operazioni su relazioni Il linguaggio SQL Integrità
Archivi e Basi di Dati
Archivi e Basi di Dati A B C File Programma 1 Programma 2 A B C File modificati Programma 1 DBMS DB Programma 2 Informatica Generale (CdL in E&C), A.A. 2000-2001 55 Problemi nella gestione di archivi separati
Database 1 biblioteca universitaria. Testo del quesito
Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole
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
Esercitazione 8 Mercoledì 21 gennaio 2015 (2 ore) DDL e progettazione
Esercitazione 8 Mercoledì 21 gennaio 2015 (2 ore DDL e progettazione Testi degli esercizi Esercizio 1 (Tema d esame del 20 settembre 2012 Si consideri il seguente schema di base di dati che vuole tenere
Si formulino le seguenti interrogazioni tramite il linguaggio SQL:
Informatica per le Scienze Umane - Corso di Laurea in Lettere Appello del 15.01.2009 - Docente: Massimo Coppola Modello Relazionale e SQL Si consideri la seguente base di dati relativa alla redazione di
