From 1d634ffaa23e5c26d05567bf23ddbd9263322c30 Mon Sep 17 00:00:00 2001 From: AmnesiA <57435273+Meht-evaS@users.noreply.github.com> Date: Mon, 30 Oct 2023 20:03:39 +0100 Subject: [PATCH 1/3] Aggiunti appunti comandi SQL File che contiene tutti i principali comandi SQL e la definizione dei vari tipi di variabili, chiavi, ecc... --- triennale/Anno 3/Basi di Dati/ComandiSQL.md | 1271 +++++++++++++++++++ 1 file changed, 1271 insertions(+) create mode 100644 triennale/Anno 3/Basi di Dati/ComandiSQL.md diff --git a/triennale/Anno 3/Basi di Dati/ComandiSQL.md b/triennale/Anno 3/Basi di Dati/ComandiSQL.md new file mode 100644 index 000000000..8e8a03d20 --- /dev/null +++ b/triennale/Anno 3/Basi di Dati/ComandiSQL.md @@ -0,0 +1,1271 @@ +# COMANDI SQL: + +Nella guida faccio riferimento all'uso di `psql (14.3)`. + +Per usare psql: +```bash +sudo su - postgres +psql +``` + +## :pencil: Indice +* [VALORI DI DOMINIO](#valori-di-dominio) + + [Stringhe](#stringhe) + + [Numeri](#numeri) + + [Tempo](#tempo) + + [Booleani:](#booleani) +* [VALORI DI CREAZIONE](#valori-di-creazione) + + [Schema](#schema) + + [Dominio](#dominio) + + [Tabella](#tabella) + + [Chiavi](#chiavi) +* [VALORI DI DISTRUZIONE](#valori-di-distruzione) + + [Schema](#schema-1) + + [Tabella](#tabella-1) + + [Dominio](#dominio-1) +* [VALORI DI MODIFICA](#valori-di-modifica) + + [Tabella](#tabella-2) + - [INSERT INTO](#insert-into) + - [DELETE](#delete) + - [UPDATE](#update) + - [REFERENCES ](#references) + + [Dominio](#dominio-2) +* [SCRIPT](#script) +* [COMANDI PSQL](#comandi-psql) +* [COMANDI SQL](#comandi-sql-1) + + [Modifica](#modifica) + + [Interrogazione](#interrogazione) + - [SELECT](#select) + - [WHERE](#where) + - [LIKE](#like) + - [IN](#in) + + [Operatori di JOIN](#operatori-di-join) + - [NATURAL JOIN](#natural-join) + - [THETA JOIN](#theta-join) + * [INNER JOIN ](#inner-join) + * [CROSS JOIN:](#cross-join) + * [LEFT OUTER JOIN:](#left-outer-join) + * [RIGHT OUTER JOIN:](#right-outer-join) + * [FULL OUTER JOIN:](#full-outer-join) + + [Operatori insiemistici](#operatori-insiemistici) + + [Operatori di raggruppamento:](#operatori-di-raggruppamento) + - [GROUP BY](#group-by) + - [HAVING ](#having) + + [Operatori d'aggregazione](#operatori-daggregazione) + + [Subquery (o Interrogazioni Nidificate)](#subquery-o-interrogazioni-nidificate) + + [Operatori Matematici](#operatori-matematici) + + [Funzioni ed Operatori su Stringhe](#funzioni-ed-operatori-su-stringhe) + + [Funzioni su Data/Ora](#funzioni-su-dataora) + + +## VALORI DI DOMINIO + +### Stringhe +
+ char(n) + | ++ Stringhe di n caratteri (lunghezza fissa). Alle stringhe più corte sono aggiunti spazi in coda + | +
+ char + | ++ Sinonimo di char(1) + | +
+ varchar(n) + | ++ Stringhe di al più n caratteri + | +
+ varchar + | ++ Stringhe di lunghezza arbitraria + | +
+ text + | ++ Stringhe di lunghezza arbitraria + | +
+ smallint + | ++ Intero. 2 byte, range [−2^(15), 2^(15) −1] + | +
+ integer + | ++ Intero. 4 byte, range [−2^(31) ,2^(31) −1] + | +
+ bigint + | ++ Intero. 8 byte + | +
+ real + | ++ Numeri in virgola mobile. Tipicamente nel range [10^(−37), 10^(37)], con almeno 6 cifre corrette + | +
+ float(prec) + | ++ prec specifica la precisione minima accettabile come numero di cifre binarie + | +
+ timestamp + | ++ Data e ora. Esempio:'10-may-2004 14:30:10' + | +
+ date + | ++ Data. Esempio: (formato raccomandabile 'anno-mese-giorno') '2009-07-22' + | +
+ time + | ++ Ora. Esempio:'5.50 pm' + | +
+ interval + | ++ Intervalli di tempo. Esempio: '1 day 12 hours 50 min 10 sec ago' + | +
+ boolean + | +
+ Tipo booleano. + Esempi di booleani: +
|
+
+ NOT NULL + | ++ Assicura che una colonna non possa avere un valore NULL + | +
+ UNIQUE + | +
+ Crea delle SUPERCHIAVI. Assicura che tutti i valori in una colonna o tupla (insieme di colonne) siano diversi. + Per una tupla si scrive per esempio UNIQUE(Nome,Cognome) nell'ultima parte della creazione di una tabella. + |
+
+ PRIMARY KEY + | ++ Una combinazione di NOT NULL e UNIQUE. Identifica in modo univoco ogni riga in una tabella + | +
+ FOREIGN KEY + | ++ Serve per la definizione di chaivi esterne su più attributi + | +
+ REFERENCES + | ++ Serve per la definizione di chiavi esterne su un singolo attributo sottoposto a UNIQUE o PRIMARY KEY + | +
+ CHECK + | ++ Assicura che i valori in una colonna soddisfano una condizione specifica + | +
+ DEFAULT + | ++ Imposta un valore predefinito per una colonna se nessun valore è specificato + | +
+ CREATE INDEX + | ++ Utilizzato per creare e recuperare dati dal database molto velocemente + | +
+ PRIMARY KEY + | ++ Una combinazione di NOT NULL e UNIQUE. Identifica in modo univoco ogni riga in una tabella + | +
+ FOREIGN KEY + | ++ Serve per la definizione di chaivi esterne su più attributi + | +
+ REFERENCES + | ++ Serve per la definizione di chiavi esterne su un singolo attributo sottoposto a UNIQUE o PRIMARY KEY + | +