Files

95 lines
1.7 KiB
Markdown

# Reference: PostgreSQL Commands per Lab 05
## Comandi Utili
### Connessione
```bash
# Connessione base
docker exec lab05-db psql -U lab05_user -d lab05_db
# Connessione da client nella rete privata
docker run --rm -it --network lab05-vpc-private \
-e PGPASSWORD=lab05_password \
postgres:16-alpine \
psql -h db -U lab05_user -d lab05_db
# Esegui comando singolo
docker exec lab05-db psql -U lab05_user -d lab05_db -c "SELECT version();"
```
### Operazioni Database
```sql
-- Crea database
CREATE DATABASE test_db;
-- Lista database
\l
-- Cambia database
\c test_db
-- Droppia database
DROP DATABASE test_db;
```
### Operazioni Tabelle
```sql
-- Crea tabella
CREATE TABLE test_table (
id SERIAL PRIMARY KEY,
name TEXT,
value INTEGER
);
-- Lista tabelle
\dt
-- Descrivi tabella
\d test_table
-- Droppia tabella
DROP TABLE test_table;
```
### DML
```sql
-- Insert
INSERT INTO test_table (name, value) VALUES ('test', 42);
-- Select
SELECT * FROM test_table;
-- Update
UPDATE test_table SET value = 100 WHERE name = 'test';
-- Delete
DELETE FROM test_table WHERE name = 'test';
```
### Utility
```bash
# Verifica PostgreSQL pronto
docker exec lab05-db pg_isready -U lab05_user
# Backup database
docker exec lab05-db pg_dump -U lab05_user lab05_db > backup.sql
# Ripristina database
cat backup.sql | docker exec -i lab05-db psql -U lab05_user lab05_db
```
## Variabili Ambiente PostgreSQL
| Variabile | Descrizione | Default |
|-----------|-------------|---------|
| POSTGRES_DB | Nome database | postgres |
| POSTGRES_USER | Utente creato | - |
| POSTGRES_PASSWORD | Password utente | - |
| POSTGRES_INITDB_ARGS | Argomenti initdb | - |
| PGDATA | Data directory | /var/lib/postgresql/data |