SQL
Comandi per gestire i dati in una tabella
INSERT
Sintassi:
INSERT [INTO] NomeTabella
[(ListaColonne)]
VALUES (DEFAULT|NULL|Espressione)
UPDATE
Sintassi:
UPDATE Nometabella
SET NomeColonna = (DEFAULT|NULL|Espressione)
[WHERE CondizioneRicerca]
DELETE
Sintassi:
DELETE FROM NomeTabella
[WHERE CondizioneRicerca]
TRUNCATE
Sintassi:
TRUNCATE TABLE NomeTabella
più veloce di delete senza clausola WHERE nel cancellare tutte le righe. Le colonne contatore vengono riazzerate, per non farlo bisogna usare una delete con una condizione WHERE sempre soddisfatta.
Comandi per estrarre i dati dalle tabelle
SELECT
Sintassi:
SELECT [DISTINCT|TOP n] ListaColonne|* [AS NomeAltrnativo]
FROM NomeTabella
[WHERE CondizioneRicerca]
[GROUP BY CampoDeiValoriDaRaggruppare]
[HAVING CondizioneUlteriore]
[ORDER BY PrimoCampoOrdinamento[,SecondoCampoOrdinamento,...] [ASC|DESC]]
[LIMIT NumeroRighe]
[UNION [ALL] SELECT .... ]
N.B. con oracle TOP non funziona, bisogna usare limit.
Condizioni di ricerca
CampoStringa LIKE '%...%' . Il carattere '%' sostituisce una stringa, il carattere '_' un carattere.
Query nidificate ...WERE Campo IN (SELECT ....)
CampoValore BETWEEN valore1 AND valore2
Funzioni Aritmetiche
COUNT(CampoDaContare)
MIN()
MAX()
AVG()
SUM()
combinando count e group by si possono estrarre conteggi su i duplicati di una tabella, ad esempio:
TURNI | |
PERSONA | TURNO |
pippo | 8-13 |
pippo | 14-18 |
pluto | 8-13 |
select count(*),persona from turni group by persona restituisce:
2 pippo
1 pluto
NULL
NULL ha il comportamento di 0 per la moltiplicazione, infatti danno risultato NULL le seguenti:
- NULL IN (Lista)
- NULL = NULL
- NULL LIKE stringa
- Campo LIKE NULL
- CONCAT('a',NULL)
-
Tutte le Funzioni matematiche applicate a NULL
COUNT(NULL) restituisce 0
va gestito con gli operatori IS e <=> oppure con le funzioni ISNULL(Campo) e IFNULL(Campo1,Campo2)
Commenti
i commenti si scrivono in modo diverso per ogni proprietario vedi i link Microsoft SQL Oracle MySQL
JOIN
Sintassi:
SELECT
campi
FROM
prima_tabella
INNER[|LEFT|RIGHT|OUTER] JOIN
seconda_tabella
ON
prima_tabella.chiave_primaria = seconda_tabella.chiave_esterna
Vincoli
Ci sono i:
- Vincoli di unicità UNIQUE
- Vincoli di chiave primaria PIMARY KEY
- Vincoli di integrità referenziale o chiavi esterne FOREIGN KEY
Gli effetti di un vincolo possono essere di tre tipi:
Gli effetti che si possono impostare per un vincolo possono essere di tre tipi:
- ON DELETE CASCADE cancella anche tutte le righe che vi fanno riferimento
- ON DELETE SET NULL aggiorna al valore NULL tutte le righe che vi fanno riferimento
- ON UPDATE CASCADE aggiorna al valore modificato tutte le righe che vi fanno riferimento
Variabili
DECLARE @variable tipo_dato
Quando dichiariamo una variabile, il suo valore viene impostato a NULL, per valorizzare la variabile dichiarata, utilizziamo l'istruzione SET con la seguente sintassi:
SET @variable = espresisione
Stored Procedures
Function
FETCH e CURSOR
Sezioni di dettaglio in base al motore del database
- Microsoft SQL
- Errore che impedisce l'invio via e-mail di notifiche
- Estrarre Data e luogo di nascita dal codice fiscale
- Ottenere solo le righe con il max di una colonna raggruppate per un altra senza usare GROUP BY
- Query che restituisce un calendario
- Recuperare la versione precedente di una sotred procedure dal Transaction Log
- Scambiare righe con colonne, creare una colonna di un valore ripetuto su più righe
- Togliere gli zeri ad un campo numerico zero-filled
- UPDATE utilizzando JOIN
- Errore che impedisce l'invio via e-mail di notifiche
- MySQL
- Oracle