Structured Query Language: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Eliminato tre d cacofoniche
m clean up
 
(2 versioni intermedie di 2 utenti non mostrate)
Riga 61:
 
* {{Codice|codice==|linguaggio=SQL}} Esprime uguaglianza tra due valori numerici o stringhe di caratteri (dove non è usato come operatore di assegnazione)
* {{Codice|codice=IS|linguaggio=SQL}} Si usa per verificare se un valore è {{Codice|codice=NULL|linguaggio=SQL}}, oppure se corrisponde a un valore booleano ({{Codice|codice=TRUE|linguaggio=SQL}}, {{Codice|codice=FALSE|linguaggio=SQL}}, {{Codice|codice=UNKNOWN|linguaggio=SQL}}).
* {{Codice|codice=LIKE|linguaggio=SQL}} Esprime somiglianza tra due valori letterali: con l'operatore {{Codice|codice=LIKE|linguaggio=SQL}} è possibile usare, per i confronti, i caratteri speciali: {{Codice|codice=%|linguaggio=SQL}} (sostituisce un arbitrario numero di lettere) e {{Codice|codice=_|linguaggio=SQL}} (sostituisce una lettera arbitraria)
* <code>{{Codice|codice=<|linguaggio=SQL}}</code> Stabilisce se un valore è minore di un altro
Riga 91:
Per ricercare il carattere underscore all'interno di un'espressione utilizzare la sintassi {{Codice|codice=[_]|linguaggio=SQL}} (leggi anche più avanti).
 
La [[sintassi]] di [[Microsoft Access]] è leggermente diversa da questo standard internazionale, e più completa. Invece del simbolo ''underscore'', si utilizza {{code|?}} per ricercare un singolo carattere (sia numero che lettera); invece del simbolo {{code|%}}, l'operatore jolly è dato da {{code|*}}. Access permette di ricercare un singolo valore numerico tramite il tasto ''hash'' (o ''[[cancelletto]]'') ({{code|#}}), e di ricercare un carattere (lettera e numero) all'interno o all'esterno di un insieme di valori, con la sintassi {{code|[]}} e {{code|[!]}}. L'intervallo può essere puntuale o collettivo: ad esempio, [A-F] indica le lettere comprese fra A ed F, mentre [A, F] indica solo la ricerca di queste due lettere. Ad esempio, un'istruzione come 'LIKE P[!A-F]C' ricerca le parole che iniziano per "P", finiscono per "C" e per seconda lettera non hanno i caratteri compresi fra le lettere A e F. Questa completezza nell'implementazione di LIKE è dovuta al fatto che Access non prevede operatori più complessi come SIMILAR TO e REGEXP.
 
Nonostante questa completezza, il [[driver]] OLE DB per [[Windows]] ha un bug noto: l'operatore jolly {{code|*|linguaggio=SQL}} è utilizzabile solo all'interno dell'applicazione, mentre via OLE DB/[[ODBC]] deve essere utilizzato il classico simbolo {{code|%}}.
Riga 124:
=== Operatori logici ===
Gli operatori logici di SQL appartengono agli operatori logici [[logica booleana|booleani]] e sono [[Congiunzione logica|AND]] (e), [[Disgiunzione logica|OR]] (o, oppure), [[Contraddizione|NOT]] (non), [[Disgiunzione esclusiva|XOR]] (detto anche "OR esclusivo").
* L'operatore logico {{Codice|codice=AND|linguaggio=SQL}}, che lega due condizioni, restituisce il valore {{Codice|codice=TRUE|linguaggio=SQL}} [[se e solo se]] entrambi gli operandi sono veri.
* L'operatore logico {{Codice|codice=OR|linguaggio=SQL}}, che lega due condizioni, restituisce {{Codice|codice=TRUE|linguaggio=SQL}} se e solo se almeno uno degli operandi è vero.
* L'operatore {{Codice|codice=NOT|linguaggio=SQL}} accetta un solo operando e restituisce il valore inverso: falso se questo è vero, vero se questo è falso.
Riga 325:
</syntaxhighlight>
 
<code>numero_risultati</code> è il numero delle righe da estrarre. pos_primo_risultato è l'indice della prima riga da estrarre. Insieme, possono essere utilizzati per suddividere i risultati in blocchi e leggerli un po' alla volta (per esempio per comodità del DBA, o per la paginazione dei risultati mostrati da una [[applicazione web]]).
 
=== Join ===
Riga 381:
 
== Critiche a SQL ==
SQL è un linguaggio di interrogazione pensato per interagire con i database relazionali. {{citazioneSenza necessariafonte|I teorici fanno però notare come le caratteristiche originali dell'SQL, ispirate al calcolo delle [[tupla|tuple]], in realtà lo violino}}. Le sue estensioni più recenti supportano pienamente il [[Modello relazionale]], {{senza fonte|ma hanno peggiorato le suddette violazioni}}.
 
Inoltre, vi sono molte critiche sull'utilizzo pratico dell'SQL:
* non fornisce un modo standard per suddividere un lungo comando in comandi più brevi a cui ci si possa riferire tramite un nome (sebbene molte implementazioni in realtà forniscano questa funzionalità);
* le diverse implementazioni sono generalmente incompatibili tra loro;
* {{citazioneSenza necessariafonte|si fa troppo affidamento sui valori [[NULL]], un metavalore che secondo alcuni accademici dovrebbe indicare l'assenza di un valore, secondo altri dovrebbe indicare un valore sconosciuto, mentre nella pratica finisce per essere usato in entrambi i modi, o in uno solo, ma in modo incoerente}}.
 
==Note==
Riga 429:
* {{Collegamenti esterni}}
* {{FOLDOC|SQL|SQL}}
* [http://www.uniss.it/documenti/formazione/Guida_DataBase_SQL.pdf SQL] {{Webarchive|url=https://web.archive.org/web/20110124161826/http://www.uniss.it/documenti/formazione/Guida_DataBase_SQL.pdf |datedata=24 gennaio 2011 }}. Guida gratuita in italiano realizzata dal [[Dipartimento del Tesoro]] (in pdf).
* {{cita web|http://www.1keydata.com/it/sql/|Tutorial de SQL}}
* {{cita web | 1 = https://kb.askmonty.org/it/istruzioni-sql-di-base/ | 2 = Istruzioni SQL di base | urlmorto = sì }}