Domini per i campi
character(lunghezza)
numeric(precisione, scala)
decimal(precisione, scala)
integer
smallint
float
real
double precision
date
time (precision) with time zone
timestamp (precision) with time zone
inerval inizio to fine
boolean
bigint
blob/clob
Schemi
CREATE SCHEMA NOME AUTHORIZATION AUT {TIPI}
Definizione nuovi domini
CREATE DOMAIN NOME AS TIPO VALDEF VINCOLO
Vincoli
NOT NULL, non si può attribuire il valore NULL a quella colonna
UNIQUE, il valore è una chiave (nella stessa colonna non si possono avere due righe con lo stesso valore)
PRIMARY KEY, una colonna NOT NULL e UNIQUE
FOREIGN KEY, chiave esterna (riferimenti)
CASCADE, la modifica riguarda tutte le tabelle internet
SET NULL, al referente viene associato valore NULL
SET DEFAULT, al referente viene associato il valore DEFAULT
NO ACTION, modifica non consentita
Modifica degli schemi
ALTER DOMAIN/TABLE NOME ... , modifica il dominio/la tabella
DROP SCHEMA/DOMAIN/TABLE/ASSERTION/VIEW NOME ... , come ALTER ma lavora con altri elementi. Nel caso sia usato con RESTRICT, non viene eseguita con elementi vuoti (al valore DEFAULT), altrimenti usa il metodo CASCADE.
Interrogazioni
SELECT ATTR, seleziono gli attributi ATTR (separati da virgole)
FROM TAB, nella tabella TAB
WHERE COND, e che sono soddisfano condizione
Se si usa * significa tutti gli attributi
Operatori da usare nella clausola WHERE sono =, <>, <, >, <=, >=, AND, OR, NOT, LIKE (per stringhe), _ (qualunque carattere), % (un numero qualunque di caratteri)
ATTR IS (NOT) NULL, seleziono tutti i campi (non) NULL
DISTINCT, elimina i duplicati
FROM TAB1 T1, JOIN TAB2 T2
ON T1.ATTR ...
T1, T2 sono alias. I join possono essere anche impostati come LEFT, RIGHT, FULL.
Ordinamento
ORDER BY ATTR (ASC | DESC), ordina i risultati in ordine crescente | decrescente
Operatori aggregati
Vengono gestiti come estensione delle normali interrogazioni
COUNT (* | DISTINCT | ALL ATTR) conta il numero di righe selezionate | senza duplicati | senza i NULL
SUM | MAX | AVG (DISTINCT | ALL ATTR) somma | trova il massimo | calcola la media degli attributi senza i duplicati | senza i NULL
Gruppi
GROUP BY TAB, divide le tabelle in sottoinsiemi
HAVING, descrive le condizioni per definire i gruppi
SelectSQL
SELECTSQL UNION | INTERSECT | EXCEPT (ALL), di default eliminano i duplicati e calcolano unione | intersezione | differenza insiemistica
Interrogazioni nidificate
ANY INTERR, le righe che soddisfano una condizione. Gli operatori sono IN (uguaglianza) e NOT (disuguaglianza)
Ogni variabile è usabile sono nella query e nelle sottoquery, non superiormente.
EXISTS, restituisce vero o falso a seconda se esiste almeno un risultato non vuoto che verifica la query
Manipolazione dati
DELETE FROM TAB WHERE COND, elimina dalla tabella TAB gli elementi che soddisfano la condizione COND
UPDATE TAB SET ATTR = ... WHERE COND, aggiorna gli elementi di TAB che soddisfano COND
| < Prec. | Succ. > |
|---|






