Sei in: Home : Competenze : SQL

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