Database
Lezione 1
Sommario
- Introduzione
- Tabelle e chiave primaria
- Query
- Calcoli ed alias
- Ordinamento
Database
Lezione 1
Introduzione
- Un database è un archivio strutturato di dati che
può essere manipolato con dei comandi nel
linguaggio SQL, Structured Query Language
- I programmi per la gestione dei database si
chiamato RDMS, Relational Database Manager
Systems
Database
Lezione 1
Introduzione
- Base di Open Office o LibreOffice
- Access di Microsoft Office
- Diversi formati di file (odb, mdb, mdbx)
- Per praticità ci riferiremo solitamente a Base
Database
Lezione 1
Tabelle e chiave primaria
- Un database è costituito di una o più tabelle,
ciascuna composta di uno o più campi, ognuno
con un certo nome ed un tipo prefissato
- Un elemento contenuto in una tabella (una riga)
si chiama record
Database
Lezione 1
Tabelle e chiave primaria
- Per poter accedere ai singoli record di una
tabella è necessario impostare per quella tabella
quali campi costituiscono la chiave primaria
- Un valore di chiave primaria identifica al più un
elemento di una tabella, non ci possono essere
due o più elementi con la stessa chiave primaria
Database
Lezione 1
Tabelle e chiave primaria
- Ad esempio, possiamo immaginare di avere un
database con una tabella “studenti”, composta di
tre campi di tipo testo: “matricola”, “nome”,
“cognome”: la matricola identifica un unico
studente e quindi può funzionare da chiave
primaria
Database
Lezione 1
Tabelle e chiave primaria
- Le virgolette doppie “ e ” si usano per delimitare
nomi di campi o tabelle
- Sono utili ad esempio nel caso in cui un nome
contenga uno spazio, come “Nome persona”,
altrimenti possono essere omesse
Database
Lezione 1
Tabelle e chiave primaria
- Non vanno confuse invece con gli apici o
virgolette singole ' e ', che delimitano dei valori
- Ad esempio il campo “nome” della tabella
“studenti” potrebbe essere uguale a 'Gianni'
- A differenza delle doppie virgolette vanno messe
sempre!
Database
Lezione 1
Tabelle e chiave primaria
Q1. Pensando ai fogli di calcolo, la chiave
primaria svolge il ruolo di che cosa?
a) Formule
b)
Indirizzi
c)
Funzioni
Database
Lezione 1
Query
- Le tabelle vengono manipolate (create, lette,
modificate, cancellate) tramite dei comandi
chiamati query
- Ci concentreremo sul comando SELECT per la
lettura delle tabelle
Database
Lezione 1
Query
- SQL non è un linguaggio case sensitive, ma
preferiremo indicare i comandi in maiuscolo
- Nel caso del comando SELECT, la sintassi da
utilizzare è SELECT campo1, campo2, … FROM
nometabella
Database
Lezione 1
Query
- Quella che abbiamo appena visto è una
proiezione, cioè prendiamo alcuni dei campi di
una tabella
- Possiamo prenderli tutti con la seguente sintassi
SELECT * FROM nometabella
Database
Lezione 1
Query
- Possiamo anche imporre delle condizioni ai
record che ci interessano tramite la clausola
WHERE, in questo caso parliamo di selezione
- Ad esempio SELECT * from studenti WHERE
“nome”='Gianni'
Database
Lezione 1
Calcoli ed alias
- Il comando SELECT può anche fare dei calcoli a
partire dai dati contenuti nel database.
- Supponendo di avere una tabella temperature
con campi “luogo” e “tempC” (temperatura in gradi
Celsius) possiamo calcolare le temperature Kelvin
equivalenti con
SELECT luogo, tempC+273 FROM temperature
Database
Lezione 1
Calcoli ed alias
ES1. Scrivere una query per convertire le
temperature da Celsius a Fahrenheit.
Database
Lezione 1
Calcoli ed alias
- Quando si usa SELECT per dei calcoli si può
assegnare un nome (alias) al campo
corrispondente tramite l'operatore AS.
- Riprendendo l'esempio precedente:
SELECT luogo, tempC+273 AS tempK FROM
temperature
Database
Lezione 1
Calcoli ed alias
- Si può anche usare AS per avere un nome più
semplice da utlizzare (specie se compare più
volte nella query).
- Qui vediamo una SELECT dentro un'altra
SELECT luogo, T+273 FROM
(SELECT luogo, tempC as T FROM temperature)
Database
Lezione 1
Ordinamento
- Possiamo ordinare i nostri dati rispetto a uno o
più campi, in maniera crescente (predefinito) o
decrescente usando l'operatore ORDER BY
campo1 ASC|DESC, campo2 ASC|DESC, …
- Es.: SELECT * FROM temperature ORDER BY
tempC, oppure SELECT * FROM temperature
ORDER BY luogo ASC, tempC DESC