Freigeben über


Minimale SQL-Grammatik

In diesem Abschnitt wird die SQL-Mindestsyntax beschrieben, die ein ODBC-Treiber unterstützen muss. Die in diesem Abschnitt beschriebene Syntax ist eine Teilmenge der Einstiegssyntax von SQL-92.

Eine Anwendung kann eine beliebige Syntax in diesem Abschnitt verwenden und sicher sein, dass jeder ODBC-kompatible Treiber diese Syntax unterstützt. Um festzustellen, ob zusätzliche Features von SQL-92, die nicht in diesem Abschnitt enthalten sind, unterstützt werden, sollte die Anwendung SQLGetInfo mit dem Informationstyp SQL_SQL_CONFORMANCE aufrufen. Auch wenn der Treiber keiner SQL-92-Konformitätsstufe entspricht, kann eine Anwendung weiterhin die in diesem Abschnitt beschriebene Syntax verwenden. Wenn ein Treiber einer SQL-92-Ebene entspricht, unterstützt er dagegen die gesamte Syntax, die in dieser Ebene enthalten ist. Dies schließt die Syntax in diesem Abschnitt ein, da die hier beschriebene Mindestgrammatik eine reine Teilmenge der niedrigsten SQL-92-Konformitätsebene ist. Sobald die Anwendung die unterstützte SQL-92-Ebene kennt, kann sie ermitteln, ob ein Feature auf höherer Ebene (falls vorhanden) unterstützt wird, indem SQLGetInfo mit dem individuellen Informationstyp aufgerufen wird, der diesem Feature entspricht.

Treiber, die nur mit schreibgeschützten Datenquellen arbeiten, unterstützen möglicherweise nicht die in diesem Abschnitt enthaltenen Grammatikteile, die sich mit dem Ändern von Daten befassen. Eine Anwendung kann ermitteln, ob eine Datenquelle schreibgeschützt ist, indem SQLGetInfo mit dem Informationstyp SQL_DATA_SOURCE_READ_ONLY aufgerufen wird.

-Anweisung.

create-table-statement ::=

CREATE TABLE-Basistabellenname

(Spaltenbezeichnerdatentyp [,Spaltenbezeichnerdatentyp]...)

Wichtig

Als Datentyp in einer create-table-Anweisung müssen Anwendungen einen Datentyp aus der TYPE_NAME Spalte des Resultsets verwenden, der von SQLGetTypeInfo zurückgegeben wird.

delete-statement-searched ::=

DELETE FROM-Tabellenname [WHERE search-condition]

drop-table-statement ::=

DROP TABLE-Basistabellenname

insert-statement ::=

INSERT INTO-Tabellenname [( Spaltenbezeichner [, Spaltenbezeichner]...)] VALUES (insert-value[, insert-value]... )

select-statement ::=

SELECT [ALLE | DISTINCT] select-list

FROM-Table-reference-list

[ WHERE-Suchbedingung]

[order-by-clause]

anweisung ::= create-table-statement

| delete-statement-searched

| drop-table-anweisung

| insert-anweisung

| select-statement

| update-statement-searched

update-statement-searched

UPDATE-Tabellenname

SET column-identifier = {expression | NULL }

[, spaltenbezeichner = {expression | NULL}]...

[ WHERE-Suchbedingung]

In diesem Abschnitt werden die folgenden Themen behandelt: