Megosztás a következőn keresztül:


ANSI-megfelelőség a Databricks Runtime-ban

A következőkre vonatkozik: jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime

Ez a cikk az ANSI-megfelelőséget ismerteti a Databricks Runtime-ban. A Databricks SQL ANSI-módjáról lásd : ANSI_MODE.

A Spark SQL két lehetőséggel támogatja az ANSI SQL szabványnak való megfelelést: spark.sql.ansi.enabled és spark.sql.storeAssignmentPolicy.

Ha spark.sql.ansi.enabled be van állítva, a trueSpark SQL ANSI-kompatibilis dialektust használ a Hive-kompatibilis helyett. A Spark például futásidőben kivételt ad vissza null eredmény helyett, ha egy SQL-operátor/függvény bemenetei érvénytelenek. Előfordulhat, hogy egyes ANSI-dialektusi funkciók nem közvetlenül az ANSI SQL-szabványból származnak, de viselkedésük megfelel az ANSI SQL stílusának.

A Spark SQL emellett egy független beállítással is rendelkezik az implicit öntési viselkedés szabályozására, amikor sorokat tárol egy táblában. Az öntési viselkedések a szabványban tároló-hozzárendelési szabályokként vannak definiálva.

Ha spark.sql.storeAssignmentPolicy be van állítva, a ANSISpark SQL megfelel az ANSI-tároló hozzárendelési szabályainak. Ez egy külön konfiguráció, mert az ANSIalapértelmezett értéke, míg a konfiguráció spark.sql.ansi.enabled alapértelmezés szerint le van tiltva.

Az alábbi táblázat összefoglalja a viselkedést:

Tulajdonság neve Alapértelmezett Értelmezés
spark.sql.ansi.enabled false Ha igaz, a Spark megpróbál megfelelni az ANSI SQL-specifikációnak:

* Futásidejű kivételt eredményez, ha túlcsordulás lép fel egy egész vagy decimális mező bármely műveletében.
* Megtiltja, hogy az ANSI SQL fenntartott kulcsszavait használja azonosítóként az SQL-elemzőben.
spark.sql.storeAssignmentPolicy ANSI Amikor egy értéket egy másik adattípusú oszlopba tárol, a Spark típuskonverziót hajt végre. A típus kényszerítő szabályainak három házirendje van: ANSI, legacyés strict.

* ANSI: A Spark az ANSI SQL-nek megfelelően hajtja végre a típuskényszert. A gyakorlatban a viselkedés többnyire megegyezik a PostgreSQL-ével. Letilt bizonyos ésszerűtlen típuskonverziókat, például a sztringek int vagy dupla logikai értékre való konvertálását.
* legacy: Spark lehetővé teszi a típus kényszerítése, amíg ez egy érvényes Cast, ami nagyon laza. A sztring átalakítása például int vagy double értékre logikai értékre engedélyezett. Ez az egyetlen viselkedés a Spark 2.x-ben, és kompatibilis a Hive-lel.
* strict: A Spark nem engedélyezi az esetleges pontosságvesztést vagy adatcsobolást a típuskényszerítésben, például a dupla int vagy decimális dupla értékre konvertálása nem engedélyezett.

Az alábbi alszakaszok viselkedésbeli változásokat mutatnak be az aritmetikai műveletekben, a típuskonverziókban és az SQL-elemzésekben, ha az ANSI mód engedélyezve van. A Spark SQL-ben a típuskonverziókhoz háromféle típus létezik, és ez a cikk egyenként mutatja be őket: öntött, tároló-hozzárendelés és típus kényszerítése.

Aritmetikai műveletek

A Spark SQL-ben a numerikus típusokon végrehajtott számtani műveletek (a tizedesvessző kivételével) alapértelmezés szerint nem ellenőrzik a túlcsordulásokat. Ez azt jelenti, hogy ha egy művelet túlcsordulást okoz, az eredmény megegyezik a Java- vagy Scala-programok megfelelő műveletével (ha például a 2 egész szám összege meghaladja a maximálisan ábrázolható értéket, az eredmény negatív szám). A Spark SQL viszont null értéket ad vissza a decimális túlcsordulásokhoz. Amikor spark.sql.ansi.enabled be van állítva true , és a szám- és intervallum-aritmetikai műveletekben túlcsordulás történik, futásidőben aritmetikai kivételt eredményez.

-- `spark.sql.ansi.enabled=true`
> SELECT 2147483647 + 1;
 error: integer overflow

-- `spark.sql.ansi.enabled=false`
> SELECT 2147483647 + 1;
  -2147483648

Cost

Ha spark.sql.ansi.enabled a trueszintaxis szerinti CAST explicit öntés futásidejű kivételt ad a szabványban definiált illegális öntött mintákra, például sztringről egész számra történő öntötteléssel.

A CAST Spark ANSI mód záradéka az ISO/IEC 9075-2:2011 informatikai technológia – Adatbázisnyelvek – SQL – 2. rész: Alap (SQL/Foundation) 6.13 "cast specification" szakaszának szintaxisszabályait követi, azzal a kivételrel, hogy kifejezetten engedélyezi a következő egyszerű típuskonverziókat, amelyek az ANSI-szabványnak megfelelően nem engedélyezettek:

  • Numerikus típus <=> Logikai típus
  • StringType <=> BinaryType

A forrás- és céladattípus érvényes kombinációit a következő táblázat adja meg egy kifejezésben CAST . Az "Y" azt jelzi, hogy a kombináció szintaktikailag korlátozás nélkül érvényes, az "N" pedig azt jelzi, hogy a kombináció érvénytelen.

SourceTarget Numerikus Sztring Dátum Időbélyegző Intervallum Logikai Bináris Tömb Térkép Struktúra
Numerikus I I N N N I N N N N
Sztring I I I I I I I N N N
Dátum N I I I N N N N N N
Időbélyegző N I I I N N N N N N
Intervallum N I N N I N N N N N
Logikai I I N N N I N N N N
Bináris I N N N N N I N N N
Tömb N N N N N N N I N N
Térkép N N N N N N N N I N
Struktúra N N N N N N N N N I
-- Examples of explicit casting

-- `spark.sql.ansi.enabled=true`
> SELECT CAST('a' AS INT);
  ERROR: [CAST_INVALID_INPUT] The value 'a' of the type "STRING" cannot be cast to "INT" because it is malformed.

> SELECT CAST(2147483648L AS INT);
  ERROR: [CAST_OVERFLOW] The value 2147483648L of the type "BIGINT" cannot be cast to "INT" due to an overflow.

> SELECT CAST(DATE'2020-01-01' AS INT)
  ERROR: [DATATYPE_MISMATCH.CAST_WITH_FUNC_SUGGESTION] Cannot resolve "CAST(DATE '2020-01-01' AS INT)" due to data type mismatch: cannot cast "DATE" to "INT".

-- `spark.sql.ansi.enabled=false` (This is a default behavior)
> SELECT cast('a' AS INT);
  null

> SELECT CAST(2147483648L AS INT);
  -2147483648

> SELECT CAST(DATE'2020-01-01' AS INT);
  null

Áruház-hozzárendelés

A beállítás spark.sql.storeAssignmentPolicy alapértelmezés szerint a következő.ANSI Ezzel a beállítással, ha a forrásértékek adattípusai nem felelnek meg a céloszloptípusoknak, a Spark SQL automatikusan hozzáadja az ANSI CAST záradékokat az INSERT utasításhoz. A házirend alatti táblázatbeszúrás során a Spark ellenőrzi és elutasítja az érvénytelen leadást, kivételt vetve az adatminőség biztosítása érdekében. Ez azt jelenti, hogy ha egy beszúrási kísérlet típuseltérés miatt meghiúsul, az nem eredményezi, hogy az adatok részben a táblába lesznek írva.

Példák:

-- spark.sql.storeAssignmentPolicy=ANSI
> CREATE TABLE test(i INT);
> INSERT INTO test VALUES (2147483648L);
  ERROR: [CAST_OVERFLOW_IN_TABLE_INSERT] Fail to insert a value of "BIGINT" type into the "INT" type column `i` due to an overflow.

> INSERT INTO test VALUES ('a');
  ERROR: [CAST_INVALID_INPUT ERROR] The value 'a' of the type "STRING" cannot be cast to "INT" because it is malformed

Ezek a példák azt mutatják, hogy a Spark SQL megakadályozza a nem kompatibilis adatok beszúrását, ezáltal fenntartva az adatintegritást.

Ha a spark.sql.storeAssignmentPolicy beállítás LEGACYértéke, a Spark SQL visszaáll a Spark 2.x-re jellemző viselkedésre. Ebben a módban az ANSI CAST használata helyett régi CAST-műveleteket alkalmaz. Ebben a szabályzatban a táblabeszúrások során érvénytelen leadások null értékeket vagy helytelen értékeket szúrnak be ahelyett, hogy kivételt okoznak. Példák:

-- spark.sql.storeAssignmentPolicy=LEGACY
> CREATE TABLE test(i INT);
> INSERT INTO test VALUES (2147483648L);
> INSERT INTO test VALUES ('a');
> SELECT * FROM test;

-- Results
--  -2147483648 (incorrect value due to overflow)
--  null (cannot cast 'a' to INT)

Kényszerítés beírása

Írja be az előléptetést és az elsőbbségi sorrendet

Ha spark.sql.ansi.enabled be van állítva true, a Spark SQL több olyan szabályt használ, amelyek szabályozzák az adattípusok közötti ütközések feloldását. Ennek az ütközésfeloldásnak a középpontjában a Típus elsőbbsége lista áll, amely meghatározza, hogy egy adott adattípus értékei implicit módon előléptethetők-e egy másik adattípusra.

Adattípus elsőbbségi lista (a legszűkebbtől a legszélesebbig)
Bájt Bájt – Rövid –> Int – Hosszú –> Decimális –>> Lebegőpontos* –> Dupla>
Rövid Rövid -> Int -> Long -> Decimal-> Float* -> Double
Int Int –> Hosszú –> Decimális –> Lebegőpontos* –> Dupla
Hosszú Hosszú -> Decimális -> Lebegőpontos* -> Dupla
Decimális Decimális –> Lebegőpontos* –> Dupla
Lebegőpontos értékek Lebegtetés –> Dupla
Dupla Dupla
Dátum Dátum –> Időbélyeg
Időbélyegző Időbélyegző
Sztring Sztring
Bináris Bináris
Logikai Logikai
Intervallum Intervallum
Térkép Térkép**
Tömb Tömb**
Struktúra Struct**
  • A minimálisan gyakori típusfeloldási lebegőpontos lebegőpontosság kihagyása a pontosság elvesztésének elkerülése érdekében.

** Összetett típus esetén az elsőbbségi szabály rekurzívan vonatkozik az összetevő elemeire.

A sztringtípusra és a nem beírt NULL típusra speciális szabályok vonatkoznak. A NULL bármilyen más típusra előléptethető, míg a sztringek bármilyen egyszerű adattípusra előléptethetők.

Ez az elsőbbségi lista grafikus ábrázolása irányított faként: Az elsőbbségi szabályok grafikus ábrázolása

Legkevésbé gyakori típusfeloldás

A típusok közül a legkevésbé gyakori típus a típusok összes eleme által elérhető legszűkebb típus az elsőbbségi listából.

A legkevésbé gyakori típusfeloldás a következő műveletekre használható:

  • Döntse el, hogy egy típus paraméterét váró függvény meghívható-e egy szűkebb típusú argumentum használatával.
  • Olyan függvények argumentumtípusának származtatása, amelyek megosztott argumentumtípust várnak több paraméterhez, például a legkisebb vagy a legnagyobb értékhez.
  • Az operátorok operandustípusait( például aritmetikai műveleteket vagy összehasonlításokat) származtathatja.
  • Származtathatja a kifejezés eredménytípusát, például a kis- és nagybetűket.
  • A tömb- és térképkonstruktorok elem-, kulcs- vagy értéktípusainak kinyerése.

A rendszer speciális szabályokat alkalmaz, ha a legkevésbé gyakori típus float-ra van feloldva. Lebegőpontos típusértékek esetén, ha bármelyik típus INT, BIGINT vagy DECIMAL típusú, akkor a rendszer a legkevésbé gyakori típust dupla értékre küldi, hogy elkerülje a számjegyek esetleges elvesztését.

-- The coalesce function accepts any set of argument types as long as they share a least common type.
-- The result type is the least common type of the arguments.
> SET spark.sql.ansi.enabled=true;

> SELECT typeof(coalesce(1Y, 1L, NULL));
BIGINT

> SELECT typeof(coalesce(1, DATE'2020-01-01'));
Error: Incompatible types [INT, DATE]

> SELECT typeof(coalesce(ARRAY(1Y), ARRAY(1L)));
ARRAY<BIGINT>

> SELECT typeof(coalesce(1, 1F));
DOUBLE

> SELECT typeof(coalesce(1L, 1F));
DOUBLE

> SELECT (typeof(coalesce(1BD, 1F)));
DOUBLE

-- The substring function expects arguments of type INT for the start and length parameters.
> SELECT substring('hello', 1Y, 2);
he

> SELECT substring('hello', '1', 2);
he

> SELECT substring('hello', 1L, 2);
Error: Argument 2 requires an INT type.

> SELECT substring('hello', str, 2) FROM VALUES(CAST('1' AS STRING)) AS T(str);
Error: Argument 2 requires an INT type.

SQL-függvények

Egyes SQL-függvények viselkedése az ANSI módban (spark.sql.ansi.enabled=true) eltérő lehet.

  • size: Ez a függvény null értéket ad vissza a null bemenethez ANSI módban.
  • element_at:
    • Ez a függvény érvénytelen indexek ArrayIndexOutOfBoundsException használata esetén dob.
    • Ez a függvény dob, NoSuchElementException ha a kulcs nem létezik a térképen.
  • elt: Ez a függvény érvénytelen indexek ArrayIndexOutOfBoundsException használata esetén dob.
  • make_date: Ez a függvény kivétellel meghiúsul, ha az eredménydátum érvénytelen.
  • make_timestamp: Ez a függvény kivétellel meghiúsul, ha az eredmény időbélyege érvénytelen.
  • make_interval: Ez a függvény kivétellel meghiúsul, ha az eredményintervallum érvénytelen.
  • next_day: Ez a függvény akkor jelenik meg IllegalArgumentException , ha a bemenet nem érvényes hétnap.
  • parse_url: Ez a függvény akkor jelenik IllegalArgumentException meg, ha egy bemeneti sztring nem érvényes URL-cím.
  • to_date: Ez a függvény kivétellel meghiúsul, ha a bemeneti sztring nem elemezhető, vagy a mintasztring érvénytelen.
  • to_timestamp: Ez a függvény kivétellel meghiúsul, ha a bemeneti sztring nem elemezhető, vagy a mintasztring érvénytelen.
  • to_unix_timestamp: Ez a függvény kivétellel meghiúsul, ha a bemeneti sztring nem elemezhető, vagy a mintasztring érvénytelen.
  • unix_timestamp: Ez a függvény kivétellel meghiúsul, ha a bemeneti sztring nem elemezhető, vagy a mintasztring érvénytelen.

SQL-operátorok

Egyes SQL-operátorok viselkedése az ANSI módban (spark.sql.ansi.enabled=true) eltérő lehet.

  • array_col[index]: Ez az operátor érvénytelen indexek ArrayIndexOutOfBoundsException használata esetén dob.
  • map_col[key]: Ez az operátor dob, NoSuchElementException ha a kulcs nem létezik a térképen.
  • CAST(string_col AS TIMESTAMP): Ez az operátor kivétellel meghiúsul, ha a bemeneti sztring nem elemezhető.
  • CAST(string_col AS DATE): Ez az operátor kivétellel meghiúsul, ha a bemeneti sztring nem elemezhető.

Hasznos függvények AZ ANSI módhoz

Ha az ANSI mód be van kapcsolva, kivételeket ad az érvénytelen műveletekhez. Az alábbi SQL-függvényekkel letilthatja az ilyen kivételeket.

  • try_cast: megegyezik azzal a kivétellel CAST, hogy a futásidejű hiba kivétele helyett eredményt ad vissza NULL .
  • try_add: megegyezik a hozzáadási operátorral +, azzal a kivétellel, hogy az eredményt adja vissza NULL ahelyett, hogy kivételt ad az integrálérték-túlcsordulásra.
  • try_divide: megegyezik az osztás operátorával /, azzal a kivétellel, hogy a 0 osztása helyett eredményt ad vissza NULL .

SQL-kulcsszavak

Ha spark.sql.ansi.enabled igaz, a Spark SQL az ANSI módelemzőt fogja használni. Ebben a módban a Spark SQL kétféle kulcsszóval rendelkezik:

  • Fenntartott kulcsszavak: Fenntartott kulcsszavak, amelyek nem használhatók tábla, nézet, oszlop, függvény, alias stb. azonosítójaként.
  • Nem fenntartott kulcsszavak: Azok a kulcsszavak, amelyek különleges jelentéssel bírnak, csak bizonyos kontextusokban, és más környezetekben is használhatók azonosítóként. Például egy parancs, EXPLAIN SELECT ... de a EXPLAIN más helyeken is használható azonosítóként.

Ha az ANSI mód le van tiltva, a Spark SQL kétféle kulcsszóval rendelkezik:

  • Nem fenntartott kulcsszavak: Ugyanaz a definíció, mint az ANSI-mód engedélyezésekor.
  • Szigorúan nem fenntartott kulcsszavak: A nem fenntartott kulcsszavak szigorú verziója, amely nem használható táblaaliasként.

Alapértelmezés szerint spark.sql.ansi.enabled hamis.

Az alábbi lista a Spark SQL összes kulcsszóját tartalmazza.

Kulcsszó Spark SQL ANSI mód Spark SQL alapértelmezett mód SQL-2016
HOZZÁADÁS nem fenntartott nem fenntartott nem fenntartott
UTÁNA nem fenntartott nem fenntartott nem fenntartott
ALL (összes) tartózkodó nem fenntartott tartózkodó
ALTER nem fenntartott nem fenntartott tartózkodó
MINDIG nem fenntartott nem fenntartott nem fenntartott
ELEMEZ nem fenntartott nem fenntartott nem fenntartott
ÉS tartózkodó nem fenntartott tartózkodó
ANTI nem fenntartott szigorúan nem fenntartott nem fenntartott
BÁRMELY tartózkodó nem fenntartott tartózkodó
ARCHÍVUM nem fenntartott nem fenntartott nem fenntartott
TÖMB nem fenntartott nem fenntartott tartózkodó
AS tartózkodó nem fenntartott tartózkodó
ASC nem fenntartott nem fenntartott nem fenntartott
AT nem fenntartott nem fenntartott tartózkodó
FELHATALMAZÁS tartózkodó nem fenntartott tartózkodó
BETWEEN nem fenntartott nem fenntartott tartózkodó
MINDKETTŐ tartózkodó nem fenntartott tartózkodó
VÖDÖR nem fenntartott nem fenntartott nem fenntartott
VÖDÖR nem fenntartott nem fenntartott nem fenntartott
BY nem fenntartott nem fenntartott tartózkodó
GYORSÍTÓTÁR nem fenntartott nem fenntartott nem fenntartott
VÍZESÉS nem fenntartott nem fenntartott nem fenntartott
CASE tartózkodó nem fenntartott tartózkodó
CAST tartózkodó nem fenntartott tartózkodó
VÁLTOZÁS nem fenntartott nem fenntartott nem fenntartott
ELLENŐRIZ tartózkodó nem fenntartott tartózkodó
VILÁGOS nem fenntartott nem fenntartott nem fenntartott
FÜRT nem fenntartott nem fenntartott nem fenntartott
FÜRTÖZÖTT nem fenntartott nem fenntartott nem fenntartott
CODEGEN nem fenntartott nem fenntartott nem fenntartott
EGYEZTET tartózkodó nem fenntartott tartózkodó
GYŰJTEMÉNY nem fenntartott nem fenntartott nem fenntartott
OSZLOP tartózkodó nem fenntartott tartózkodó
OSZLOPOK nem fenntartott nem fenntartott nem fenntartott
MEGJEGYZÉST nem fenntartott nem fenntartott nem fenntartott
ELKÖVET nem fenntartott nem fenntartott tartózkodó
KOMPAKT nem fenntartott nem fenntartott nem fenntartott
TÖMÖRÍTÉSEK nem fenntartott nem fenntartott nem fenntartott
SZÁMÍTÁS nem fenntartott nem fenntartott nem fenntartott
ÖSSZEKAPCSOL nem fenntartott nem fenntartott nem fenntartott
KÉNYSZER tartózkodó nem fenntartott tartózkodó
KÖLTSÉGEK nem fenntartott nem fenntartott nem fenntartott
CREATE tartózkodó nem fenntartott tartózkodó
KERESZT tartózkodó szigorúan nem fenntartott tartózkodó
KOCKA nem fenntartott nem fenntartott tartózkodó
AKTUÁLIS nem fenntartott nem fenntartott tartózkodó
CURRENT_DATE tartózkodó nem fenntartott tartózkodó
CURRENT_TIME tartózkodó nem fenntartott tartózkodó
CURRENT_TIMESTAMP tartózkodó nem fenntartott tartózkodó
CURRENT_USER tartózkodó nem fenntartott tartózkodó
ADATOK nem fenntartott nem fenntartott nem fenntartott
ADATBÁZIS nem fenntartott nem fenntartott nem fenntartott
ADATBÁZIS-KEZELÉS nem fenntartott nem fenntartott nem fenntartott
DAY nem fenntartott nem fenntartott nem fenntartott
DBPROPERTIES nem fenntartott nem fenntartott nem fenntartott
MEGHATÁROZOTT nem fenntartott nem fenntartott nem fenntartott
Törlés... nem fenntartott nem fenntartott tartózkodó
TAGOLT nem fenntartott nem fenntartott nem fenntartott
DESC nem fenntartott nem fenntartott nem fenntartott
LEÍR nem fenntartott nem fenntartott tartózkodó
DFS nem fenntartott nem fenntartott nem fenntartott
KÖNYVTÁRAK nem fenntartott nem fenntartott nem fenntartott
KÖNYVTÁR nem fenntartott nem fenntartott nem fenntartott
KÜLÖNBÖZŐ tartózkodó nem fenntartott tartózkodó
ELOSZT nem fenntartott nem fenntartott nem fenntartott
DIV nem fenntartott nem fenntartott nem kulcsszó
DROP nem fenntartott nem fenntartott tartózkodó
MÁS tartózkodó nem fenntartott tartózkodó
VÉG tartózkodó nem fenntartott tartózkodó
MENEKÜLÉS tartózkodó nem fenntartott tartózkodó
SZÖKÖTT nem fenntartott nem fenntartott nem fenntartott
KIVÉVE tartózkodó szigorúan nem fenntartott tartózkodó
TŐZSDE nem fenntartott nem fenntartott nem fenntartott
LÉTEZIK nem fenntartott nem fenntartott tartózkodó
EXPLAIN nem fenntartott nem fenntartott nem fenntartott
KIVITEL nem fenntartott nem fenntartott nem fenntartott
EXTENDED nem fenntartott nem fenntartott nem fenntartott
KÜLSŐ nem fenntartott nem fenntartott tartózkodó
KIVONAT nem fenntartott nem fenntartott tartózkodó
HAMIS tartózkodó nem fenntartott tartózkodó
CSEL tartózkodó nem fenntartott tartózkodó
MEZŐK nem fenntartott nem fenntartott nem fenntartott
SZŰRŐ tartózkodó nem fenntartott tartózkodó
FILEFORMAT nem fenntartott nem fenntartott nem fenntartott
FIRST nem fenntartott nem fenntartott nem fenntartott
FN nem fenntartott nem fenntartott nem fenntartott
ALÁBBI nem fenntartott nem fenntartott nem fenntartott
RÉSZÉRE tartózkodó nem fenntartott tartózkodó
KÜLFÖLDI tartózkodó nem fenntartott tartózkodó
FORMÁTUM nem fenntartott nem fenntartott nem fenntartott
FORMÁZOTT nem fenntartott nem fenntartott nem fenntartott
FROM tartózkodó nem fenntartott tartózkodó
TELE tartózkodó szigorúan nem fenntartott tartózkodó
FUNKCIÓ nem fenntartott nem fenntartott tartózkodó
FÜGGVÉNYEK nem fenntartott nem fenntartott nem fenntartott
GENERÁLT nem fenntartott nem fenntartott nem fenntartott
GLOBÁLIS nem fenntartott nem fenntartott tartózkodó
GRANT tartózkodó nem fenntartott tartózkodó
TÁMOGATÁSOK nem fenntartott nem fenntartott nem fenntartott
CSOPORT tartózkodó nem fenntartott tartózkodó
CSOPORTOSÍTÁS nem fenntartott nem fenntartott tartózkodó
MIUTÁN tartózkodó nem fenntartott tartózkodó
ÓRA nem fenntartott nem fenntartott nem fenntartott
IF nem fenntartott nem fenntartott nem kulcsszó
IGNORE nem fenntartott nem fenntartott nem fenntartott
IMPORTÁL nem fenntartott nem fenntartott nem fenntartott
IN tartózkodó nem fenntartott tartózkodó
INDEX nem fenntartott nem fenntartott nem fenntartott
INDEXEK nem fenntartott nem fenntartott nem fenntartott
BELSŐ tartózkodó szigorúan nem fenntartott tartózkodó
INPATH nem fenntartott nem fenntartott nem fenntartott
INPUTFORMAT nem fenntartott nem fenntartott nem fenntartott
INSERT nem fenntartott nem fenntartott tartózkodó
METSZET tartózkodó szigorúan nem fenntartott tartózkodó
INTERVALLUM nem fenntartott nem fenntartott tartózkodó
INTO tartózkodó nem fenntartott tartózkodó
IS tartózkodó nem fenntartott tartózkodó
ELEMEK nem fenntartott nem fenntartott nem fenntartott
JOIN tartózkodó szigorúan nem fenntartott tartózkodó
KULCS nem fenntartott nem fenntartott nem fenntartott
KULCSOK nem fenntartott nem fenntartott nem fenntartott
LAST nem fenntartott nem fenntartott nem fenntartott
OLDALSÓ tartózkodó szigorúan nem fenntartott tartózkodó
LUSTA nem fenntartott nem fenntartott nem fenntartott
VEZETŐ tartózkodó nem fenntartott tartózkodó
LEFT tartózkodó szigorúan nem fenntartott tartózkodó
SZERET nem fenntartott nem fenntartott tartózkodó
ILIKE nem fenntartott nem fenntartott nem fenntartott
KORLÁT nem fenntartott nem fenntartott nem fenntartott
SOROK nem fenntartott nem fenntartott nem fenntartott
LISTA nem fenntartott nem fenntartott nem fenntartott
RAKOMÁNY nem fenntartott nem fenntartott nem fenntartott
HELYI nem fenntartott nem fenntartott tartózkodó
HELY nem fenntartott nem fenntartott nem fenntartott
ZÁR nem fenntartott nem fenntartott nem fenntartott
ZÁRAK nem fenntartott nem fenntartott nem fenntartott
LOGIKUS nem fenntartott nem fenntartott nem fenntartott
MAKRÓ nem fenntartott nem fenntartott nem fenntartott
TÉRKÉP nem fenntartott nem fenntartott nem fenntartott
KIEGYENLÍTETT nem fenntartott nem fenntartott nem fenntartott
EGYESÜL nem fenntartott nem fenntartott nem fenntartott
PERC nem fenntartott nem fenntartott nem fenntartott
MÍNUSZ nem fenntartott szigorúan nem fenntartott nem fenntartott
MONTH nem fenntartott nem fenntartott nem fenntartott
MSCK nem fenntartott nem fenntartott nem fenntartott
NÉVTÉR nem fenntartott nem fenntartott nem fenntartott
NÉVTEREK nem fenntartott nem fenntartott nem fenntartott
TERMÉSZETES tartózkodó szigorúan nem fenntartott tartózkodó
NEM nem fenntartott nem fenntartott tartózkodó
NEM tartózkodó nem fenntartott tartózkodó
NULL tartózkodó nem fenntartott tartózkodó
NULLÉRTÉKEK nem fenntartott nem fenntartott nem fenntartott
OF nem fenntartott nem fenntartott tartózkodó
ON tartózkodó szigorúan nem fenntartott tartózkodó
CSAK tartózkodó nem fenntartott tartózkodó
OPTION nem fenntartott nem fenntartott nem fenntartott
BEÁLLÍTÁSOK nem fenntartott nem fenntartott nem fenntartott
VAGY tartózkodó nem fenntartott tartózkodó
MEGRENDELÉS tartózkodó nem fenntartott tartózkodó
KI nem fenntartott nem fenntartott tartózkodó
KÜLSŐ tartózkodó nem fenntartott tartózkodó
OUTPUTFORMAT nem fenntartott nem fenntartott nem fenntartott
FÖLÖTT nem fenntartott nem fenntartott nem fenntartott
ÁTFEDÉSEK tartózkodó nem fenntartott tartózkodó
KIS TERÍTŐ nem fenntartott nem fenntartott nem fenntartott
FELÜLÍRJA nem fenntartott nem fenntartott nem fenntartott
PARTÍCIÓ nem fenntartott nem fenntartott tartózkodó
PARTICIONÁLT nem fenntartott nem fenntartott nem fenntartott
PARTÍCIÓK nem fenntartott nem fenntartott nem fenntartott
SZÁZALÉK nem fenntartott nem fenntartott nem fenntartott
FŐTÁMASZ nem fenntartott nem fenntartott nem fenntartott
FORGALOMBA nem fenntartott nem fenntartott nem fenntartott
POZÍCIÓ nem fenntartott nem fenntartott tartózkodó
ELŐZŐ nem fenntartott nem fenntartott nem fenntartott
Elsődleges tartózkodó nem fenntartott tartózkodó
MEGBÍZÓK nem fenntartott nem fenntartott nem fenntartott
TULAJDONSÁGOK nem fenntartott nem fenntartott nem fenntartott
PURGE nem fenntartott nem fenntartott nem fenntartott
MINŐSÍT tartózkodó nem fenntartott tartózkodó
LEKÉRDEZÉS nem fenntartott nem fenntartott nem fenntartott
TARTOMÁNY nem fenntartott nem fenntartott tartózkodó
CÍMZETT nem fenntartott nem fenntartott nem fenntartott
CÍMZETTEK nem fenntartott nem fenntartott nem fenntartott
RECORDREADER nem fenntartott nem fenntartott nem fenntartott
REKORDÍRÓ nem fenntartott nem fenntartott nem fenntartott
VISSZASZEREZ nem fenntartott nem fenntartott nem fenntartott
CSÖKKENT nem fenntartott nem fenntartott nem fenntartott
HIVATKOZÁSOK tartózkodó nem fenntartott tartózkodó
REFRESH nem fenntartott nem fenntartott nem fenntartott
REGEXP nem fenntartott nem fenntartott nem kulcsszó
ELTÁVOLÍTÁS nem fenntartott nem fenntartott nem fenntartott
RENAME nem fenntartott nem fenntartott nem fenntartott
JAVÍTÁS nem fenntartott nem fenntartott nem fenntartott
REPLACE nem fenntartott nem fenntartott nem fenntartott
RESET nem fenntartott nem fenntartott nem fenntartott
TISZTELET nem fenntartott nem fenntartott nem fenntartott
KORLÁTOZ nem fenntartott nem fenntartott nem fenntartott
REVOKE nem fenntartott nem fenntartott tartózkodó
RIGHT tartózkodó szigorúan nem fenntartott tartózkodó
RLIKE nem fenntartott nem fenntartott nem fenntartott
SZEREPKÖR nem fenntartott nem fenntartott nem fenntartott
SZEREPKÖRÖK nem fenntartott nem fenntartott nem fenntartott
VISSZAGURÍTÁS nem fenntartott nem fenntartott tartózkodó
ÖSSZESÍTÉS nem fenntartott nem fenntartott tartózkodó
SOR nem fenntartott nem fenntartott tartózkodó
SOROK nem fenntartott nem fenntartott tartózkodó
SÉMA nem fenntartott nem fenntartott nem fenntartott
SÉMÁK nem fenntartott nem fenntartott nem kulcsszó
MÁSODIK nem fenntartott nem fenntartott nem fenntartott
SELECT tartózkodó nem fenntartott tartózkodó
FÉLIG nem fenntartott szigorúan nem fenntartott nem fenntartott
ELVÁLASZTOTT nem fenntartott nem fenntartott nem fenntartott
SERDE nem fenntartott nem fenntartott nem fenntartott
SERDEPROPERTIES nem fenntartott nem fenntartott nem fenntartott
SESSION_USER tartózkodó nem fenntartott tartózkodó
SET nem fenntartott nem fenntartott tartózkodó
KÉSZLETEK nem fenntartott nem fenntartott nem fenntartott
MEGOSZTÁS nem fenntartott nem fenntartott nem fenntartott
RÉSZVÉNYEK nem fenntartott nem fenntartott nem fenntartott
MUTAT nem fenntartott nem fenntartott nem fenntartott
FERDE nem fenntartott nem fenntartott nem fenntartott
NÉHÁNY tartózkodó nem fenntartott tartózkodó
FAJTA nem fenntartott nem fenntartott nem fenntartott
RENDEZVE nem fenntartott nem fenntartott nem fenntartott
INDÍTÁS nem fenntartott nem fenntartott tartózkodó
STATISZTIKA nem fenntartott nem fenntartott nem fenntartott
TÁROLT nem fenntartott nem fenntartott nem fenntartott
RÉTEGZŐDIK nem fenntartott nem fenntartott nem fenntartott
STRUCT nem fenntartott nem fenntartott nem fenntartott
SUBSTR nem fenntartott nem fenntartott nem fenntartott
SUBSTRING nem fenntartott nem fenntartott nem fenntartott
SZINKRONIZÁL nem fenntartott nem fenntartott nem fenntartott
TÁBLÁZAT tartózkodó nem fenntartott tartózkodó
TÁBLÁK nem fenntartott nem fenntartott nem fenntartott
TABLESAMPLE nem fenntartott nem fenntartott tartózkodó
TBLPROPERTIES nem fenntartott nem fenntartott nem fenntartott
TEMP nem fenntartott nem fenntartott nem kulcsszó
IDEIGLENES nem fenntartott nem fenntartott nem fenntartott
MEGSZŰNIK nem fenntartott nem fenntartott nem fenntartott
AKKOR tartózkodó nem fenntartott tartózkodó
TIME tartózkodó nem fenntartott tartózkodó
TO tartózkodó nem fenntartott tartózkodó
ÉRINT nem fenntartott nem fenntartott nem fenntartott
ZÁRÓ tartózkodó nem fenntartott tartózkodó
TRANZAKCIÓ nem fenntartott nem fenntartott nem fenntartott
TRANZAKCIÓK nem fenntartott nem fenntartott nem fenntartott
ÁTALAKÍT nem fenntartott nem fenntartott nem fenntartott
TRIM nem fenntartott nem fenntartott nem fenntartott
IGAZ nem fenntartott nem fenntartott tartózkodó
MEGCSONKÍT nem fenntartott nem fenntartott tartózkodó
TRY_CAST nem fenntartott nem fenntartott nem fenntartott
TÍPUS nem fenntartott nem fenntartott nem fenntartott
ARCHIVÁLATLAN nem fenntartott nem fenntartott nem fenntartott
KORLÁTOS nem fenntartott nem fenntartott nem fenntartott
UNCACHE nem fenntartott nem fenntartott nem fenntartott
UNIÓ tartózkodó szigorúan nem fenntartott tartózkodó
EGYEDÜLÁLLÓ tartózkodó nem fenntartott tartózkodó
ISMERETLEN tartózkodó nem fenntartott tartózkodó
KINYIT nem fenntartott nem fenntartott nem fenntartott
FOGLALATBÓL KIVESZ nem fenntartott nem fenntartott nem fenntartott
UPDATE nem fenntartott nem fenntartott tartózkodó
USE nem fenntartott nem fenntartott nem fenntartott
FELHASZNÁLÓ tartózkodó nem fenntartott tartózkodó
HASZNÁL tartózkodó szigorúan nem fenntartott tartózkodó
ÉRTÉKREND nem fenntartott nem fenntartott tartózkodó
MEGTEKINTÉS nem fenntartott nem fenntartott nem fenntartott
KILÁTÁS NYÍLIK nem fenntartott nem fenntartott nem fenntartott
Amikor… tartózkodó nem fenntartott tartózkodó
WHERE tartózkodó nem fenntartott tartózkodó
ABLAK nem fenntartott nem fenntartott tartózkodó
WITH tartózkodó nem fenntartott tartózkodó
YEAR nem fenntartott nem fenntartott nem fenntartott
ÖVEZET nem fenntartott nem fenntartott nem fenntartott