Data base relazionale ed SQL. Modello relazionale dei data base e il linguaggio standard per la loro gestione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Data base relazionale ed SQL. Modello relazionale dei data base e il linguaggio standard per la loro gestione"

Transcript

1 Data base relazionale ed SQL Modello relazionale dei data base e il linguaggio standard per la loro gestione

2 Contenuti Modello relazionale Cenni sulla progettazione di un data base Normalizzazione delle relazioni A cosa serve e che cos e un DBMS I linguaggi per Data Base SQL

3 Il modello relazionale: concetti fondamentali/1 Il DB relazionale, proposto all inizio degli anni 70 da E.Codd, deve il suo nome al fatto che e basato sul concetto matematico di relazione. Dati n insiemi A1 An si dice relazione un sottoinsieme finito del loro prodotto cartesiano quindi l insieme delle ennuple a1... an con ai appartenente ad Ai (i = 1 n).

4 Il modello relazionale: concetti fondamentali/2 Il numero n si chiama grado della relazione Gli insiemi Ai si chiamano domini Il numero delle n-uple e la cardinalita della relazione.

5 Il modello relazionale: concetti fondamentali/3 Una relazione rappresenta un entita ed e rappresentata da una tabella. I nomi dei domini rappresentano gli attributi dell entita o anche le colonne della relazione Ciascuna n-upla rappresenta un istanza dell entita e quindi una riga della tabella

6 Confronto con gli archivi classici DB relazionale DB classico Tabella Righe Colonne File Record Campo

7 Esempio di relazione/1 A partire dai seguenti insiemi: 1 Insieme di tutte le stringhe che rappresentano nomi e cognomi 2 Insieme di tutte le stringhe che rappresentano le vie di Milano 3 Insieme delle stringhe che rappresentano numeri di telefono...

8 Esempio di relazione/2...si puo costruire la relazione Cittadino che puo essere formalmente definita come: Cittadino(nome, indirizzo, num-tel.) e in forma di tabella: Cittadino nome indirizzo num.tel. Stucchi Ciro Via Accursi Rossi Mario Via Veneto Valeri Carla Via Fonte

9 DB relazionali: requisiti fondamentali/1 1 - Ogni tabella e definita da un unico insieme di colonne corrispondenti agli attributi. 2 - Gli attributi contengono dati di tipo atomico (a singolo valore), non sono ammessi attributi i cui dati sono costituiti da un insieme di valori o da vettori. 3 - La successione delle righe nella tabella e irrilevante

10 DB relazionali: requisiti fondamentali/2 4 - Ogni colonna deve contenere dati omogenei cioe tutti gli elementi della colonna devono essere dello stesso tipo. 5 - In ogni tabella deve esistere un attributo o una combinazione di attributi di valore non nullo la cui combinazione identifica univocamente ciascuna riga della tabella (chiave primaria). 6 - Tutte le righe sono distinte tra loro.

11 Cenni di progettazione DB Livello concettuale: modella la realta dei dati con uno schema in cui vengono individuate le entita, le relazioni che intercorrono tra esse e gli attributi Livello logico: rappresenta il modo con cui i dati sono organizzati negli archivi elettronici. Lo schema logico e derivato dallo schema concettuale applicando opportune regole di derivazione. Livello fisico: e l implementazione del livello logico sui supporti per la registrazione fisica dei dati.

12 Dal modello concettuale a quello logico: regole di derivazione Ogni entita diventa una tabella. Ogni attributo diventa il nome di una colonna della tabella. L associazione 1 a 1 diventa un unica tabella che contiene gli attributi delle due entita. Nell associazione 1 a molti, la chiave primaria dell entita di partenza diventa chiave esterna dell entita di arrivo associata.

13 Operatori relazionali Gli operatori relazionali consentono di effettuare interrogazioni al DB per ottenere i dati desiderati estraendo da una tabella una sottotabella oppure combinando tra loro due o piu tabelle. I piu importanti sono: Selezione Proiezione Congiunzione

14 Operatori relazionali: selezione selezione La selezione (Select) applicata ad una tabella, genera una nuova tabella costituita da tutte le colonne della tabella originale e da un sottoinsieme di righe selezionate in base a delle condizioni prefissate. Le condizioni riguardano i valori che devono essere presenti in una o piu colonne della tabella.

15 Operatori relazionali: proiezione Proiezione L operazione di proiezione (project) applicata ad una tabella genera una tabella risultante contenente tutte le righe e solo un sottoinsieme delle colonne.

16 Operatori relazionali: congiunzione a1 a2 a3 b1 b2 b3 b1 b2 b3 c1 c2 c3 join a1 a2 a3 b1 b2 b3 c1 c2 c3 L operazione di congiunzione (join), applicata a due o piu tabelle aventi uno o piu attributi in comune, genera una tabella risultante contenente tutte le righe delle tabelle combinate secondo i valori uguali dell attributo comune.

17 Normalizzazione Normalizzare le tabelle di un DB relazionale significa verificare la struttura delle tabelle al fine di evitare ripetizione, ridondanza e quindi inconsistenza dei dati. Le tabelle normalizzate facilitano le operazioni di aggiunte, modifica e cancellazione dei dati. Sono individuati tre livelli basilari di normalizzazione o tre forme normali.

18 Prima forma normale/1 Una tabella e in prima forma normale (1 FN) se la sua struttura rispetta le seguenti regole: Gli attributi rappresentano informazioni elementari. I valori che compaiono in una colonna sono dello stesso tipo, cioe appartengono allo stesso dominio. Ogni riga e diversa da tutte le altre. L ordine con cui le righe compaiono nella tabella e irrilevante.

19 Prima forma normale/2 Esempio 1: la relazione: Studente(cognome, nome, classe) non e 1FN. Infatti l attributo classe e composto a sua volta da anno e sezione. Soluzione: la tabella normalizzata e : Studente(cognome, nome, anno, sezione).

20 Prima forma normale/3 Esempio 2: La relazione Dipendente(matricola, nome indirizzo, familiari-a-carico) non e 1FN infatti l attributo familiari-a-carico e costituito da un gruppo di attributi dello stesso tipo. Dipendente Matricola Nome Indirizzo Familiari a carico

21 Prima forma normale/4 Soluzione: Possiamo convertire la relazione in 2 tabelle: Dipendente(matricola,nome, indirizzo) Familiare(cod-fam, nome-fam, matr-dip) Dipendente Matricola Nome Indirizzo Familiare Cod-Fam Nome-fam Matr-dip

22 Prima forma normale/4 Le tabelle cosi individuate facilitano l inserimento di un nuovo figlio a carico del dipendente aggiungendo una nuova riga alla tabella Familiare, senza modificarne la struttura. Possiamo inoltre ritrovare le informazioni relative al capo famiglia con un operazione di congiunzione tra la tabella Dipendente e la tabella Familiare sull attributo comune Matricola del dipendente.

23 Seconda forma normale/1 Una relazione e in seconda forma normale (2FN) quando: e in prima forma normale tutti gli attributi non chiave dipendono dall intera chiave e non solo da una parte di essa (si riferisce a relazioni con chiavi multiple).

24 Esempio: Seconda forma normale/2 Consideriamo il problema dell inventario delle merci che si trovano in alcuni magazzini dislocati in varie localita. Le informazioni essenziali possono essere rappresentate con la seguente relazione: Merce(Cod, Magazzino, Qta, Indir_Magazzino) Codice Magazzino Quantita Ind.Mag.

25 Seconda forma normale/3 La chiave e composta da : Codice e Magazzino in quanto solo il codice non identifica la merce che puo trovarsi in magazzini differenti. L attributo indirizzo magazzino dipende solo da una parte della chiave, la tabella non e 2FN. Soluzione: Merce (Codice, Magazzino, Quantita ) Deposito (Magazzino,Ind-Mag) Codice Magazzino Quantita Magazzino Ind. Mag.

26 Terza forma normale/1 Una relazione e in terza forma normale (3FN) quando: e in seconda forma normale tutti gli attributi non chiave dipendono direttamente dalla chiave, cioe non possiede attributi non chiave che dipendono da altri attributi non chiave (la 3FN elimina la dipendenza transitiva degli attributi dalla chiave. )

27 Terza forma normale/2 Esempio: Consideriamo l anagrafica di un associazione di studenti di scuole diverse. Le informazioni relative a ciascun studente possono essere rappresentate dalla relazione: Studente(Matr., Nome, Scuola, telscuola) Matr. Nome Scuola Tel.Scuola

28 Terza forma normale/3 L attributo telscuola dipende da Scuola e quindi solo transitivamente da Matr. che e la chiave della tabella studente. Soluzione: Studente Matricola Nome Scuola Istituto Scuola Telefono

29 DBMS Il DBMS (Data Base Management System) e il SW che consente di costruire e gestire un DB realizzandolo su memoria di massa. Utenti finali Programmi applicativi DB DBMS

30 Funzioni del DBMS Implementazione del modello logico sul sistema di elaborazione Manipolazione e interrogazione sul DB Controllo dell integrita dei dati Sicurezza e protezione Gestione del Dizionario

31 Linguaggi del DBMS DDL (Data Definition Language) per la descrizione dei dati, delle tabelle e delle viste (creazione DB). DML (Data Manipulation Language) per il trattamento dei dati nel DB (inserimento,modifica o cancellazione dati) DCL (Data Control Language) per stabilire le autorizzazioni agli accessi e i tipi di permessi consentiti agli utenti. Query Language per le interrogazioni all DB.

32 SQL SQL (Structured Query Language) e un linguaggio non procedurale diventato uno standard tra i linguaggi per la gestione dei DB relazionali.

33 SQL: storia /1 Anni 70: IBM introduce System R che e un prototipo di ricerca Anni 80: il prototipo fu adottato con il nome SQL come linguaggio per i SW DBMS prodotti dall IBM (DB2 e SQL/DS) : l ANSI (American National Standards Institute) pubblico il primo standard SQL.

34 SQL: storia /2 1987: l ISO (International Standard Organization) pubblico il suo standard SQL. 1992: furono pubblicati gli aggiornamenti degli standard da ANSI (Ansi X3.135) e da ISO (ISO 9075)

35 SQL: storia /3 Oggi :I prodotti SW DBMS come Oracle, Informix, Dbase, Access utilizzano SQL come linguaggio di comandi per l utente del DB. N.B.: Ci sono delle differenze rispetto allo standard SQL facilmente individuate attraverso la documentazione elettronica o cartacea fornita con i prodotti SW.

36 SQL: caratteristiche SQL offre all utente comandi di: DDL (definizione della struttura del DB). DML (inserimento, variazione e cancellazione dei dati nel DB). DCL (gestione del controllo degli accessi e dei permessi per gli utenti). Query Language (interrogazioni al DB).

37 SQL: identificatori Identificatori: sono sequenze di caratteri che identificano tabelle e attributi. Lo standard prevede una lunghezza max di 18 caratteri. Devono inziare sempre con una lettera.

38 SQL: dati /1 Dati: nella dichiarazione di una tabella occorre specificare il tipo di dati scelto per gli attributi. Alcuni dei tipi standard sono: Charachter (n) (Stringa di lunghezza n) Date (MM/GG/AA) Time (HH:MM) Integer(p) (Numero intero con precisione p) Smallint (Numero intero con precisione 5)

39 SQL: dati /2 Integer (Numero intero con precisione 10) Float(p)(Numero reale con mantissa di precisione p) Real (Numero reale con mantissa di precisione 7) Double precision (Numero reale con mantissa di precisione 15) ecc.

40 SQL: dati/3 Alcune versioni di SQL in specifici ambienti DBMS differiscono dallo standard. Esempio: In Access per Windows si possono trovare i seguenti tipi di dati : BIT (sta per BOOLEAN) Counter (contatore: si autoincrementa ad ogni inserimento di riga nella tabella)

41 SQL: dati/4 Currency (valuta: utile per eseguire calcoli su valori monetari e su numeri a virgola fissa) Longtext (memo: testi di notevoli dimensioni fino a caratteri) Datatime(al posto di DATA e TIME) Single (al posto di REAL)

42 SQL: dati/5 Double (al posto di DOUBLE PRECISION e FLOAT) Long (al posto di INTEGER) Text (al posto di CHARACTER)

43 Definizione tabelle/1 Create table nome tabella (nome attributo1 tipo, nome attributo2 tipo, nome attributo3 tipo,... );

44 Definizione tabelle/2 Create table Personale (Matricola char(5), Cognome char(30), Nome char(20), CodFisc char(16) not null, Assunto date, Filiale smallint, Funzione char(15), Livello smallint, StipBase integer, Via char(25), Cap char(5), Citta char(20), Prov char(2), Dirigente char(5));

45 Definizione tabelle/3 La clausola NOT NULL accanto alla definizione di un attributo indica che in tutte le righe della tabella quella colonna deve essere riempita con un valore non nullo. ATTENZIONE: il valore null e diverso da zero per i dati numerici e dalla stringa vuota per i dati alfanumerici. Assumono valore null tutti gli attributi che hanno un valore non definito o non disponibile.

46 Definizione tabelle/4 Si puo utilizzare lo stesso nome di attributo in tabelle diverse. Per distinguere gli attributi con nome uguale si usa la notazione: Tabella.Attributo

47 Modifica struttura delle tabelle Per modificare la struttura di una tabella gia definita si usa il comando ALTER TABLE con le clausole ADD e DROP. Alter Table Personale add Nascita date; Aggiunge l attributo Nascita di tipo data alla tabella personale. Alter Table Personale drop StipBase ; Toglie l attributo StipBase dalla tabella personale.

48 Indici/1 Create index nome-indice on nome-tabella (Lista-attributi); Se si vuole che gli attributi associati all indice non possano essere duplicati in righe diverse della tabella si utilizza la clausola UNIQUE. Create unique index nome-indice on nome-tabella (Lista-attributi);

49 Indici/2 Create unique index Ipers on Personale (Cognome, Nome); Crea un indice di nome Ipers sulla tabella Personale secondo gli attributi Cognome e Nome. La clausola UNIQUE indica che nella tabella non possono esistere coppie di valori uguali per gli attributi Cognome e Nome.

50 Cancellazione Tabelle e Indici Drop table Personale; Elimina definitivamente la tabella Personale dal DB. Analogamente: Drop index Ipers on Personale; Elimina l indice Ipers dalla tabella Personale;

51 Manipolazione dei Dati Insert e un comando che permette di inserire nuovi dati in una tabella. Update permette di aggiornare dati gia esistenti Delete permette di cancellare dati da una tabella.

52 Manipolazione dei Dati Insert into Personale INSERT (Matricola, Cognome, Nome, CodFisc, Nascita, Assunto,Filiale, Funzione, Livello, StipBase, Via, Cap, Citta, Prov) values ( AB541, ROSSI, MARIO, RSSMRA65M20R341E, 08/20/1965, 08/15/1997, 3, IMPIEGATO, 5, , VIA ROMA 34, 00010, MENTANA, RM ); Inserisce una nuova riga nella tabella Personale.

53 Manipolazione dei Dati UPDATE Update Personale set Livello = 6 where Matricola = AA345 ; Cambia il livello del dipendente con matricola AA345 a 6. Update Personale set StipBase= StipBase * 1.05 where Livello > 5; Aumenta del 5% lo stipendio base di tutti i dipendenti al di sopra del quinto livello.

54 Manipolazione dei Dati Delete from Personale DELETE where Matricola = AA345 ; Cancella la riga relativa al dipendente con matricola AA345. Delete from Personale where StipBase< 760; Elimina dalla tabella Personale tutti i dati relativi ai dipendenti con uno stipendio base minore di 760.

55 Il comando Select/1 In SQL le operazioni di interrogazioni al DB vengono effettuate tramite il potente e versatile comando Select. Tramite questo comando l utente non ha bisogno di sapere dove sono collocati fisicamente i dati: deve specificare al sistema solo quali dati vuole ottenere. Il risultato di ogni interrogazione e una tabella contenente i dati richiesti dall utente.

56 Il comando Select/2 Select [all / distinct] lista colonne from nome tabella o vista [where condizione di ricerca] [group by nome colonna [nome colonna...]] [having condizione di ricerca] [order by nome colonna [asc / desc] [, nome colonna [asc / desc]]...];

57 Il comando Select/3 From Select * La clausola where definisce una tabella intermedia formata solo dalle righe che soddisfano la condizione imposta. L asterisco sostituisce la lista di tutti gli attributi della tabella specificata dopo la parola from.

58 Il comando Select/4 Select * from Personale where prov = MI ; Ottiene tutti i dati dei dipendenti che abitano in provincia di Milano. Equivale a: Select all * from Personale where prov = MI ;

59 Il comando Select/5 Select distinct Funzione from Personale; Ottiene tutte le professioni presenti tra i dipendenti della tabella Personale specificando una sola volta il tipo di funzione anche se e riferita a piu dipendenti.

60 Il comando Select/6 Select Funzione from Personale; Ottiene tutte le professioni presenti tra i dipendenti della tabella Personale, ripetendo la stessa funzione tante volte quanti sono i dipendenti che svolgono quella funzione.

61 Il comando Select/7 Select Cognome, Nome, StipBase as Attuale, StipBase*1.05 as Nuovo from Personale; Visualizza le colonne relative a StipBase con l intestazione Attuale e accanto una colonna con l intestazione Nuovo con i risultati del calcolo dell espressione specificata (cioe in questo caso lo stipendio base aumentato del 5% per ciascun dipendente) il risultato dell interrogazione e visualizzato nel seguente modo:

62 Il comando Select/8 Nome Cognome Attuale Nuovo Rossi Paolo Bianchi Fabrizio Neri Aldo Verdi Antonio

63 Operazioni relazionali: selezione La selezione (Select) applicata ad una tabella, genera una nuova tabella costituita da tutte le colonne della tabella originale e da un sottoinsieme di righe selezionate in base a delle condizioni prefissate. Le condizioni in SQL sono espresse tramite la clausola where. Select * from Personale where Funzione = Dirigente ; selezione

64 Operazioni relazionali: proiezione L operazione di proiezione applicata ad una tabella genera una tabella risultante contenente tutte le righe e solo un sottoinsieme delle colonne. Select Cognome, Nome from Personale; Proiezione

65 Create table Filiali (CodFil smallint, Descrizione char(20), Indirizzo char(25)); Operazioni relazionali: congiunzione/1 Tra la tabella Filiali e la tabella Personale viene stabilita un associazione uno a molti e l attributo Filiale nella tabella Personale diventa chiave esterna. Select * from Personale, Filiali where Filiale = CodFil;

66 Operazioni relazionali: congiunzione/2 Per maggiore chiarezza: Select * from Personale, Filiali where Filiale = CodFil; Personale Matricola Cognome Nome... Filiale... AB001 Rossi Paolo 03 AB003 Verdi Luigi 07 AC002 Carli Amedeo Filiali CodFil Descrizione Indirizzo 03 Sede di Potenza Via Piave 3 04 Sede di Roma Via Napoli 4 05 Sede di Verona Via Roma 5 07 Sede di Padova Via Loreto 6 08 Sede di Palermo Via Monti

67 Operazioni relazionali: congiunzione/3 L operazione di congiunzione genera la tabella contenente tutte le righe di Personale e quelle di Filiali combinate secondo i valori uguali dell attributo comune che e il codice della filiale cui appartiene il dipendente. Personale join Filiali Matricola Cognome Nome... Filiale AB001 Rossi Paolo 03 AB003 Verdi Luigi 07 AC002 Carli Amedeo Descrizione Indirizzo Sede di Potenza Via Piave 3 Sede di Padova Via Loreto 6 Sede di Palermo Via Monti

68 Operazioni relazionali: congiunzione/4 Select Tab1.Cognome,Tab1.Nome, Tab2.Cognome from Personale as Tab1, Personale as Tab2 where Tab1.Dirigente = Tab2.Matricola; Questo comando permette di realizzare una self join. L attributo Dirigente della tabella Personale contiene la matricola della persona che svolge il ruolo di dirigente rispetto a quel dipendente. Le informazioni sui dirigenti sono contenute nella stessa tabella Personale perche anche essi sono dipendenti.

69 Operazioni relazionali: congiunzione/5 Sono da notare l utilizzo degli alias (as) per indicare con due nomi diversi la stessa tabella. Personale Matricola Cognome Nome... Funzione... Dirigente AB101 Rossi Paolo... Impiegato AD501 AB348 Verdi Mario... Manager AD506 AD506 Lucci Luigi... Dirigente AD601 AD501 Ferreri Marco Dirigente AM807 AD601 Risi Anna Dirigente AM AM807 Bianco Laura Amm.Del. null

70 Operazioni relazionali: congiunzione/6 L interrogazione che realizza la self join produce una lista di questo tipo in cui sono elencati il nome e il cognome degli impiegati e il cognome del rispettivo dirigente: Cognome Nome Cognome (Dirigente) Rossi Paolo Ferreri Verdi Mario Lucci Lucci Luigi Risi Ferreri Marco Bianco Risi Anna Bianco Bianco Laura null

71 Operazioni relazionali: congiunzione/7 Select Personale.Cognome, Personale.Nome, Filiali.Descrizione, Filiali.Indirizzo from Personale, Filiali where Personale.Filiale = Filiali.CodFil and Personale.Funzione = Impiegato ; Il risultato e l elenco con il cognome, nome di tutti i dipendenti che hanno la funzione di impiegato inseam alla descrizione e l indirizzo della filiale dove lavorano.

72 Operazioni relazionali/1 Le Tabelle risultanti dalle operazioni relazionali NON vengono memorizzate in alcun modo ma solo visualizzate. Se si desidera memorizzare questi risultati in una tabella si utilizza la clausola into.

73 Operazioni relazionali/2 Select * into Manager from Personale where Funzione = Dirigente ; Crea una nuova tabella di nome Manager con gli stessi attributi, formati e nomi della tabella Personale contenente le informazioni solo dei dipendenti che hanno la funzione di Dirigente.

74 Funzioni statistiche Sono funzioni predefinite usate all interno del comando select. Agiscono su valori contenuti in insiemi di righe. Le funzioni che esamineremo sono: COUNT SUM AVG MIN, MAX

75 Funzioni statistiche: COUNT /1 Count: calcola il numero di righe presenti in una tabella.richiede come argomento * o il nome di un attributo: Select count (*) from Personale; Restituisce il numero di righe presenti nella tabella personale.

76 Funzioni statistiche: COUNT/2 Select count (Funzione) from Personale; Restituisce il numero di righe nelle quali e specificata l attributo Funzione della tabella Personale. In questo caso NON vengono conteggiate le righe in cui il campo Funzione e null.

77 Funzioni statistiche: COUNT /3 La clausola distinct permette di ottenere il numero di valori diversi dell attributo specificato. Select count(distinct Funzione) from Personale where Prov = MI ; Restituisce il numero di differenti professioni dei dipendenti che abitano in provincia di Milano.

78 Funzioni statistiche: SUM /1 La funzione SUM restituisce la somma di tutti i valori contenuti in una colonna di tipo numerico. Gli attributi che sono null vengono considerati zero. Select sum (StipBase) from Personale where Livello = 5; Restituisce la somma degli stipendi base di tutti i dipendenti di quinto livello.

79 Funzioni statistiche: SUM /2 L argomento della funzione SUM puo essere anche un espressione numerica. Select sum (StipBase * 1.05) as Totale from Personale where Livello = 5; Restituisce la somma degli stipendi base aumentati del 5% di tutti i dipendenti di quinto livello con l intestazione specificata dalla clausola as.

80 Funzioni statistiche: AVG La funzione AVG (dall inglese Average) calcola la media aritmetica dei valori contenuti in una colonna di tipo numerico. I valori di tipo null non sono inclusi nel calcolo. Select AVG (StipBase) from Personale where Livello = 5; Restituisce la media degli stipendi base di tutti i dipendenti di quinto livello

81 Funzioni statistiche: MIN e MAX /1 Le funzioni MIN e MAX restituiscono rispettivamente il valore minimo e il valore massimo tra i valori della colonna specificata come argomento. Select MIN (StipBase), MAX (StipBase ) from Personale; Calcola il valore minimo e il valore massimo degli stipendi di tutti i dipendenti.

82 Funzioni statistiche: MIN e MAX /2 I valori possono essere anche di tipo alfanumerico. Select MIN (Cognome), MAX (Cognome ) from Personale; Restituisce il primo e l ultimo cognome dei dipendenti in ordine alfabetico.

83 Operatore di ordinamento /1 La clausola order by all interno di un comando select (solitamente alla fine), consente di ottenere i risultati dell interrogazione in ordine crescente (i numeri dal minore al maggiore e le stringhe dalla A alla Z) oppure decrescente (i numeri dal maggiore al minore e le stringhe dalla Z alla A).

84 Operatore di ordinamento /2 L ordinamento crescente si ottiene specificando la parola chiave ASC. L ordinamento decrescente si ottiene specificando la parola chiave DESC. L ordinamento e crescente per default il che significa che bisogna specificare la clausola DESC se si vuole un ordinamento decrescente e niente se si vuole un ordinamento crescente.

85 Operatore di ordinamento /3 Select Cognome, Nome, Funzione, Livello from Personale order by Cognome, Nome; Produce l elenco alfabetico dei dipendenti con il cognome, nome, funzione e livello. A parita di cognome le righe sono ordinate per nome.

86 Operatore di ordinamento /4 Select Cognome, StipBase from Personale order by StipBase desc, Cognome; Produce l elenco dei dipendenti in ordine decrescente di stipendio. A parita di stipendio in ordine alfabetico di cognome.

87 Operatore di raggruppamento/1 La clausola group by consente di raggruppare un insieme di righe aventi lo stesso valore nelle colonne indicate. Con l uso delle funzioni di aggregazione si possono elaborare le informazioni contenute in ogni gruppo di righe producendo una riga di risultato per ciascuno.

88 Operatore di raggruppamento /2 In presenza di una group by tutti gli attributi che compaiono accanto alla parola Select devono essere inclusi nella clausola group by oppure devono essere argomento di una funzione di aggregazione. Select Funzione, sum (StipBase), count(*) from Personale group by Funzione;

89 Operatore di raggruppamento /3 Le righe aventi lo stesso valore nel campo Funzione sono concettualmente raggruppate. Per ciascuno dei gruppi cosi formati si calcola la somma degli stipendi base e il numero delle righe di quel gruppo. Il risultato e l elenco delle funzioni con la somma degli stipendi e il numero dei dipendenti che svolgono quella funzione.

90 Operatore di raggruppamento /4 Select Livello, count (Livello) as Conteggio from Personale where Funzione = Impiegato group by Livello; Questo comando produce in output la lista dei livelli esistenti tra i dipendenti che hanno funzione di impiegato con il numero di dipendenti per ciascun livello. La clausola as permette di visualizzare il risultato della funzione count con l intestazione Conteggio.

91 Operatore di raggruppamento /5 La clausola having viene usata a completamento del group by per sottoporre al controllo di una o piu condizioni i gruppi creati. E analoga al where con la differenza che con where vengono poste condizioni sulle righe della tabella, con la clausola having il controllo delle condizioni e fatto su gruppi di righe.

92 Operatore di raggruppamento /6 Select Funzione, AVG(StipBase) from Personale group by Funzione having count(*) > 2; Con questo comando si ottiene la lista delle diverse funzioni dei dipendenti insieme alla media degli stipendi per ciascuna funzione, purche i dipendenti con quella funzione siano piu di due.

93 Condizioni di ricerca /1 Le condizioni di ricerca utilizzate da having e where possono essere costruite con gli operatori di confronto: <, >, =, <>, <=, >= e con gli operatori logici and, or e not. L ordine di applicazione degli operatori e il seguente: il not viene applicato prima di and e and prima di or.

94 Condizioni di ricerca /2 Altri strumenti di ricerca sono parole del linguaggio SQL che indicano operatori o predicati: between in like is null

95 Condizioni di ricerca /3 Select Cognome, Nome, Funzione from Personale where Assunto between 01/01/85 and 12/31/95; Questo comando ottiene l elenco dei dipendenti con cognome, nome e funzione che sono stati assunti tra le date indicate.

96 Condizioni di ricerca /4 Select * from Personale where Prov in ( MI, MS, BS, BO ); Questo comando ottiene l elenco di tutti i dati dei dipendenti risiedono in una delle province indicate tra le parentesi..

97 Condizioni di ricerca /5 L operatore like confronta il valore di un attributo di tipo carattere con un modello di stringa che puo contenere caratteri jolly o metacaratteri. I caratteri jolly sono: _ (underscore) che indica un singolo carattere % (percento)per indicare una sequenza qualsiasi di caratteri.

98 Condizioni di ricerca /6 like xyz% : vengono ricercate tutte le stringhe che iniziano per xyz. like % xyz :vengono ricercate tutte le stringhe che finiscono per xyz. like % xyz% : vengono ricercate tutte le stringhe che contengono i caratteri xyz. like _ABC : controlla tutte le stringhe di 4 caratteri che finiscono con ABC.

99 Condizioni di ricerca /7 Select Cognome, Nome from Personale where Cognome like Ros% ; Questo comando ottiene la lista con il cognome e nome dei dipendenti il cui cognome che inizia con Ros (Rossi, Rossini, Rosi, ecc.)

100 Condizioni di ricerca /8 Select Cognome, Nome from Personale where Cap is not null; Questo comando ottiene la lista con cognome e nome di tutti i dipendenti per i quali e indicato il cap cioe e avvalorato e non nullo. Select Cognome, Nome from Personale where Prov is null; Questo comando ottiene la lista con cognome e nome di tutti i dipendenti per i quali non e indicata la provincia.

101 Data Control Language/1 Grant concede permessi specificando: tipo di accesso (per esempio lettura, scrittura o modifica dati) tabelle del DB sulle quali e consentito l accesso elenco degli utenti ai quali e permesso di accedere.

102 Data Control Language/2 Grant update on Personale to user1, user2; Questo comando concede il diritto di modifica sulla tabella dei dipendenti agli utenti user1,user2. Revoke annulla i permessi. Revoke update on Personale to user1, user2; Questo comando revoca il diritto di modifica sulla tabella dei dipendenti agli utenti user1,user2.

103 Data Control Language/3 I permessi che possono essere concessi o revocati agli utenti sono: ALTER per modificare la struttura delle tabelle DELETE per eliminare righe dalle tabelle INDEX per creare indici INSERT per inserire nuove righe nelle tabelle SELECT per leggere i dati delle tabelle UPDATE per aggiornare i dati nelle tabelle ALL per tutti i permessi precedenti

104 Data Control Language/4 Grant update (Livello, StipBase) on Personale to user3; Questo comando concede il diritto di modifica sulle colonne Livello e StipBase della tabella Personale all utente user3. Grant select (Livello, StipBase) on Personale to user3; Questo comando concede il diritto di lettura delle colonne Livello e StipBase della tabella Personale all utente user3.

105 Data Control Language/5 Create View Impiegati as select * from Personale where Funzione = Impiegato ; Crea una finestra (vista) su tutte le righe della tabella Personale relative ai dipendenti con funzione di impiegati. Drop view Impiegati; Cancella la vista Impiegati.

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

********************* 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

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

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

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

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

Lezione V. Aula Multimediale - sabato 29/03/2008

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)

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

Corso di Informatica Generale 1 IN1. Linguaggio SQL

Corso di Informatica Generale 1 IN1. Linguaggio SQL Università Roma Tre Facoltà di Scienze M.F.N. di Laurea in Matematica di Informatica Generale 1 Linguaggio SQL Marco (liverani@mat.uniroma3.it) Sommario Prima parte: le basi dati relazionali Basi di dati:

Dettagli

DATA BASE MANAGEMENT SYSTEM

DATA BASE MANAGEMENT SYSTEM DATA BASE (1) Problematica gestione dati: oggetti delle elaborazioni, difficili da gestire, memorizzare, reperire, modificare; talvolta ridondanti/incongruenti; non sufficientemente protetti; spesso comuni

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

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

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

---------------------------------------------------------------------------- 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

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

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

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

IL LINGUAGGIO SQL. Caratteristiche generali. Il comando Select. Le basi di dati ed il linguaggio SQL A.Lorenzi D.Rossi - ATLAS. Pag.

IL LINGUAGGIO SQL. Caratteristiche generali. Il comando Select. Le basi di dati ed il linguaggio SQL A.Lorenzi D.Rossi - ATLAS. Pag. Caratteristiche generali IL LINGUAGGIO SQL Il linguaggio SQL (Structured Query Language) è un linguaggio non procedurale che è diventato uno standard tra i linguaggi per la gestione di database relazionali.

Dettagli

Modello relazionale. ing. Alfredo Cozzi 1

Modello relazionale. ing. Alfredo Cozzi 1 Modello relazionale E fondato sul concetto matematico di relazione tra insiemi di oggetti Una relazione su n insiemi A1, A2,..,An è un sottoinsieme di tutte le n-uple a1,a2,,an che si possono costruire

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

Appunti di. Basi di Dati SQL HTML PHP

Appunti di. Basi di Dati SQL HTML PHP Appunti di Basi di Dati SQL HTML PHP 1 Le basi di dati Una base di dati ( database ) è un insieme di archivi di dati correlati tra loro e facilmente utilizzabili da un calcolatore Le fasi di progettazione

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

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

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

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

Dettagli

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone SQL: il DDL Parti del linguaggio SQL Definizione di basi di dati (Data Definition Language DDL) Linguaggio per modificare

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

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

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

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

S.Q.L. Introduzione a Structured Query Language. I.T.C. "V.Emanuele II" - Perugia. Prof.Claudio Maccherani 1995-2005 INDICE

S.Q.L. Introduzione a Structured Query Language. I.T.C. V.Emanuele II - Perugia. Prof.Claudio Maccherani 1995-2005 INDICE S.Q.L. Introduzione a Structured Query Language I.T.C. "V.Emanuele II" - Perugia Prof.Claudio Maccherani 1995-2005 INDICE S.Q.L. - STRUCTURED QUERY LANGUAGE (SEQUEL)...1 ISTRUZIONI DI TIPO DDL (DATA DEFINITION

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

Introduzione al linguaggio SQL

Introduzione al linguaggio SQL Introduzione al linguaggio SQL Structured Query Language (Linguaggio Strutturato di Interrogazione di Database) prof. Cleto Azzani IPSIA MORETTO BRESCIA (2004) Che cos è un Data Base (Base di dati) Insieme

Dettagli

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

Domini Numerici Esatti (1) I domini numerici esatti permettono di definire attributi che contenegono valori esatti interi o con parte frazionaria. Linguaggio SQL (1) Il linguaggio SQL, acronimo di Structured Query Language è un linguaggio per la definizione e la manipolazione dei dati, sviluppato originariamente presso il laboratorio IBM a San Jose

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

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

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

Il Domino Character Il domino CHARACTER permette di definire attributi che contengono un singolo carattere o stringhe di caratteri di lunghezza

Il Domino Character Il domino CHARACTER permette di definire attributi che contengono un singolo carattere o stringhe di caratteri di lunghezza Linguaggio SQL (1) Il linguaggio SQL, acronimo di Structured Query Language è un linguaggio per la definizione e la manipolazione dei dati, sviluppato originariamente presso il laboratorio IBM a San Jose

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

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

Gestione delle tabelle

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

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

Il linguaggio SQL: DDL di base

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,

Dettagli

SQL Manuale introduttivo

SQL Manuale introduttivo SQL Manuale introduttivo SOMMARIO INTRODUZIONE... 3 TIPI DI DATI... 3 STRINGHE DI CARATTERI... 3 NUMERI... 3 DATA/ORA... 4 COSTANTI STRINGA... 4 COSTANTI NUMERICHE... 4 COSTANTI DATA/ORA... 5 NOTE SULLA

Dettagli

Istituto Angioy Informatica BASI DI DATI. Prof. Ciaschetti

Istituto Angioy Informatica BASI DI DATI. Prof. Ciaschetti Istituto Angioy Informatica BASI DI DATI Prof. Ciaschetti Introduzione e prime definizioni Una Base di dati o Database è un archivio elettronico opportunamente organizzato per reperire in modo efficiente

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

Corso sul linguaggio SQL

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

Dettagli

TEORIA sulle BASI DI DATI

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

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

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

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

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è

Dettagli

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle

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

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

nuove voci tutti i giorni, e non si cancellano o aggiornano voci tutti i giorni), non si avverte l esigenza di avvalersi di un sistema informatico.

nuove voci tutti i giorni, e non si cancellano o aggiornano voci tutti i giorni), non si avverte l esigenza di avvalersi di un sistema informatico. LE BASI DI DATI Generalità Un sistema informatico serve ad elaborare informazioni. Esso è giustificato, anzi è necessario, quando le informazioni da memorizzare sono tante e le elaborazioni da eseguirvi

Dettagli

SQL IL LINGUAGGIO DI INTERROGAZIONE

SQL IL LINGUAGGIO DI INTERROGAZIONE SQL IL LINGUAGGIO DI INTERROGAZIONE SQL! Originato da SEQUEL-XRM e System-R (1974-1977) dell IBM! Significato originario Structured Query Language! Standard de facto! Attuale standard ANSI/ISO è SQL:1999

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

L Informatica per i miei studenti Volume 3

L Informatica per i miei studenti Volume 3 Classe V Bozza a.s. 2008-2009 2 di 157 A mia madre Gerardina, a mio padre Raffaele Perché, per prima, si pensa a chi non c è più A mia moglie Antonietta Il mio presente A mio figlio Raffaele, a mia figlia

Dettagli

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

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

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

Corso di Informatica (Basi di Dati)

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,

Dettagli

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

DDL DML. Tipi di linguaggi per basi di dati. Si distinguono due categorie: Tipi di linguaggi per basi di dati Si distinguono due categorie: DDL DML Linguaggi di definizione dei dati o data definition languages: utilizzati per definire gli schemi logici, esterni e fisici e le

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

SQL. Definizione dei da6 in SQL. SQL: "storia" CREATE TABLE: esempio. CREATE TABLE: esempio

SQL. Definizione dei da6 in SQL. SQL: storia CREATE TABLE: esempio. CREATE TABLE: esempio SQL Atzeni, Ceri, Paraboschi, Torlone Basi di da6 Originariamente Structured Query Language, ora "nome proprio" Linguaggio con varie funzionalità: DDL Data Defini6on Language (insieme di comandi per la

Dettagli

Archivi e Basi di Dati

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

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

16. IL LINGUAGGIO SQL

16. IL LINGUAGGIO SQL 16. IL LINGUAGGIO SQL Il linguaggio SQL (Structured Query Language) è un linguaggio non procedurale (in quanto non richiede la descrizione dei passi elementari di elaborazione) o di tipo dichiarativo (in

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 1 SQL SQL (Structured Query Language) è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali. Sono stati proposti

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

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

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

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno : (1) Interrogazioni semplici INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione

Dettagli

Informatica per le discipline umanistiche 2 lezione 10

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

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

Sistema di Gestione di Basi di Dati DataBase Management System DBMS

Sistema di Gestione di Basi di Dati DataBase Management System DBMS Base di dati (accezione generica) collezione di dati, utilizzati per rappresentare le informazioni di interesse per una o più applicazioni di una organizzazione (accezione specifica) collezione di dati

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

Corso di Informatica (Basi di Dati)

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.

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

Basi di Dati. Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio. Corso di Laurea in Informatica. a.a. 2010-2011

Basi di Dati. Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio. Corso di Laurea in Informatica. a.a. 2010-2011 Corso di Laurea in Informatica Basi di Dati a.a. 2010-2011 Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio PROGETTAZIONE FISICA SQL-DDL OBIETTIVO: Rappresentare i dati della realtà di interesse

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

Informatica (Basi di Dati)

Informatica (Basi di Dati) Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Introduzione alle Basi di Dati Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati

Dettagli

Modelli relazionali. Esistono diversi modi di modellare un database. Il modello piu' usato al momento e' il modello relazionale

Modelli relazionali. Esistono diversi modi di modellare un database. Il modello piu' usato al momento e' il modello relazionale Cenni sui DATABASE Cos'e' un database Un database puo' essere definito come una collezione strutturata di record (dati) I dati sono memorizzati su un computer in modo opportuno e possono essere recuperati

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

Basi di Dati e Sistemi Informativi. SQL come linguaggio di manipolazione dei dati

Basi di Dati e Sistemi Informativi. SQL come linguaggio di manipolazione dei dati Basi di Dati e Sistemi Informativi Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale SQL come standard Varie versioni con successivi miglioramenti: SQL-1 o SQL-89 (rispetto ad SQL-86 introduce

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

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

Database. Organizzazione di archivi mediante basi di dati. ing. Alfredo Cozzi 1

Database. Organizzazione di archivi mediante basi di dati. ing. Alfredo Cozzi 1 Database Organizzazione di archivi mediante basi di dati ing. Alfredo Cozzi 1 Il database è una collezione di dati logicamente correlati e condivisi, che ha lo scopo di soddisfare i fabbisogni informativi

Dettagli

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

SQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma SQL: Structured Query Language 1 SQL:Componenti Principali Data Manipulation Language (DML): interrogazioni, inserimenti, cancellazioni, modifiche Data Definition Language (DDL): creazione, cancellazione

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

Impararlo è molto semplice, esistono manuali, o meglio mattoni, su SQL, ma qui verranno illustrati tutti i comandi più utilizzati... e utili.

Impararlo è molto semplice, esistono manuali, o meglio mattoni, su SQL, ma qui verranno illustrati tutti i comandi più utilizzati... e utili. Sql è un linguaggio standard che permette di operare con i database. Per database intendo uno qualsiasi e non il solito Access, ma anche Oracle, Microsoft SQL Server, Informix, DB2, Sybase... Sql sta per

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

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

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Corso di Laurea Interfacoltà in Biotecnologie Lezione 3: Basi di Dati Lucido 1 Scopo della lezione Definire cos è una base di dati e un sistema di gestione della base di dati

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

LABORATORIO. 2 Lezioni su Basi di Dati Contatti:

LABORATORIO. 2 Lezioni su Basi di Dati Contatti: PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE Gennaro Cordasco e Rosario De Chiara {cordasco,dechiara}@dia.unisa.it Dipartimento di Informatica ed Applicazioni R.M. Capocelli Laboratorio

Dettagli

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

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

Dettagli

Basi di dati e Sistemi informativi aziendali

Basi di dati e Sistemi informativi aziendali Sistemi informativi Linguaggio SQL: fondamenti Istruzione SELECT: fondamenti Interrogazioni nidificate Operatori insiemistici Istruzioni di aggiornamento Gestione delle tabelle 2 2007 Politecnico di Torino

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 RELAZIONALI

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.

Dettagli

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei Introduzione Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei. ESEMPI DI INSIEMI DI DATI DA ORGANIZZARE ED USARE IN MANIERA EFFICIENTE Introduzione Più utenti con

Dettagli

2104 volume III Programmazione

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

Dettagli

Al giorno d oggi, i sistemi per la gestione di database

Al giorno d oggi, i sistemi per la gestione di database Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,

Dettagli