Errore di sintassi di query

June 8

Errore di sintassi di query


Quando gli sviluppatori di creare applicazioni che utilizzano database, queste comportano generalmente query di dati. Una query è una istruzione eseguita in programmazione o scripting codice, progettato per recuperare un insieme ben definito di dati da un database. Le query possono essere eseguite direttamente in SQL (Structured Query Language) su sistemi come MySQL e Oracle, o possono essere eseguiti da un altro linguaggio di programmazione come PHP o Java. Le query specificano i vari dettagli circa i dati di uno script richiede.

tabelle

Le query normalmente indicano una o più tabelle di database. Una query in SQL normalmente utilizzare la parola chiave "selezionare" e il nome di almeno un tavolo memorizzati all'interno del database. Il nome della tabella rappresenta la tabella contenente i dati richiesti, quindi se questo nome non è incluso correttamente, una query non riuscirà. La seguente query SQL esempio tenta di recuperare i dati da una tabella denominata "Paese" con una colonna denominata "City" in esso:

SELEZIONARE Città da Paese;

Per impostazione predefinita, questo restituirà tutti i record all'interno della colonna "Città" che sono attualmente memorizzati all'interno della tabella, ma se il nome della tabella è, per esempio, il farro in modo non corretto, la query restituirà nulla.

colonne

Le query specificano i nomi delle colonne all'interno di tabelle. Queste colonne contengono i dati richiesti. Se i nomi di colonna sono scritte in modo errato una query non sarà quindi in grado di restituire i dati richiesti. Un errore comune è compreso un nome di colonna che è valido, ma che viene richiesto dalla tabella sbagliata. Ad esempio, dato un database con tabelle denominate "Cliente" e "Ordine" con una colonna denominata "custID" nella tabella "Cliente" e una colonna denominata "ordID" nella tabella "Ordine", la seguente query fallirebbe:

SELEZIONA ordID da clienti;

La colonna specificata non esiste nella tabella indicata, in modo che il risultato della query sarà vuoto.

Filtraggio

Le query possono filtrare i risultati di dati in vari modi. Se il codice richiede solo una parte dei record per particolari colonne di una tabella, gli sviluppatori possono adattare la sintassi di query per recuperare questa sezione da solo. Ad esempio, la seguente sintassi dimostra interrogare i record con un valore specifico all'interno di una colonna della tabella di database:

SELECT * FROM clienti WHERE type = 'business';

Questa query restituirà i record che caratterizzano tutte le colonne della tabella "Cliente", dove il valore nella colonna "tipo" corrisponde al valore specificato di "business". Se uno dei due la colonna specificata nella clausola "where", o il valore dato non è corretto, la query potrebbe restituire sia alcun risultato o risultati non corretti.

tipi

Utilizzando i tipi non corretti può causare query SQL per sicuro. Questo è più comune quando sono presenti clausole, come il "dove" costrutto. Ad esempio, se il codice è filtrando un risultato di query su una colonna che memorizza un particolare tipo di valore, ad esempio numerico, ma una query "dove" clausola specifica un valore come un tipo di stringa di testo, la query può riuscire. E 'comune per ricevere i messaggi che indicano un "tipo non corrispondente" in questi casi.

Citazioni

virgolette singole e doppie appaiono spesso all'interno di sintassi di query. Per esempio, è comune per includere query SQL all'interno di altri script di programmazione in linguaggi come PHP. Il seguente estratto di esempio PHP crea una variabile di modellare una query SQL con una clausola di filtro al suo interno:

$ Query = "SELECT * da persone dove pName = 'Smith'";

La query stessa è contenuta tra virgolette, mentre il valore specificato per il "dove" clausola appare all'interno apici. Questo tipo di situazione è quella in cui è molto comune a confondere accidentalmente le virgolette singole e doppie, impedendo potenzialmente sia lo script o la query da eseguire.