ssh n.cognome@singularity.9dreams.it
psql
\q
exit
\conninfo
\dt
CREATE SCHEMA esercizi;
\dn o per maggiori informazioni: \dn+
DROP SCHEMA esercizi;
DROP SCHEMA esercizi CASCADE;
SET search_path TO esercizi;
\dt
SET search_path TO esercizi;
CREATE TABLE users ( id serial UNIQUE NOT NULL, username char(25), enabled boolean DEFAULT TRUE );
- users è il nome della tabella
- id, username e enabled sono le tre colonne
- serial, char(25) e boolean i tipi di dati
- UNIQUE e NOT NULL dei vincoli
- DEFAULT TRUE il valore di default per la colonna
DROP TABLE users;
\dt o per maggiori informazioni: \dt+
\d users o per maggiori informazioni \d+ users
ALTER TABLE users RENAME TO utenti;
ALTER TABLE utenti RENAME COLUMN username TO full_name;
ALTER TABLE utenti ALTER COLUMN full_name TYPE varchar(25);
ALTER TABLE users ADD COLUMN cognome varchar(30);
ALTER TABLE users DROP COLUMN cognome;
INSERT INTO utenti (username, enabled) VALUES ('Andrea Ros', true); INSERT INTO utenti (username, enabled) VALUES ('Andrea Ros', true), ('Paolo Rompi', false), ('Gaetana Figliuola', true);
INSERT INTO utenti (username) VALUES ('Marcella Proietti'), ('Alessandro Canucci');
Simbolo dell'apostrofo
Se la stringa che devi inserire contiene un apostrofo, inseriscilo doppio in modo che non venga interpretato come la chiusura della stringa... ad esempio:
VALUES ('Marco Dall''Acqua')
SELECT * FROM utenti;
SELECT username FROM utenti;
SELECT * FROM utenti WHERE id > 3;
Operatori di confronto
È possibile usare gli operatori consueti (> < >= <= =) oltre a quello di disuguaglianza (<> oppure !=)
SELECT * FROM utenti WHERE id > 3 AND enabled = true;
SELECT * FROM utenti WHERE username LIKE 'A%';
SELECT * FROM utenti WHERE username LIKE '%A%';
SELECT * FROM utenti WHERE id > 2 ORDER BY username;
SELECT * FROM utenti WHERE id > 2 ORDER BY username desc;
SELECT * FROM utenti ORDER BY username LIMIT 3;
SELECT * FROM utenti ORDER by username LIMIT 3 OFFSET 2;
UPDATE utenti SET enabled = false WHERE username = 'Andrea Ros';
UPDATE utenti SET enabled = false;
DELETE FROM utenti WHERE id = 3;
DELETE FROM utenti;
CREATE TABLE indirizzi ( id serial UNIQUE NOT NULL, destinatario varchar(50), via varchar(25) );
ALTER TABLE indirizzi ADD PRIMARY KEY(id);
CREATE TABLE città ( id serial UNIQUE NOT NULL, nome char(25), cap char(5), provincia char(2) );
INSERT INTO città (nome,cap,provincia) VALUES ('San Donà di Piave', '30027', 'VE'), ('Roncade', '31056', 'TV'), ('Silea', '31057', 'TV');
ALTER TABLE indirizzi ADD COLUMN città_id integer NOT NULL, ADD FOREIGN KEY(città_id) REFERENCES città(id) ON DELETE CASCADE;
INSERT INTO indirizzi (destinatario,via,città_id) VALUES ('Andrea Ros','XIII Martiri, 86',1), ('Paola Pazzaglia','Canestrelli, 12',3), ('Esmeralda Cacioli','Archibugi, 47',3), ('Maurizia Palude','Carmelitani, 12b', 1);
SELECT * FROM indirizzi JOIN città ON indirizzi.città_id = città.id;
SELECT indirizzi.destinatario, città.nome, città.cap, città.provincia FROM indirizzi JOIN città ON indirizzi.città_id = città.id;
SELECT destinatario, città.nome, cap, provincia FROM indirizzi JOIN città ON indirizzi.città_id = città.id;
SELECT destinatario, c.nome, cap, provincia FROM indirizzi AS i JOIN città AS c ON i.città_id = c.id;
SELECT destinatario, città.nome AS città, cap, provincia FROM indirizzi JOIN città ON indirizzi.città_id = città.id;
Nota: la città di Roncade non compare nella tabella, perché nessun indirizzo fa riferimento ad essa.
pg_dump > export.sql
psql -f export.sql