Structured Query Language: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Migliorato la pagina |
m clean up |
||
(3 versioni intermedie di 2 utenti non mostrate) | |||
Riga 26:
== Caratteristiche ==
SQL è un linguaggio per interrogare e gestire basi di dati mediante l'utilizzo di costrutti di programmazione denominati [[query]]. Con SQL si leggono, modificano, cancellano dati e si esercitano funzioni gestionali
Originariamente progettato come linguaggio di tipo [[Programmazione dichiarativa|dichiarativo]], si è successivamente evoluto con l'introduzione di costrutti [[programmazione procedurale|procedurali]], istruzioni per il [[controllo di flusso]], [[tipo di dato|tipi di dati]] definiti dall'utente e varie altre estensioni del linguaggio. A partire dalla definizione dello standard SQL:1999 molte di queste estensioni sono state formalmente adottate come parte integrante di SQL nella sezione SQL/PSM dello standard.
Riga 58:
=== Operatori di confronto ===
Gli operatori di confronto servono a determinare uguaglianze e disuguaglianze tra valori e
* {{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 201:
Il comando {{Codice|codice=DELETE|linguaggio=SQL}} ha la funzione di cancellare i dati dalle tabelle.
Come il comando update anche delete può operare in modo generico cancellando tutte le righe della tabella oppure può identificare le righe da cancellare mediante la parola chiave aggiuntiva {{Codice|codice=WHERE|linguaggio=SQL}} e la condizione (o le condizioni)
==== Sintassi del comando delete ====
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. {{
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;
* {{
==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 |
* {{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ì }}
|