Formulario di Basi di Dati
Algebra relazionale
SEL
Parola chiave
PROJ
REN
JOIN naturale
Equi-JOIN
Descrizione
Restringe il numero di
righe da considerare
per una tabella
Restringe il numero di
colonne da considerare
per una tabella
Ridenomina una
colonna
Unisce due tabelle
Unisce due tabelle
basandosi su una
condizione
Sintassi
SELColonna >|<|= (')pattern(')(Tabella)
SELColonna = Colonna2(Tabella)
PROJColonna(Tabella)
RENNuovoNome<-VecchioNome(Tabella)
Tabella1 JOIN Tabella2
Tabella1 JOINColonna = patternTabella2
Le condizioni possono essere multiple: nel qual caso, si abbia cura di concatenarle con operatori
booleani (AND, OR, NOT, AND NOT, OR NOT e simili).
SQL
Tipi di dati
Tipo
bit
bit varying(n) / varbit(n)
boolean
character varying(n) /
varchar(n)
date
double precision
integer
interval(p)
numeric(p, s) / decimal(p, s)
real
smallint
time [(p)]
time [(p)] with time zone
timestamp[(p)]
timestamp[(p)] with time zone
Descrizione
stringa di bit a lunghezza fissa
stringa di bit a lunghezza variabile
booleano logico (vero/falso)
stringa di caratteri a lunghezza variabile
data (anno, mese, giorno)
numero in virgola mobile a doppia precisione
intero a 4 byte con segno
intervallo di tempo
valore numerico esatto a precisione arbitraria
numero in virgola mobile a singola precisione
intero a 2 byte con segno
ora del giorno
ora del giorno, con fuso orario
data ed ora del giorno
data ed ora del giorno, con fuso orario
Parole chiave
Parola chiave
AND / OR
ALTER TABLE
(aggiungi colonna)
ALTER TABLE
(elimina colonna)
AS (alias per una colonna)
AS (alias for table)
BETWEEN
Sintassi
SELECT nome_colonna(s)
FROM nome_tabella
WHERE condizione
AND|OR condizione
ALTER TABLE nome_tabella
ADD nome_colonna tipo_di_dati
ALTER TABLE nome_tabella
DROP COLUMN nome_colonna
SELECT nome_colonna AS alias_colonna
FROM nome_tabella
SELECT nome_colonna
FROM nome_tabella AS table_alias
SELECT nome_colonna1, nome_colonna2, ...
FROM nome_tabella
1
Formulario di Basi di Dati
COUNT
CREATE DATABASE
CREATE INDEX
CREATE TABLE
CREATE UNIQUE INDEX
CREATE VIEW
DELETE FROM
WHERE nome_colonna
BETWEEN valore1 AND valore2
COUNT(*|[distinct|all|Attributo)
CREATE DATABASE database_name
CREATE INDEX nome_indice
ON nome_tabella (nome_colonna)
CREATE TABLE nome_tabella
(
nome_colonna tipo_di_dati,
nome_colonna tipo_di_dati PRIMARY KEY,
CONSTRAINT identificatore_del_vincolo FOREIGN KEY
nome_colonna_della_nuova_tabella REFERENCING
altra_tabella(colonna), ON UPDATE CASCADE|RESTRICT|NO
ACTION|SET NULL|SET DEFAULT, ON DELETE CASCADE|RESTRICT|
NO ACTION|SET NULL|SET DEFAULT
.......
)
CREATE UNIQUE INDEX nome_indice
ON nome_tabella (nome_colonna)
CREATE VIEW nome_vista AS
SELECT nome_colonna/e
FROM nome_tabella
WHERE condizione
DELETE FROM nome_tabella
(Nota: Cancella tutta la tabella!!)
oppure
DELETE FROM nome_tabella
WHERE condizione
DROP DATABASE
DROP INDEX
DROP TABLE
GROUP BY
HAVING
IN
INSERT INTO
DROP DATABASE nome_database
DROP INDEX nome_tabella.nome_indice
DROP TABLE nome_tabella
SELECT nome_colonna1,SUM(nome_colonna2)
FROM nome_tabella
GROUP BY nome_colonna1
SELECT nome_colonna1,SUM(nome_colonna2)
FROM nome_tabella
GROUP BY nome_colonna1
HAVING SUM(nome_colonna2) condizione valore
SELECT nome_colonna(s)
FROM nome_tabella
WHERE nome_colonna
IN (valore1,valore2,..)
INSERT INTO nome_tabella
VALUES (valore1, valore2,....)
oppure
INSERT INTO nome_tabella
(nome_colonna1, nome_colonna2,...)
VALUES (valore1, valore2,....)
JOIN
SELECT nome_colonna
FROM Tabella1 JOIN Tabella2 [ON Tabella1.Colonna =
2
Formulario di Basi di Dati
LIKE
ORDER BY
SELECT
SELECT *
SELECT DISTINCT
SELECT INTO
(usato per creare copia di
backup di una tabella)
Tabella2.Colonna] [...]
SELECT nome_colonna(s)
FROM nome_tabella
WHERE nome_colonna
LIKE pattern
SELECT nome_colonna(s)
FROM nome_tabella
ORDER BY nome_colonna [ASC|DESC]
SELECT nome_colonna(s)
FROM nome_tabella
SELECT *
FROM nome_tabella
SELECT DISTINCT nome_colonna(s)
FROM nome_tabella
SELECT *
INTO new_nome_tabella
FROM original_nome_tabella
SELECT nome_colonna(s)
INTO nuovo_nome_tabella
FROM nome_tabella_originale
SUM, MAX, MIN, AVG
TRUNCATE TABLE
(cancella solo i dati dentro la
tabella)
UPDATE
WHERE
SUM, MAX, MIN, AVG ([DISTINCT|ALL|Attributo)
TRUNCATE TABLE nome_tabella
UPDATE nome_tabella
SET nome_colonna=nuovo_valore
[, nome_colonna=nuovo_valore]
WHERE nome_colonna=un_qualche_valore
SELECT nome_colonna1, nome_colonna2, ...
FROM nome_tabella
WHERE condizione
3