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