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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 come linguaggio di interrogazione. Basi di dati. Interrogazioni SQL. Interpretazione algebrica delle query SQL

SQL come linguaggio di interrogazione. Basi di dati. Interrogazioni SQL. Interpretazione algebrica delle query SQL SQL come linguaggio di interrogazione Basi di dati Linguaggi di Interrogazione: SQL Prof.Angela Bonifati Le interrogazioni SQL sono dichiarative l utente specifica quale informazione è di suo interesse,

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

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

Laboratorio di Basi di Dati Introduzione a SQL

Laboratorio di Basi di Dati Introduzione a SQL Laboratorio di Basi di Dati Introduzione a SQL Pierluigi Pierini Technolabs S.p.a. Pierluigi.Pierini@technolabs.it evoluzione e standards 1970 - E.F. Codd, A Relational Model of Data for Large Shared Data

Dettagli

Database e SQL. A cura del prof. Gennaro Cavazza

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

Dettagli

Laboratorio di Basi di Dati e Web

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

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

Introduzione ai Database e a Microsoft Access

Introduzione ai Database e a Microsoft Access Introduzione ai Database e a Microsoft Access 1 Il Sistema Informativo aziendale Un Sistema Informativo aziendale è costituito: dall'insieme delle informazioni utilizzate, prodotte e trasformate da un'azienda

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

Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Dati. Facoltà di Lingue e Letterature Straniere

Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Dati. Facoltà di Lingue e Letterature Straniere Abilità Informatiche A.A. 2010/2011 Lezione 8: Basi di Dati Facoltà di Lingue e Letterature Straniere Base di dati (accezione generica, metodologica) Insieme organizzato di dati utilizzati per il supporto

Dettagli

Data management a.a. 2009-2010. Il linguaggio SQL

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,

Dettagli

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

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

Dettagli

SQL. Storia e standard

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

Dettagli

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati Azioni Select e join non consentono di modificare il contenuto del DB Azioni desiderate Inserzione di nuovi dati Aggiornamento di dati Cancellazione di dati Aggiunta di un record insert into utenti(nome,tel,codice_u)

Dettagli

Cultura Tecnologica di Progetto

Cultura Tecnologica di Progetto Cultura Tecnologica di Progetto Politecnico di Milano Facoltà di Disegno Industriale - DATABASE - A.A. 2003-2004 2004 DataBase DB e DataBase Management System DBMS - I database sono archivi che costituiscono

Dettagli

Introduzione alle Basi di Dati

Introduzione alle Basi di Dati 1 Introduzione alle Basi di Dati Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Sistema Azienda 2 Sistema organizzativo è costituito da una serie di risorse e di regole necessarie

Dettagli

Domini elementari in SQL

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

Dettagli

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

Organizzazione degli archivi

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

Dettagli

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

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

Dettagli

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

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

Dettagli

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

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