Grammatica SQL di base

In questa sezione viene descritta la sintassi SQL minima supportata da un driver ODBC. La sintassi descritta in questa sezione è un subset della sintassi del livello di ingresso di SQL-92.

Un'applicazione può usare qualsiasi sintassi in questa sezione e assicurarsi che qualsiasi driver compatibile con ODBC supporti tale sintassi. Per determinare se sono supportate funzionalità aggiuntive di SQL-92 non incluse in questa sezione, l'applicazione deve chiamare SQLGetInfo con il tipo di informazioni SQL_SQL_CONFORMANCE. Anche se il driver non è conforme a un livello di conformità SQL-92, un'applicazione può comunque usare la sintassi descritta in questa sezione. Se un driver è conforme a un livello SQL-92, supporta invece tutta la sintassi inclusa in tale livello. Ciò include la sintassi in questa sezione perché la grammatica minima descritta di seguito è un subset puro del livello di conformità SQL-92 più basso. Una volta che l'applicazione conosce il livello SQL-92 supportato, può determinare se una funzionalità di livello superiore è supportata (se presente) chiamando SQLGetInfo con il singolo tipo di informazioni corrispondente a tale funzionalità.

I driver che funzionano solo con origini dati di sola lettura potrebbero non supportare le parti della grammatica incluse in questa sezione che gestiscono la modifica dei dati. Un'applicazione può determinare se un'origine dati è di sola lettura chiamando SQLGetInfo con il tipo di informazioni SQL_DATA_SOURCE_READ_ONLY.

Istruzione

create-table-statement ::=

CREATE TABLE base-table-name

(tipo di dati dell'identificatore di colonna [,tipo di dati identificatore di colonna]...)

Importante

Come tipo di dati in un'istruzione create-table, le applicazioni devono usare un tipo di dati dalla colonna TYPE_NAME del set di risultati restituito da SQLGetTypeInfo.

delete-statement-searched ::=

DELETE FROM table-name [WHERE search-condition]

drop-table-statement ::=

DROP TABLE base-table-name

insert-statement ::=

INSERT INTO table-name [( column-identifier [, column-identifier]...)] VALUES (insert-value[, insert-value]... )

select-statement ::=

SELECT [ALL | DISTINCT] select-list

FROM table-reference-list

[WHERE search-condition]

[order-by-clause]

statement ::= create-table-statement

| delete-statement-searched

| drop-table-statement

| insert-statement

| istruzione select

| update-statement-searched

update-statement-searched

UPDATE table-name

SET column-identifier = {expression | NULL }

[, column-identifier = {expression | NULL}]...

[WHERE search-condition]

Questa sezione descrive gli argomenti seguenti: