Gramática mínima de SQL

En esta sección se describe la sintaxis mínima de SQL que debe admitir un controlador ODBC. La sintaxis descrita en esta sección es un subconjunto de la sintaxis de nivel de entrada de SQL-92.

Una aplicación puede usar cualquiera de las sintaxis de esta sección y asegurarse de que cualquier controlador compatible con ODBC admitirá esa sintaxis. Para determinar si se admiten características adicionales de SQL-92 que no están en esta sección, la aplicación debe llamar a SQLGetInfo con el tipo de información SQL_SQL_CONFORMANCE. Incluso si el controlador no se ajusta a ningún nivel de conformidad de SQL-92, una aplicación todavía puede usar la sintaxis descrita en esta sección. Si un controlador se ajusta a un nivel de SQL-92, por otro lado, admite toda la sintaxis incluida en ese nivel. Esto incluye la sintaxis de esta sección porque la gramática mínima descrita aquí es un subconjunto puro del nivel de conformidad de SQL-92 más bajo. Una vez que la aplicación conoce el nivel de SQL-92 admitido, puede determinar si se admite una característica de nivel superior (si existe) llamando a SQLGetInfo con el tipo de información individual correspondiente a esa característica.

Es posible que los controladores que solo funcionen con orígenes de datos de solo lectura no admitan las partes de la gramática incluidas en esta sección que tratan el cambio de datos. Una aplicación puede determinar si un origen de datos es de solo lectura llamando a SQLGetInfo con el tipo de información SQL_DATA_SOURCE_READ_ONLY.

Instrucción

create-table-statement ::=

CREATE TABLE base-table-name

(tipo de datos column-identifier [,column-identifier data-type]...)

Importante

Como tipo de datos en una instrucción create-table-, las aplicaciones deben usar un tipo de datos de la columna TYPE_NAME del conjunto de resultados devuelto por 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]

instrucción ::= create-table-statement

| delete-statement-searched

| drop-table-statement

| insert-statement

| select-statement

| update-statement-searched

update-statement-searched

UPDATE table-name

SET column-identifier = {expression | NULL }

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

[WHERE search-condition]

Esta sección contiene los temas siguientes.