Introduzione
In questa breve dispensa vengono riportati alcuni esempi di database utilizzando il DBMS open-source PostgreSQL che è possibile installare sia su Windows, Linux, e Mac OS X.
Per scaricare la versione utilizzata negli esempi (ver 12) basta andare sul sito
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
Installazione
Una volta scaricato il programma, basta fare doppio click sul file scaricato e avviare l’installazione, e seguire la guida nel seguente sito
http://databasemaster.it/installare-postgresql-su-windows/
In qualsiasi momento possiamo iniziare a lavorare con PostgreSQL utilizzando la utility psql per la linea di comando, oppure attraverso la GUI pgAdmin. In questa guida, ci occuperemo soltanto della linea di comando.
Appena avviato psql viene mostrato il messaggio:
postgres=#
Per uscire basta digitare
postgres=# \q
Creare una base di dati
Riapriamo la linea di comando e premiamo invio fino all’ottenimento del messaggio:
postgres=#
Naturalmente inserire la password quando richiesta, la password è quella che stata inserita durante l’istallazione di postgress.
Ora creiamo la base di dati con nome esempiodb
postgres=# create database esempiodb;
Per controllare le basi di dati presenti:
postgres=# \l
Per cominciare ad usare la base di dati appena creata digitare:
postgres=# \c esempiodb;
Dopodiché inserire la password, e avremo il seguente messaggio:
You are now connected to database "esempiodb" as user "postgres".
postgres=#
Per eliminare una base di dati è necessario eseguire il comando:
postgres=# drop database nome-database;
se l’eliminazione è andata a buon fine, apparirà il seguente messaggio:
DROP DATABASE
Gestione delle tabelle
All’interno del di postgresql si possono eseguire qualsiasi comando SQL.
Per creare una tabella usiamo il comando:
postgres=# create table nome-tabella (
lista di attributi e tipi ad essi associati
);
Nello scrivere un comando si può andare a capo. Se il comando occupa più linee, ad ogni invio viene dato un nuovo prompt fio a che non si digita il punto e virgola. Per esempio creiamo una tabella di nome Numeri, rappresentante un elenco telefonico, all’interno della base di dati esempiodb con il seguente comando:
postgres=# create table Numeri(
postgres=# id integer,
postgres=# nome varchar(255) NOT NULL,
postgres=# cognome varchar(255) NOT NULL,
postgres=# citta varchar(255),
postgres=# numerotelefono varchar(255),
postgres=# CONSTRAINT pk PRIMARY KEY (numerotelefono)
postgres=# );
A questo punto dovrebbe comparire il seguente messaggio:
CREATE TABLE
N.B.: Il punto e virgola serve ad indicare all’interprete dei comandi che il comando corrente è terminato.
Possiamo controllare tutte le tabelle all’interno di una base di dati tramite il comando:
postgres=# \dt
Inoltre, per ciascuna tabella possiamo ottenere i suoi attributi (sia nome che tipo) attraverso il comando:
postgres=# \d nome-tabella
Per eliminare una tabella :
postgres=# drop table nome-tabella;
Inserire i dati nella tabella
La maniera più semplice è inserire direttamente i valori:
postgres=# insert into nome-tabella
values(<lista ordinata dei valori da inserire negli attributi>);
Per esempio, scrivere:
postgres=# insert into numeri values (1, 'Maria', 'Rossi', 'Roma','0965203040');
A questo punto dovrebbe comparire il seguente messaggio:
INSERT 0 1
Si ricorda che SQL è case-insensitive, vale a dire che non distingue tra maiuscolo e minuscolo, tranne ovviamente nelle stringhe.
Infine, per cancellare ed aggiornare tuple si utilizzano i comandi standard UPDATE e DELETE.
Interrogare una base di dati
Interroghiamo la tabella numeri, facendoci restituire ad esempio il numero di una certa persona:
postgres=# select numerotelefono from numeri where nome = 'Maria'
and cognome= 'Rossi';
A questo punto dovrebbe comparire una tabella che rappresenta il risultato della query, seguito da un’indicazione riguardo il numero di tuple restituite.
Consigli utili
Conviene scrivere tutto il codice sql su un file blocco note e salvarlo con estensione .sql e poi fare copia ed incolla sul prompt dei comandi. Per ulteriori informazioni vedere file allegato.