via delle Pappe 34 Pistoia    348 2658584   0573 1780720   posta@spataro.info

filtraggi sql SELECT WHERE BETWEEN LIKE

2010/04/01 10:35:31
script sql

Il linguaggio SQL è la molla che mi ha spinto ad entrare nella programmazione,
con un linguaggio di server-scripting come asp o php e il potentissimo SQL è possibile manipolare i dati presenti su di un database
ed ottere immediatamente una risposta alla nostra interrogazione.

Vediamo i casi più comuni (se avrò tempo e voglia nei prossimi mesi inserirò anche quelli meno comuni).

L'istruzione madre è:

SELECT * FROM nometabella 'SELEZIONA TUTTO DA UNA TABELLA

grazie poi ai seguenti operatori e ai caratteri jolly di cui dispongono

= uguale a
<> maggiore minore / diverso da
> maggiore di
< minore di
>= maggiore o uguale a
<= minore o uguale a
BETWEEN compreso tra 2 valori (SELECT * FROM Persons BETWEEN Year=1965 AND Year=1967)
LIKE ricerca il pattern del campo (esempio SELECT * FROM Persons LIKE nome='pi' ) in un database di città renderà: Pisa, Pistoia, Piacenza, Ascoli Piceno, poichè la matrice 'pi' è in ognuno di essi

potremo ottenere risposta alle più comuni interrogazioni:

  • 'Seleziona tutto dalla tabella persone dove il cognome è uguale a Spataro
    SELECT * FROM Persons WHERE Cognome='Spataro' AND (Nome='Pino' OR Cognome='Paolo') ORDER BY Cognome ASC(dalla A alla Z) oppure DESC (dalla Z alla A)
  • 'seleziona tutto dalla tabella clienti dove il nome è esattamente Mario e Maria
    SELECT * FROM clienti WHERE nome IN ('Mario', 'Maria')  cercherà tutti quelli che si chiamano esattamente Mario e Maria


L'operatore LIKE utilizza due caratteri jolly. I due caratteri sono il simbolo percento '%' e l'underscore '_'. Il primo (%) sostituisce un insieme di caratteri, il secondo (_) si limita a sostituirne uno solo .

Gli esempi sono parlanti::

  • SELECT * FROM clienti WHERE nome LIKE '%anna%' Nel database renderà tutti i nomi che contengono anna, quindi annamaria, marianna, annalaura, annalisa, balannati,
  • SELECT * FROM clienti WHERE nome LIKE 'Anna%' Avremo tutti quelli il cui nome inizia con anna, quindi annamaria, annalaura, annalisa,
  • SELECT * FROM clienti WHERE nome LIKE '%Anna' Avremo tutti quelli il cui nome termina con anna, quindi marianna


Per adesso termino quì.