Databricks Runtime'da ANSI uyumluluğu
Şunlar için geçerlidir: Databricks Runtime
Bu makalede Databricks Runtime'da ANSI uyumluluğu açıklanmaktadır. Databricks SQL'de ANSI modu için bkz . ANSI_MODE.
Spark SQL,ANSI SQL standardıyla uyumluluğu desteklemek için iki seçeneğe sahiptir: spark.sql.ansi.enabled
ve spark.sql.storeAssignmentPolicy
.
spark.sql.ansi.enabled
olarak ayarlandığında true
Spark SQL, Hive uyumlu olmak yerine ANSI uyumlu bir diyalekt kullanır. Örneğin Spark, SQL işlecine/işlevine yapılan girişler geçersizse null sonuçlar döndürmek yerine çalışma zamanında bir özel durum oluşturur. Bazı ANSI diyalekt özellikleri doğrudan ANSI SQL standardına ait olmayabilir, ancak davranışları ANSI SQL'in stiliyle uyumludur.
Ayrıca, Spark SQL'in tablodaki satırları depolarken örtük atama davranışlarını denetlemeye yönelik bağımsız bir seçeneği vardır. Atama davranışları, standart depolama atama kuralları olarak tanımlanır.
spark.sql.storeAssignmentPolicy
olarak ayarlandığında ANSI
Spark SQL, ANSI deposu atama kurallarına uyar. Varsayılan değeri ANSI
olduğundan, yapılandırma varsayılan olarak devre dışı bırakıldığından bu ayrı bir yapılandırmadır spark.sql.ansi.enabled
.
Aşağıdaki tabloda davranışı özetlemektedir:
Özellik Adı | Varsayılan | Anlamı |
---|---|---|
spark.sql.ansi.enabled |
yanlış | Doğru olduğunda Spark, ANSI SQL belirtimine uymayı dener: * Tamsayı veya ondalık alandaki herhangi bir işlemde taşma oluşursa çalışma zamanı özel durumu oluşturur. * ANSI SQL'in ayrılmış anahtar sözcüklerini SQL ayrıştırıcısında tanımlayıcı olarak kullanmayı yasaklar. |
spark.sql.storeAssignmentPolicy |
ANSI | Spark, bir değeri farklı bir veri türüne sahip bir sütunda depolarken tür dönüştürme gerçekleştirir. Tür zorlama kuralları için üç ilke vardır: ANSI , legacy ve strict .* ANSI : Spark, ANSI SQL'e göre tür zorlaması gerçekleştirir. Pratikte davranış çoğunlukla PostgreSQL ile aynıdır. Dizeyi int'e veya çiftten boole'ye dönüştürme gibi bazı makul olmayan tür dönüştürmelerine izin vermiyor.* legacy : Spark, çok gevşek olan geçerli bir Atama olduğu sürece tür zorlamasına izin verir. Örneğin, dizeyi int veya double'ı boole değerine dönüştürmeye izin verilir. Ayrıca Spark 2.x'teki tek davranıştır ve Hive ile uyumludur.* strict : Spark, tür zorlamasında olası duyarlık kaybına veya veri kesilmesine izin vermez; örneğin, çifti int veya ondalıktan çifte dönüştürmeye izin verilmez. |
Aşağıdaki alt bölümler, ANSI modu etkinleştirildiğinde aritmetik işlemlerde, tür dönüştürmelerinde ve SQL ayrıştırmada davranış değişiklikleri sunar. Spark SQL'de tür dönüştürmeleri için üç tür vardır ve bu makale bunları birer birer tanıtır: atama, mağaza ataması ve tür zorlaması.
Aritmetik işlemler
Spark SQL'de, sayısal türlerde gerçekleştirilen aritmetik işlemler (ondalık hariç) taşmalar için varsayılan olarak denetlenmemektedir.
Bu, bir işlemin taşmalara neden olması durumunda sonucun Java veya Scala programındaki ilgili işlemle aynı olduğu anlamına gelir (Örneğin, 2 tamsayının toplamı temsil edilebilir maksimum değerden yüksekse, sonuç negatif bir sayıdır). Öte yandan, Spark SQL ondalık taşmalar için null döndürür.
spark.sql.ansi.enabled
olarak ayarlandığında true
ve sayısal ve aralıklı aritmetik işlemlerde taşma oluştuğunda, çalışma zamanında aritmetik bir özel durum oluşturur.
-- `spark.sql.ansi.enabled=true`
> SELECT 2147483647 + 1;
error: integer overflow
-- `spark.sql.ansi.enabled=false`
> SELECT 2147483647 + 1;
-2147483648
Cast
spark.sql.ansi.enabled
olarak ayarlandığındatrue
, söz dizimine göre CAST
açık atama, bir dizeden tamsayıya dönüştürmeler gibi standartta tanımlanan geçersiz atama desenleri için bir çalışma zamanı özel durumu oluşturur.
CAST
Spark ANSI modunun yan tümcesi, ISO/IEC 9075-2:2011 Bilgi teknolojisi — Veritabanı dilleri - SQL — Bölüm 2: Temel (SQL/Foundation)'da bölüm 6.13 "atama belirtimi" söz dizimi kurallarına uyar, ancak ANSI standardına göre izin verilmeyen aşağıdaki basit tür dönüştürmelerine özel olarak izin verir:
- NumericType <=> BooleanType
- StringType <=> BinaryType
Bir ifadedeki CAST
kaynak ve hedef veri türünün geçerli birleşimleri aşağıdaki tablo tarafından verilmiştir.
"Y", birleşimin kısıtlama olmadan söz dizimsel olarak geçerli olduğunu ve "N" birleşimin geçerli olmadığını gösterir.
SourceTarget | Sayısal | String | Tarih | Zaman damgası | Aralık | Boolean | İkilik | Dizi | Harita | Yapı |
---|---|---|---|---|---|---|---|---|---|---|
Sayısal | Y | Y | N | N | N | Y | N | N | N | N |
String | Y | Y | Y | Y | Y | Y | Y | N | N | N |
Tarih | N | Y | Y | Y | N | N | N | N | N | N |
Zaman damgası | N | Y | Y | Y | N | N | N | N | N | N |
Aralık | N | Y | N | N | Y | N | N | N | N | N |
Boolean | Y | Y | N | N | N | Y | N | N | N | N |
İkilik | Y | N | N | N | N | N | Y | N | N | N |
Dizi | N | N | N | N | N | N | N | Y | N | N |
Harita | N | N | N | N | N | N | N | N | Y | N |
Yapı | N | N | N | N | N | N | N | N | N | Y |
-- 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
Mağaza ataması
Ayar spark.sql.storeAssignmentPolicy
varsayılan olarak olarak ayarlanır ANSI
. Bu ayarda, kaynak değerlerin veri türleri hedef sütun türleriyle eşleşmediğinde Spark SQL, INSERT deyimine otomatik olarak ANSI CAST yan tümceleri ekler.
Spark, bu ilke altında tablo ekleme sırasında geçersiz atamaları denetler ve reddeder ve veri kalitesini sağlamak için bir özel durum oluşturur. Başka bir deyişle, tür uyuşmazlığı nedeniyle ekleme girişimi başarısız olursa, tabloya kısmen herhangi bir veri yazılmasıyla sonuçlanmaz.
Örnekler:
-- 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
Bu örnekler Spark SQL'in uyumsuz verilerin eklenmesini önleyerek veri bütünlüğünü korumasını gösterir.
spark.sql.storeAssignmentPolicy
olarak ayarlandığında LEGACY
Spark SQL, Spark 2.x'e kadar yaygın olan davranışa geri döner. Bu modda, ANSI CAST kullanmak yerine eski CAST işlemlerini uygular. Bu ilkenin altında, tablo eklemeleri sırasında geçersiz atamalar, özel durum oluşturma yerine NULL değerlerin veya yanlış değerlerin eklenmesiyle sonuçlanır.
Örnekler:
-- 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)
Tür zorlaması
Tür Yükseltme ve Öncelik
spark.sql.ansi.enabled
olarak ayarlandığında true
Spark SQL, veri türleri arasındaki çakışmaların nasıl çözüldüğünü yöneten çeşitli kurallar kullanır.
Bu çakışma çözümünün merkezinde, belirli bir veri türünün değerlerinin örtük olarak başka bir veri türüne yükseltilip yükseltilemeyeceğini tanımlayan Tür Önceliği Listesi yer alır.
Veri türü | öncelik listesi (en dardan en genişe) |
---|---|
Bayt | Bayt - Kısa -> Int -> Uzun -> Ondalık -> Kayan* -> Çift> |
Kısa | Kısa -> Int -> Uzun -> Ondalık-> Kayan* -> Çift |
Int | Int -> Uzun -> Ondalık -> Kayan* -> Çift |
Uzun | Uzun -> Ondalık -> Kayan* -> Çift |
Ondalık | Ondalık -> Kayan* -> Çift |
Satışa Arz | Float -> Çift |
Çift | Çift |
Tarih | Tarih -> Zaman Damgası |
Zaman damgası | Zaman damgası |
String | String |
İkilik | İkilik |
Boolean | Boolean |
Aralık | Aralık |
Harita | Harita** |
Dizi | Dizi** |
Yapı | Yapı** |
- En az yaygın tür çözümlemesi için duyarlık kaybını önlemek için kayan nokta atlanır.
** Karmaşık bir tür için öncelik kuralı, bileşen öğelerine özyinelemeli olarak uygulanır.
Dize türü ve yazılmamış NULL için özel kurallar geçerlidir. Null başka bir türe yükseltilebilirken, Dize herhangi bir basit veri türüne yükseltilebilir.
Bu, öncelik listesinin yönlendirilmiş ağaç olarak grafiksel bir gösterimidir:
En Az Ortak Tür Çözümlemesi
Bir tür kümesindeki en az yaygın tür, tür kümesinin tüm öğeleri tarafından öncelik listesinden ulaşılabilen en dar türdür.
Aşağıdakiler için en az yaygın tür çözümlemesi kullanılır:
- Türün parametresini bekleyen bir işlevin daha dar bir tür bağımsız değişkeni kullanılarak çağrılıp çağrılamayacağına karar verin.
- Birleşim, en az veya en büyük gibi birden çok parametre için paylaşılan bir bağımsız değişken türü bekleyen işlevler için bağımsız değişken türünü türetin.
- Aritmetik işlemler veya karşılaştırmalar gibi işleçler için işlenen türlerini türetin.
- Büyük/küçük harf ifadesi gibi ifadeler için sonuç türünü türetin.
- Dizi ve eşleme oluşturucuları için öğe, anahtar veya değer türlerini türetin.
En az ortak tür FLOAT olarak çözümlenirse özel kurallar uygulanır. Kayan tür değerleriyle, türlerden herhangi biri INT, BIGINT veya DECIMAL ise, olası basamak kaybını önlemek için en az ortak tür DOUBLE'a gönderilir.
-- 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 işlevleri
Bazı SQL işlevlerinin davranışı ANSI modu (spark.sql.ansi.enabled=true
) altında farklı olabilir.
size
: Bu işlev ANSI modunda null giriş için null döndürür.element_at
:- Bu işlev geçersiz dizinler
ArrayIndexOutOfBoundsException
kullanılıyorsa oluşturur. - Bu işlev, haritada anahtar yoksa oluşturur
NoSuchElementException
.
- Bu işlev geçersiz dizinler
elt
: Bu işlev geçersiz dizinlerArrayIndexOutOfBoundsException
kullanılıyorsa oluşturur.make_date
: Sonuç tarihi geçersizse bu işlev bir özel durumla başarısız olur.make_timestamp
: Sonuç zaman damgası geçersizse bu işlev bir özel durumla başarısız olur.make_interval
: Sonuç aralığı geçersizse bu işlev bir özel durumla başarısız olur.next_day
: Giriş geçerli bir haftanın günü değilse bu işlev oluştururIllegalArgumentException
.parse_url
: Giriş dizesi geçerli bir URL değilse bu işlev oluştururIllegalArgumentException
.to_date
: Giriş dizesi ayrıştırılamıyorsa veya desen dizesi geçersizse bu işlev bir özel durumla başarısız olur.to_timestamp
: Giriş dizesi ayrıştırılamıyorsa veya desen dizesi geçersizse bu işlev bir özel durumla başarısız olur.to_unix_timestamp
: Giriş dizesi ayrıştırılamıyorsa veya desen dizesi geçersizse bu işlev bir özel durumla başarısız olur.unix_timestamp
: Giriş dizesi ayrıştırılamıyorsa veya desen dizesi geçersizse bu işlev bir özel durumla başarısız olur.
SQL işleçleri
Bazı SQL işleçlerinin davranışı ANSI modu (spark.sql.ansi.enabled=true
) altında farklı olabilir.
array_col[index]
: Bu işleç geçersiz dizinlerArrayIndexOutOfBoundsException
kullanılıyorsa oluşturur.map_col[key]
: Bu işleç, anahtar haritada yoksa atarNoSuchElementException
.CAST(string_col AS TIMESTAMP)
: Giriş dizesi ayrıştırılamıyorsa bu işleç özel durumla başarısız olur.CAST(string_col AS DATE)
: Giriş dizesi ayrıştırılamıyorsa bu işleç özel durumla başarısız olur.
ANSI Modu için Yararlı İşlevler
ANSI modu açık olduğunda, geçersiz işlemler için özel durumlar oluşturur. Bu tür özel durumları engellemek için aşağıdaki SQL işlevlerini kullanabilirsiniz.
try_cast
: ile aynıdırCAST
, ancak çalışma zamanı hatasında özel durum oluşturmak yerine sonuç döndürürNULL
.try_add
: add işleciyle+
aynıdır, ancak tam sayı değeri taşmasında bir özel durum oluşturmak yerine sonuç döndürürNULL
.try_divide
: bölme işleciyle/
aynıdır, ancak 0'ı bölmek için bir özel durum oluşturmak yerine sonuç döndürürNULL
.
SQL anahtar sözcükleri
Doğru olduğunda spark.sql.ansi.enabled
Spark SQL ANSI modu ayrıştırıcısını kullanır.
Bu modda Spark SQL'in iki tür anahtar sözcüğü vardır:
- Ayrılmış anahtar sözcükler: Ayrılmış anahtar sözcüklerdir ve tablo, görünüm, sütun, işlev, diğer ad vb. için tanımlayıcı olarak kullanılamaz.
- Ayrılmış olmayan anahtar sözcükler: Yalnızca belirli bağlamlarda özel bir anlamı olan ve diğer bağlamlarda tanımlayıcı olarak kullanılabilen anahtar sözcükler. Örneğin,
EXPLAIN SELECT ...
bir komut olsa da EXPLAIN başka yerlerde tanımlayıcı olarak kullanılabilir.
ANSI modu devre dışı bırakıldığında Spark SQL'in iki tür anahtar sözcüğü vardır:
- Ayrılmış olmayan anahtar sözcükler: ANSI modu etkinleştirildiğinde kullanılanla aynı tanım.
- Ayrılmış olmayan katı anahtar sözcükler: Tablo diğer adı olarak kullanılamayan, ayrılmış olmayan anahtar sözcüklerin katı bir sürümü.
Varsayılan olarak spark.sql.ansi.enabled
false'tur.
Spark SQL'deki tüm anahtar sözcüklerin listesi aşağıdadır.
Anahtar sözcük | Spark SQL ANSI Modu | Spark SQL Varsayılan Modu | SQL-2016 |
---|---|---|---|
ADD | ayrılmamış | ayrılmamış | ayrılmamış |
SONRA | ayrılmamış | ayrılmamış | ayrılmamış |
TÜMÜ | Saklı -dır | ayrılmamış | Saklı -dır |
DEĞİŞTİR | ayrılmamış | ayrılmamış | Saklı -dır |
HER ZAMAN | ayrılmamış | ayrılmamış | ayrılmamış |
ANALİZ | ayrılmamış | ayrılmamış | ayrılmamış |
AND | Saklı -dır | ayrılmamış | Saklı -dır |
ANTİ | ayrılmamış | kesin olarak ayrılmamış | ayrılmamış |
HERHANGİ BİRİ | Saklı -dır | ayrılmamış | Saklı -dır |
ARŞİV | ayrılmamış | ayrılmamış | ayrılmamış |
DİZİ | ayrılmamış | ayrılmamış | Saklı -dır |
AS | Saklı -dır | ayrılmamış | Saklı -dır |
ASC | ayrılmamış | ayrılmamış | ayrılmamış |
AT | ayrılmamış | ayrılmamış | Saklı -dır |
YETKİLENDİRME | Saklı -dır | ayrılmamış | Saklı -dır |
BETWEEN | ayrılmamış | ayrılmamış | Saklı -dır |
HEM | Saklı -dır | ayrılmamış | Saklı -dır |
KOVA | ayrılmamış | ayrılmamış | ayrılmamış |
KOVA | ayrılmamış | ayrılmamış | ayrılmamış |
BY | ayrılmamış | ayrılmamış | Saklı -dır |
ÖNBELLEK | ayrılmamış | ayrılmamış | ayrılmamış |
CASCADE | ayrılmamış | ayrılmamış | ayrılmamış |
CASE | Saklı -dır | ayrılmamış | Saklı -dır |
CAST | Saklı -dır | ayrılmamış | Saklı -dır |
DEĞİŞTİRMEK | ayrılmamış | ayrılmamış | ayrılmamış |
KONTROL | Saklı -dır | ayrılmamış | Saklı -dır |
TEMİZLEYİN | ayrılmamış | ayrılmamış | ayrılmamış |
KÜME | ayrılmamış | ayrılmamış | ayrılmamış |
CLUSTERED | ayrılmamış | ayrılmamış | ayrılmamış |
CODEGEN | ayrılmamış | ayrılmamış | ayrılmamış |
COLLATE | Saklı -dır | ayrılmamış | Saklı -dır |
COLLECTION | ayrılmamış | ayrılmamış | ayrılmamış |
SÜTUN | Saklı -dır | ayrılmamış | Saklı -dır |
SÜTUN | ayrılmamış | ayrılmamış | ayrılmamış |
YORUM | ayrılmamış | ayrılmamış | ayrılmamış |
TAMAMLAMA | ayrılmamış | ayrılmamış | Saklı -dır |
KOMPAKT | ayrılmamış | ayrılmamış | ayrılmamış |
SıKıŞTıRMALAR | ayrılmamış | ayrılmamış | ayrılmamış |
BİLGİ İŞLEM | ayrılmamış | ayrılmamış | ayrılmamış |
ARADA | ayrılmamış | ayrılmamış | ayrılmamış |
KISITLAMA | Saklı -dır | ayrılmamış | Saklı -dır |
MALİYET | ayrılmamış | ayrılmamış | ayrılmamış |
CREATE | Saklı -dır | ayrılmamış | Saklı -dır |
ÇAPRAZ | Saklı -dır | kesin olarak ayrılmamış | Saklı -dır |
KÜP | ayrılmamış | ayrılmamış | Saklı -dır |
ŞU ANKİ | ayrılmamış | ayrılmamış | Saklı -dır |
CURRENT_DATE | Saklı -dır | ayrılmamış | Saklı -dır |
CURRENT_TIME | Saklı -dır | ayrılmamış | Saklı -dır |
CURRENT_TIMESTAMP | Saklı -dır | ayrılmamış | Saklı -dır |
ÖRNEİN | Saklı -dır | ayrılmamış | Saklı -dır |
VERİLER | ayrılmamış | ayrılmamış | ayrılmamış |
VERİTABANI | ayrılmamış | ayrılmamış | ayrılmamış |
VERİTABANLARI | ayrılmamış | ayrılmamış | ayrılmamış |
DAY | ayrılmamış | ayrılmamış | ayrılmamış |
DBPROPERTIES | ayrılmamış | ayrılmamış | ayrılmamış |
TANIMLANAN | ayrılmamış | ayrılmamış | ayrılmamış |
SİL | ayrılmamış | ayrılmamış | Saklı -dır |
SINIRLANDIRILMIŞ | ayrılmamış | ayrılmamış | ayrılmamış |
DESC | ayrılmamış | ayrılmamış | ayrılmamış |
AÇIKLAMAK | ayrılmamış | ayrılmamış | Saklı -dır |
DFS | ayrılmamış | ayrılmamış | ayrılmamış |
DİZİN | ayrılmamış | ayrılmamış | ayrılmamış |
DİZİN | ayrılmamış | ayrılmamış | ayrılmamış |
FARKLI | Saklı -dır | ayrılmamış | Saklı -dır |
DAĞITMAK | ayrılmamış | ayrılmamış | ayrılmamış |
DİV | ayrılmamış | ayrılmamış | anahtar sözcük değil |
DROP | ayrılmamış | ayrılmamış | Saklı -dır |
ELSE | Saklı -dır | ayrılmamış | Saklı -dır |
END | Saklı -dır | ayrılmamış | Saklı -dır |
KAÇIŞ | Saklı -dır | ayrılmamış | Saklı -dır |
KAÇTI | ayrılmamış | ayrılmamış | ayrılmamış |
EXCEPT | Saklı -dır | kesin olarak ayrılmamış | Saklı -dır |
EXCHANGE | ayrılmamış | ayrılmamış | ayrılmamış |
EXISTS | ayrılmamış | ayrılmamış | Saklı -dır |
EXPLAIN | ayrılmamış | ayrılmamış | ayrılmamış |
IHRACAT | ayrılmamış | ayrılmamış | ayrılmamış |
GENİŞLETİLMİŞ | ayrılmamış | ayrılmamış | ayrılmamış |
DIŞ | ayrılmamış | ayrılmamış | Saklı -dır |
AYIKLAMAK | ayrılmamış | ayrılmamış | Saklı -dır |
FALSE | Saklı -dır | ayrılmamış | Saklı -dır |
GETİR | Saklı -dır | ayrılmamış | Saklı -dır |
ALANLAR | ayrılmamış | ayrılmamış | ayrılmamış |
FİLTRE | Saklı -dır | ayrılmamış | Saklı -dır |
FİLEFORMAT | ayrılmamış | ayrılmamış | ayrılmamış |
FIRST | ayrılmamış | ayrılmamış | ayrılmamış |
FN | ayrılmamış | ayrılmamış | ayrılmamış |
AŞAĞIDAKİ | ayrılmamış | ayrılmamış | ayrılmamış |
FOR | Saklı -dır | ayrılmamış | Saklı -dır |
YABANCI | Saklı -dır | ayrılmamış | Saklı -dır |
BİÇİM | ayrılmamış | ayrılmamış | ayrılmamış |
BİÇİMLENDİRİLMİŞ | ayrılmamış | ayrılmamış | ayrılmamış |
FROM | Saklı -dır | ayrılmamış | Saklı -dır |
TAM | Saklı -dır | kesin olarak ayrılmamış | Saklı -dır |
FUNCTION | ayrılmamış | ayrılmamış | Saklı -dır |
İŞLEVLER | ayrılmamış | ayrılmamış | ayrılmamış |
OLUŞTURULAN | ayrılmamış | ayrılmamış | ayrılmamış |
GENEL | ayrılmamış | ayrılmamış | Saklı -dır |
GRANT | Saklı -dır | ayrılmamış | Saklı -dır |
VERİR | ayrılmamış | ayrılmamış | ayrılmamış |
GROUP | Saklı -dır | ayrılmamış | Saklı -dır |
GRUP -LANDIRMA | ayrılmamış | ayrılmamış | Saklı -dır |
HAVING | Saklı -dır | ayrılmamış | Saklı -dır |
SAAT | ayrılmamış | ayrılmamış | ayrılmamış |
IF | ayrılmamış | ayrılmamış | anahtar sözcük değil |
IGNORE | ayrılmamış | ayrılmamış | ayrılmamış |
ITHALAT | ayrılmamış | ayrılmamış | ayrılmamış |
IN | Saklı -dır | ayrılmamış | Saklı -dır |
DİZİN | ayrılmamış | ayrılmamış | ayrılmamış |
DİZİN | ayrılmamış | ayrılmamış | ayrılmamış |
IÇ | Saklı -dır | kesin olarak ayrılmamış | Saklı -dır |
INPATH | ayrılmamış | ayrılmamış | ayrılmamış |
INPUTFORMAT | ayrılmamış | ayrılmamış | ayrılmamış |
INSERT | ayrılmamış | ayrılmamış | Saklı -dır |
INTERSECT | Saklı -dır | kesin olarak ayrılmamış | Saklı -dır |
ARALIĞI | ayrılmamış | ayrılmamış | Saklı -dır |
INTO | Saklı -dır | ayrılmamış | Saklı -dır |
IS | Saklı -dır | ayrılmamış | Saklı -dır |
BİLEŞEN | ayrılmamış | ayrılmamış | ayrılmamış |
JOIN | Saklı -dır | kesin olarak ayrılmamış | Saklı -dır |
KEY | ayrılmamış | ayrılmamış | ayrılmamış |
ANAHTAR | ayrılmamış | ayrılmamış | ayrılmamış |
LAST | ayrılmamış | ayrılmamış | ayrılmamış |
LATERAL | Saklı -dır | kesin olarak ayrılmamış | Saklı -dır |
TEMBEL | ayrılmamış | ayrılmamış | ayrılmamış |
ÖNDE GELEN | Saklı -dır | ayrılmamış | Saklı -dır |
LEFT | Saklı -dır | kesin olarak ayrılmamış | Saklı -dır |
LIKE | ayrılmamış | ayrılmamış | Saklı -dır |
ILİKE | ayrılmamış | ayrılmamış | ayrılmamış |
LIMIT | ayrılmamış | ayrılmamış | ayrılmamış |
SATIR | ayrılmamış | ayrılmamış | ayrılmamış |
LİSTE | ayrılmamış | ayrılmamış | ayrılmamış |
YÜK | ayrılmamış | ayrılmamış | ayrılmamış |
LOCAL | ayrılmamış | ayrılmamış | Saklı -dır |
KONUM | ayrılmamış | ayrılmamış | ayrılmamış |
KİLİT | ayrılmamış | ayrılmamış | ayrılmamış |
KİLİT | ayrılmamış | ayrılmamış | ayrılmamış |
MANTIKSAL | ayrılmamış | ayrılmamış | ayrılmamış |
MACRO | ayrılmamış | ayrılmamış | ayrılmamış |
HARİTA | ayrılmamış | ayrılmamış | ayrılmamış |
EŞLEŞEN | ayrılmamış | ayrılmamış | ayrılmamış |
BİRLEŞTİRME | ayrılmamış | ayrılmamış | ayrılmamış |
DAKİKA | ayrılmamış | ayrılmamış | ayrılmamış |
EKSİ | ayrılmamış | kesin olarak ayrılmamış | ayrılmamış |
MONTH | ayrılmamış | ayrılmamış | ayrılmamış |
MSCK | ayrılmamış | ayrılmamış | ayrılmamış |
AD ALANI | ayrılmamış | ayrılmamış | ayrılmamış |
AD ALANLARI | ayrılmamış | ayrılmamış | ayrılmamış |
DOĞAL | Saklı -dır | kesin olarak ayrılmamış | Saklı -dır |
HAYIR | ayrılmamış | ayrılmamış | Saklı -dır |
NOT | Saklı -dır | ayrılmamış | Saklı -dır |
NULL | Saklı -dır | ayrılmamış | Saklı -dır |
NULLS | ayrılmamış | ayrılmamış | ayrılmamış |
OF | ayrılmamış | ayrılmamış | Saklı -dır |
AÇIK | Saklı -dır | kesin olarak ayrılmamış | Saklı -dır |
SADECE | Saklı -dır | ayrılmamış | Saklı -dır |
OPTION | ayrılmamış | ayrılmamış | ayrılmamış |
OPTIONS | ayrılmamış | ayrılmamış | ayrılmamış |
VEYA | Saklı -dır | ayrılmamış | Saklı -dır |
SİPARİŞ | Saklı -dır | ayrılmamış | Saklı -dır |
OUT | ayrılmamış | ayrılmamış | Saklı -dır |
DIŞ | Saklı -dır | ayrılmamış | Saklı -dır |
OUTPUTFORMAT | ayrılmamış | ayrılmamış | ayrılmamış |
ÜZERİNDE | ayrılmamış | ayrılmamış | ayrılmamış |
OVERLAPS | Saklı -dır | ayrılmamış | Saklı -dır |
KAPLAMA | ayrılmamış | ayrılmamış | ayrılmamış |
ÜZERİNE | ayrılmamış | ayrılmamış | ayrılmamış |
BÖLÜM | ayrılmamış | ayrılmamış | Saklı -dır |
BÖLÜMLENMİŞ | ayrılmamış | ayrılmamış | ayrılmamış |
BÖLÜMLER | ayrılmamış | ayrılmamış | ayrılmamış |
YÜZDE | ayrılmamış | ayrılmamış | ayrılmamış |
PİVOT | ayrılmamış | ayrılmamış | ayrılmamış |
YERLEŞTİR -EREK | ayrılmamış | ayrılmamış | ayrılmamış |
KONUM | ayrılmamış | ayrılmamış | Saklı -dır |
ÖNCEKİ | ayrılmamış | ayrılmamış | ayrılmamış |
BİRİNCİL | Saklı -dır | ayrılmamış | Saklı -dır |
SORUMLULARI | ayrılmamış | ayrılmamış | ayrılmamış |
ÖZELLİKLER | ayrılmamış | ayrılmamış | ayrılmamış |
PURGE | ayrılmamış | ayrılmamış | ayrılmamış |
HAK | Saklı -dır | ayrılmamış | Saklı -dır |
SORGU | ayrılmamış | ayrılmamış | ayrılmamış |
ARALIĞI | ayrılmamış | ayrılmamış | Saklı -dır |
ALICI | ayrılmamış | ayrılmamış | ayrılmamış |
ALICI | ayrılmamış | ayrılmamış | ayrılmamış |
RECORDREADER | ayrılmamış | ayrılmamış | ayrılmamış |
KAYIT YAZARI | ayrılmamış | ayrılmamış | ayrılmamış |
KURTARMAK | ayrılmamış | ayrılmamış | ayrılmamış |
AZALTMAK | ayrılmamış | ayrılmamış | ayrılmamış |
BAŞVURULAR | Saklı -dır | ayrılmamış | Saklı -dır |
REFRESH | ayrılmamış | ayrılmamış | ayrılmamış |
REGEXP | ayrılmamış | ayrılmamış | anahtar sözcük değil |
KALDIR | ayrılmamış | ayrılmamış | ayrılmamış |
RENAME | ayrılmamış | ayrılmamış | ayrılmamış |
ONARIM | ayrılmamış | ayrılmamış | ayrılmamış |
REPLACE | ayrılmamış | ayrılmamış | ayrılmamış |
RESET | ayrılmamış | ayrılmamış | ayrılmamış |
SAYGI | ayrılmamış | ayrılmamış | ayrılmamış |
KISITLAMAK | ayrılmamış | ayrılmamış | ayrılmamış |
REVOKE | ayrılmamış | ayrılmamış | Saklı -dır |
RIGHT | Saklı -dır | kesin olarak ayrılmamış | Saklı -dır |
RLIKE | ayrılmamış | ayrılmamış | ayrılmamış |
ROL | ayrılmamış | ayrılmamış | ayrılmamış |
ROLLERİ | ayrılmamış | ayrılmamış | ayrılmamış |
GERİ ALMA | ayrılmamış | ayrılmamış | Saklı -dır |
TOPLAMASI | ayrılmamış | ayrılmamış | Saklı -dır |
ROW | ayrılmamış | ayrılmamış | Saklı -dır |
SATIRLAR | ayrılmamış | ayrılmamış | Saklı -dır |
ŞEMA | ayrılmamış | ayrılmamış | ayrılmamış |
ŞEMALAR | ayrılmamış | ayrılmamış | anahtar sözcük değil |
IKİNCİ | ayrılmamış | ayrılmamış | ayrılmamış |
SELECT | Saklı -dır | ayrılmamış | Saklı -dır |
YARI | ayrılmamış | kesin olarak ayrılmamış | ayrılmamış |
AYRILMIŞ | ayrılmamış | ayrılmamış | ayrılmamış |
SERDE | ayrılmamış | ayrılmamış | ayrılmamış |
SERDEPROPERTIES | ayrılmamış | ayrılmamış | ayrılmamış |
SESSION_USER | Saklı -dır | ayrılmamış | Saklı -dır |
SET | ayrılmamış | ayrılmamış | Saklı -dır |
AYARLAR | ayrılmamış | ayrılmamış | ayrılmamış |
PAYLAŞ | ayrılmamış | ayrılmamış | ayrılmamış |
HİSSE | ayrılmamış | ayrılmamış | ayrılmamış |
GÖSTER | ayrılmamış | ayrılmamış | ayrılmamış |
ÇARPIK | ayrılmamış | ayrılmamış | ayrılmamış |
BAZI | Saklı -dır | ayrılmamış | Saklı -dır |
SIRALAMA | ayrılmamış | ayrılmamış | ayrılmamış |
SIRA -LANMIŞ | ayrılmamış | ayrılmamış | ayrılmamış |
BAŞLANGIÇ | ayrılmamış | ayrılmamış | Saklı -dır |
ISTATİSTİK | ayrılmamış | ayrılmamış | ayrılmamış |
SAKLI | ayrılmamış | ayrılmamış | ayrılmamış |
KATMANLAMA | ayrılmamış | ayrılmamış | ayrılmamış |
STRUCT | ayrılmamış | ayrılmamış | ayrılmamış |
SUBSTR | ayrılmamış | ayrılmamış | ayrılmamış |
SUBSTRING | ayrılmamış | ayrılmamış | ayrılmamış |
EŞİTLEME | ayrılmamış | ayrılmamış | ayrılmamış |
TABLO | Saklı -dır | ayrılmamış | Saklı -dır |
TABLOLAR | ayrılmamış | ayrılmamış | ayrılmamış |
TABLESAMPLE | ayrılmamış | ayrılmamış | Saklı -dır |
TBLPROPERTIES | ayrılmamış | ayrılmamış | ayrılmamış |
TEMP | ayrılmamış | ayrılmamış | anahtar sözcük değil |
GEÇİ -Cİ | ayrılmamış | ayrılmamış | ayrılmamış |
SONLANDIRILDI | ayrılmamış | ayrılmamış | ayrılmamış |
THEN | Saklı -dır | ayrılmamış | Saklı -dır |
TIME | Saklı -dır | ayrılmamış | Saklı -dır |
TO | Saklı -dır | ayrılmamış | Saklı -dır |
DOKUNMATİK | ayrılmamış | ayrılmamış | ayrılmamış |
IZLEYEN | Saklı -dır | ayrılmamış | Saklı -dır |
İŞLEM | ayrılmamış | ayrılmamış | ayrılmamış |
HAREKET | ayrılmamış | ayrılmamış | ayrılmamış |
DÖNÜŞTÜRMEK | ayrılmamış | ayrılmamış | ayrılmamış |
TRIM | ayrılmamış | ayrılmamış | ayrılmamış |
TRUE | ayrılmamış | ayrılmamış | Saklı -dır |
TRUNCATE | ayrılmamış | ayrılmamış | Saklı -dır |
TRY_CAST | ayrılmamış | ayrılmamış | ayrılmamış |
TÜR | ayrılmamış | ayrılmamış | ayrılmamış |
ARŞIVSIZ | ayrılmamış | ayrılmamış | ayrılmamış |
SINIRSIZ | ayrılmamış | ayrılmamış | ayrılmamış |
UNCACHE | ayrılmamış | ayrılmamış | ayrılmamış |
UNION | Saklı -dır | kesin olarak ayrılmamış | Saklı -dır |
BENZER -SİZ | Saklı -dır | ayrılmamış | Saklı -dır |
BİLİNMİYOR | Saklı -dır | ayrılmamış | Saklı -dır |
KİLİDİNİ | ayrılmamış | ayrılmamış | ayrılmamış |
UNSET | ayrılmamış | ayrılmamış | ayrılmamış |
UPDATE | ayrılmamış | ayrılmamış | Saklı -dır |
USE | ayrılmamış | ayrılmamış | ayrılmamış |
KULLANICI | Saklı -dır | ayrılmamış | Saklı -dır |
USING | Saklı -dır | kesin olarak ayrılmamış | Saklı -dır |
DEĞER | ayrılmamış | ayrılmamış | Saklı -dır |
GÖRÜNÜM | ayrılmamış | ayrılmamış | ayrılmamış |
GÖRÜNÜMLER | ayrılmamış | ayrılmamış | ayrılmamış |
Ne zaman… | Saklı -dır | ayrılmamış | Saklı -dır |
WHERE | Saklı -dır | ayrılmamış | Saklı -dır |
PENCERE | ayrılmamış | ayrılmamış | Saklı -dır |
WITH | Saklı -dır | ayrılmamış | Saklı -dır |
YEAR | ayrılmamış | ayrılmamış | ayrılmamış |
BÖLGE | ayrılmamış | ayrılmamış | ayrılmamış |