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