All Products
Search
Document Center

Lindorm:Struktur leksikal SQL Lindorm

Last Updated:Jun 24, 2025

Topik ini menjelaskan struktur leksikal dasar dari SQL Lindorm.

Informasi latar belakang

Pernyataan SQL terdiri dari urutan token dan diakhiri dengan titik koma (;). Token dapat berupa kata kunci, pengenal, konstanta, atau karakter khusus. Dua token biasanya dipisahkan oleh spasi, tab, atau baris baru.

Pengenal

Pengenal digunakan dalam pernyataan SQL untuk menunjukkan objek data seperti basis data, tabel, atau kolom. Dalam SQL Lindorm, pengenal dikutip menggunakan tanda kutip balik (`).

  • Pengenal tanpa tanda kutip balik harus dimulai dengan huruf dan hanya boleh mengandung huruf, angka, serta garis bawah (_).

  • Pengenal yang dikutip harus dimulai dan diakhiri dengan tanda kutip balik. Contoh: `Nama Karyawan`. Pengenal tersebut dapat berisi semua jenis karakter.

Dalam SQL Lindorm, dua objek data pada level berbeda dipisahkan oleh titik (.). Sebagai contoh, Anda dapat menggunakan db.tbl untuk menentukan tabel bernama tbl dalam database bernama db.

null

Selain batasan leksikal umum yang disebutkan sebelumnya, pengenal juga harus mengikuti batasan mesin Lindorm tempat mereka digunakan secara aktual.

  • Untuk informasi lebih lanjut tentang batasan LindormTable, lihat Batasan Umum.

  • Untuk informasi lebih lanjut tentang batasan LindormTSDB, lihat Batasan.

Konstanta

SQL Lindorm mendukung dua jenis konstanta implisit: konstanta string dan konstanta numerik.

  • Konstanta String

    Konstanta string merupakan urutan karakter yang diapit oleh tanda kutip tunggal ('), contohnya: 'Ini adalah string'.

    Parser SQL dapat mem-parsing karakter escape dalam SQL 2.8.4.8 dan versi setelahnya. Dalam konstanta string, parser menentukan apakah akan meloloskan backslash (\) berdasarkan karakter setelah backslash. Tabel berikut menggambarkan aturan spesifik.

    Karakter escape

    Karakter sebenarnya

    \0

    ASCII NUL (X'00')

    \'

    Tanda kutip tunggal (')

    \"

    Tanda kutip ganda (")

    \\

    Backslash (\)

    \Z

    ASCII 26 (Control-Z)

    \r

    Carriage return

    \n

    Line feed

    Jika Anda ingin agar backslash (\) dalam konstanta string diperlakukan sebagai karakter biasa dan bukan karakter escape, Anda dapat membatalkan perilaku escape dengan mengatur parameter SQL_MODE ke NO_BACKSLASH_ESCAPES. Untuk informasi lebih lanjut, lihat Variabel Sesi.

    null
    • Untuk informasi lebih lanjut tentang cara melihat versi SQL Lindorm, lihat Versi SQL.

    • Hanya konstanta string dalam pernyataan SQL yang dapat di-escape. Parameter string yang ditentukan dalam pernyataan yang disiapkan untuk penulisan atau kueri berparameter tidak di-escape.

  • Konstanta Numerik

    Tabel berikut menggambarkan format konstanta numerik yang didukung oleh SQL Lindorm.

    Format

    Deskripsi

    digit

    Nilai dalam format ini menunjukkan satu atau lebih digit desimal (0 hingga 9).

    digitse[+-]digits

    Nilai dalam format ini menunjukkan konstanta numerik yang berisi tanda eksponen (e). Contoh: 4e3.

    angka.[angka][e[+-]angka]

    Nilai dalam format ini menunjukkan konstanta numerik yang berisi tanda desimal (.) dan tanda eksponen (e). Contoh: 5.3e2.

    [angka].angka[e[+-]angka]

    null
    • Konstanta numerik tidak boleh berisi spasi atau karakter yang tidak termasuk dalam format sebelumnya.

    • Jika konstanta numerik mencakup tanda desimal (.), setidaknya satu digit harus ada sebelum tanda desimal.

    • Jika konstanta numerik berisi tanda eksponen (e), setidaknya satu digit desimal diperlukan sebelum tanda eksponen.

Karakter khusus

Beberapa karakter khusus mungkin memiliki penggunaan tertentu dalam skenario yang berbeda.

  • Sepasang tanda kurung (()) digunakan untuk mengelompokkan ekspresi dan memprioritaskan konten di dalamnya, termasuk dalam sintaksis SQL pada kasus tertentu.

  • Koma (,) digunakan dalam berbagai sintaksis untuk memisahkan elemen yang terdaftar.

  • Tanda titik koma (;) digunakan untuk mengakhiri pernyataan SQL dan hanya dapat ditempatkan di akhir pernyataan SQL atau dalam konstanta string.

  • Tanda titik dua (:) dapat digunakan dalam pengenal untuk memisahkan nama keluarga kolom dari nama kolom.

  • Asterisk (*) digunakan untuk menunjukkan semua bidang dalam tabel atau kombinasi nilai dalam konteks tertentu.

  • Tanda titik (.) umumnya digunakan dalam konstanta numerik sebagai pemisah desimal. Selain itu, tanda titik juga dapat digunakan dalam pengenal untuk memisahkan objek data pada level yang berbeda.

Kata kunci

Kata kunci SQL diklasifikasikan menjadi kata kunci tercadang dan kata kunci non-reserved. Menurut definisi SQL, kata kunci tercadang adalah kata kunci sebenarnya yang hanya dapat digunakan sebagai pengenal ketika dirujuk dengan tanda kutip. Kata kunci non-reserved memiliki semantik khusus hanya dalam konteks tertentu dan dapat digunakan sebagai pengenal dalam konteks non-semantik.

null

Kata kunci yang dijelaskan dalam topik ini mungkin tidak diperbarui pada kesempatan pertama. Oleh karena itu, kami sarankan Anda untuk menanyakan tampilan sistem INFORMATION_SCHEMA.KEYWORDS untuk mendapatkan kata kunci tercadang dan non-reserved dalam SQL Lindorm di LindormTable 2.6.3 dan versi setelahnya.

Anda dapat menjalankan pernyataan SELECT * FROM information_schema.keywords WHERE WORD=UPPER('<Kata mencurigakan'); untuk memeriksa apakah suatu kata adalah kata kunci tercadang. Jika hasil set yang dikembalikan tidak kosong dan nilai bidang RESERVED adalah 1, kata tersebut adalah kata kunci tercadang.

Sebagai contoh, jika Anda ingin memeriksa apakah kata CASCADED adalah kata kunci tercadang, Anda dapat menjalankan pernyataan SELECT * FROM information_schema.keywords WHERE WORD=UPPER('CASCADED');.

Kata kunci tercadang dalam SQL Lindorm

Tabel berikut mencantumkan kata kunci tercadang dalam SQL Lindorm.

Inisial

Kata kunci tercadang

A

ABS, ALL, ALLOCATE, ALLOW, ALTER, AND, ANY, ARE, ARRAY, ARRAY_MAX_CARDINALITY, AS, ASENSITIVE, ASYMMETRIC, AT, ATOMIC, AUTHORIZATION, AVG

B

BEGIN, BEGIN_FRAME, BEGIN_PARTITION, BETWEEN, BIGINT, BINARY, BIT, BLOB, BOOLEAN, BOTH, BY

C

CALL, CALLED, CARDINALITY, CASCADED, CASE, CAST, CEIL, CEILING, CHAR, CHARACTER, CHARACTER_LENGTH, CHAR_LENGTH, CHECK, CLASSIFIER, CLOB, CLOSE, COALESCE, COLLATE, COLLECT, COLUMN, COMMIT, CONDITION, CONNECT, CONSTRAINT, CONTAINS, CONVERT, CORR, CORRESPONDING, COUNT, COVAR_POP, COVAR_SAMP, CREATE, CROSS, CUBE, CUME_DIST, CURRENT, CURRENT_CATALOG, CURRENT_DATE, CURRENT_DEFAULT_TRANSFORM_GROUP, CURRENT_PATH, CURRENT_ROLE, CURRENT_ROW, CURRENT_SCHEMA, CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_TRANSFORM_GROUP_FOR_TYPE, CURRENT_USER, CURSOR, CYCLE

D

DATE, DATETIME, DAY, DEALLOCATE, DEC, DECIMAL, DECLARE, DEFAULT, DEFINE, DELETE, DENSE_RANK, DEREF, DESCRIBE, DETERMINISTIC, DISALLOW, DISCONNECT, DISTINCT, DOUBLE, DROP, DYNAMIC

E

EACH, ELEMENT, ELSE, EMPTY, END, END-EXEC, END_FRAME, END_PARTITION, EQUALS, ESCAPE, EVERY, EXCEPT, EXEC, EXECUTE, EXISTS, EXP, EXPLAIN, EXTEND, EXTERNAL, EXTRACT

F

FALSE, FETCH, FILTER, FIRST_VALUE, FLOAT, FLOOR, FOR, FOREIGN, FRAME_ROW, FREE, FRIDAY, FROM, FULL, FUNCTION, FUSION

G

GEOMETRYCOLLECTION, GET, GLOBAL, GRANT, GROUP, GROUPING, GROUPS

H

HAVING, HOLD, HOUR

I

IDENTITY, IMPORT, IN, INDICATOR, INITIAL, INNER, INOUT, INSENSITIVE, INSERT, INT, INTEGER, INTERSECT, INTERSECTION, INTERVAL, INTO, IS

J

JOIN, JSON_ARRAY, JSON_ARRAYAGG, JSON_EXISTS, JSON_OBJECT, JSON_OBJECTAGG, JSON_QUERY, JSON_VALUE

L

LAG, LANGUAGE, LARGE, LAST_VALUE, LATERAL, LEAD, LEADING, LEFT, LIKE, LIKE_REGEX, LIMIT, LINESTRING, LN, LOCAL, LOCALTIME, LOCALTIMESTAMP, LOWER

M

MATCH, MATCHES, MATCH_NUMBER, MATCH_RECOGNIZE, MAX, MEASURES, MEMBER, MERGE, METHOD, MIN, MINUS, MINUTE, MOD, MODIFIES, MODULE, MONDAY, MONTH, MULTILINESTRING, MULTIPOINT, MULTIPOLYGON, MULTISET

N

NATIONAL, NATURAL, NCHAR, NCLOB, NEW, NEXT, NO, NONE, NORMALIZE, NOT, NTH_VALUE, NTILE, NULL, NULLIF, NUMERIC

O

OCCURRENCES_REGEX, OCTET_LENGTH, OF, OFFSET, OLD, OMIT, ON, ONE, ONLY, OPEN, OR, ORDER, ORDINAL, OUT, OUTER, OVER, OVERLAPS, OVERLAY

P

PARAMETER, PARTITION, PATTERN, PER, PERCENT, PERCENT_RANK, PERIOD, PERMUTE, PORTION, POSITION, POSITION_REGEX, POINT, POLYGON, POWER, PRECEDES, PRECISION, PREPARE, PREV, PRIMARY, PROCEDURE

Q

QUALIFY

R

RANGE, RANK, READS, REAL, RECURSIVE, REF, REFERENCES, REFERENCING, REGR_AVGX, REGR_AVGY, REGR_COUNT, REGR_INTERCEPT, REGR_R2, REGR_SLOPE, REGR_SXX, REGR_SXY, REGR_SYY, RELEASE, RESET, RESULT, RETURN, RETURNS, REVOKE, RIGHT, ROLLBACK, ROLLUP, ROW, ROWS, ROW_NUMBER, RUNNING

S

SAFE_CAST, SAFE_OFFSET, SAFE_ORDINAL, SATURDAY, SAVEPOINT, SCOPE, SCROLL, SEARCH, SECOND, SEEK, SELECT, SENSITIVE, SESSION_USER, SET, SHOW, SIMILAR, SKIP, SMALLINT, SOME, SPECIFIC, SPECIFICTYPE, SQL, SQLEXCEPTION, SQLSTATE, SQLWARNING, SQRT, START, STATIC, STDDEV_POP, STDDEV_SAMP, STREAM, SUBMULTISET, SUBSET, SUBSTRING, SUBSTRING_REGEX, SUCCEEDS, SUM, SUNDAY, SYMMETRIC, SYSTEM, SYSTEM_TIME, SYSTEM_USER

T

TABLE, TABLESAMPLE, THEN, THURSDAY, TIME, TIMESTAMP, TIMEZONE_HOUR, TIMEZONE_MINUTE, TINYINT, TO, TRAILING, TRANSLATE, TRANSLATE_REGEX, TRANSLATION, TREAT, TRIGGER, TRIM, TRIM_ARRAY, TRUE, TRUNCATE, TRY_CAST, TUESDAY

U

UESCAPE, UNION, UNIQUE, UNKNOWN, UNNEST, UPDATE, UPPER, UPSERT, USER, USING

V

VALUE, VALUES, VALUE_OF, VARBINARY, VARCHAR, VARYING, VAR_POP, VAR_SAMP, VERSIONING, WEDNESDAY

W

WHEN, WHENEVER, WHERE, WIDTH_BUCKET, WINDOW, WITH, WITHIN, WITHOUT

Y

YEAR

Kata kunci non-reserved dalam SQL Lindorm

Tabel berikut mencantumkan kata kunci non-reserved dalam SQL Lindorm.

Inisial

Kata kunci non-reserved

A

A, ABSENT, ABSOLUTE, ACTION, ADA, ADD, ADMIN, AFTER, AGGREGATORS, ALWAYS, APPLY, ARRAY_AGG, ARRAY_CONCAT_AGG, ASC, ASSERTION, ASSIGNMENT, ATTR, ATTRIBUTE, ATTRIBUTES, AUTO_INCREMENT

B

BEFORE, BERNOULLI, BREADTH

C

C, CASCADE, CATALOG, CATALOG_NAME, CENTURY, CHAIN, CHARACTERISTICS, CHARACTERS, CHARACTER_SET_CATALOG, CHARACTER_SET_NAME, CHARACTER_SET_SCHEMA, CLASS_ORIGIN, COBOL, COLLATION, COLLATION_CATALOG, COLLATION_NAME, COLLATION_SCHEMA, COLUMN_FAMILY, COLUMN_NAME, COLUMNS, COMMAND_FUNCTION, COMMAND_FUNCTION_CODE, COMMENT, COMMITTED, CONDITIONAL, COMPACT, CONDITION_NUMBER, CONNECTION, CONNECTION_NAME, CONSTRAINTS, CONSTRAINT_CATALOG, CONSTRAINT_NAME, CONSTRAINT_SCHEMA, CONSTRUCTOR, CONTINUE, CONTINUOUS, CURSOR_NAME

D

DATA, DATABASE, DATETIME_DIFF, DATETIME_INTERVAL_CODE, DATETIME_INTERVAL_PRECISION, DATETIME_TRUNC, DATE_DIFF, DATE_TRUNC, DAYOFWEEK, DAYOFYEAR, DAYS, DECADE, DEFAULTS, DEFERRABLE, DEFERRED, DEFINED, DEFINER, DEGREE, DEPTH, DERIVED, DESC, DESCRIPTION, DESCRIPTOR, DIAGNOSTICS, DISPATCH, DOMAIN, DOT, DOW, DOY, DYNAMIC_FUNCTION, DYNAMIC_FUNCTION_CODE

E

ENCODING, EPOCH, ERROR, EXCEPTION, EXCLUDE, EXCLUDING

F

FINAL, FIRST, FOLLOWING, FORMAT, FORTRAN, FOUND, FRAC_SECOND

G

G, GENERAL, GENERATED, GEOMETRY, GO, GOTO, GRANTED, GROUP_CONCAT

H

HBOOLEAN, HDOUBLE, HIERARCHY, HINTEGER, HLONG, HOP, HOURS, HSHORT, HSTRING

I

IGNORE, IF, ILIKE, IMMEDIATE, IMMEDIATELY, IMPLEMENTATION, INCLUDE, INCLUDING, INCREMENT, INITIALLY, INPUT, INSTANCE, INSTANTIABLE, INVOKER, ISODOW, ISOLATION, ISOYEAR

J

JAVA, JSON

K

K, KEY, KEY_MEMBER, KEY_TYPE

L

LABEL, LAST, LENGTH, LEVEL, LIBRARY, LOCATOR

M

M, MAP, MATCHED, MAXVALUE, MESSAGE_LENGTH, MESSAGE_OCTET_LENGTH, MESSAGE_TEXT, MICROSECOND, MILLENNIUM, MILLISECOND, MINUTES, MINVALUE, MONTHS, MORE, MUMPS

N

NAME, NAMES, NAMESPACE, NANOSECOND, NESTING, NORMALIZED, NULLABLE, NULLS, NUMBER

O

OBJECT, OCTETS, OPTION, OPTIONS, ORDERING, ORDINALITY, OTHERS, OUTPUT, OVERRIDING

P

PAD, PARAMETER_MODE, PARAMETER_NAME, PARAMETER_ORDINAL_POSITION, PARAMETER_SPECIFIC_CATALOG, PARAMETER_SPECIFIC_NAME, PARAMETER_SPECIFIC_SCHEMA, PARTIAL, PARTITIONS, PASCAL, PASSING, PASSTHROUGH, PASSWORD, PAST, PATH, PERCENTILE_CONT, PERCENTILE_DISC, PIVOT, PLACING, PLAN, PLI, PRECEDING, PREDOWNSAMPLE, PREDOWNSAMPLES, PRESERVE, PRIOR, PRIVILEGES, PUBLIC

Q

QUARTER, QUARTERS, QUERY, QUERIES

R

READ, RELATIVE, REPEATABLE, REPLACE, RESPECT, RESTART, RESTRICT, RETURNED_CARDINALITY, RETURNED_LENGTH, RETURNED_OCTET_LENGTH, RETURNED_SQLSTATE, RETURNING, RLIKE, ROLE, ROUTINE, ROUTINE_CATALOG, ROUTINE_NAME, ROUTINE_SCHEMA, ROW, ROW_COUNT

S

SCALAR, SCALE, SCHEMA, SCHEMA_NAME, SCOPE_CATALOGS, SCOPE_NAME, SCOPE_SCHEMA, SEARCH, SECONDS, SECTION, SECURITY, SELF, SEPARATOR, SEQUENCE, SERIALIZABLE, SERVER, SERVER_NAME, SESSION, SETS, SIMPLE, SIZE, SOURCE, SPACE, SPECIFIC_NAME, SQL_BIGINT, SQL_BINARY, SQL_BIT, SQL_BLOB, SQL_BOOLEAN, SQL_CHAR, SQL_CLOB, SQL_DATE, SQL_DECIMAL, SQL_DOUBLE, SQL_FLOAT, SQL_INTEGER, SQL_INTERVAL_DAY, SQL_INTERVAL_DAY_TO_HOUR, SQL_INTERVAL_DAY_TO_MINUTE, SQL_INTERVAL_DAY_TO_SECOND, SQL_INTERVAL_HOUR, SQL_INTERVAL_HOUR_TO_MINUTE, SQL_INTERVAL_HOUR_TO_SECOND, SQL_INTERVAL_MINUTE, SQL_INTERVAL_MINUTE_TO_SECOND, SQL_INTERVAL_MONTH, SQL_INTERVAL_SECOND, SQL_INTERVAL_YEAR, SQL_INTERVAL_YEAR_TO_MONTH, SQL_LONGVARBINARY, SQL_LONGVARCHAR, SQL_LONGVARNCHAR, SQL_NCHAR, SQL_NCLOB, SQL_NUMERIC, SQL_NVARCHAR, SQL_REAL, SQL_SMALLINT, SQL_TIME, SQL_TIMESTAMP, SQL_TINYINT, SQL_TSI_DAY, SQL_TSI_FRAC_SECOND, SQL_TSI_HOUR, SQL_TSI_MICROSECOND, SQL_TSI_MINUTE, SQL_TSI_MONTH, SQL_TSI_QUARTER, SQL_TSI_SECOND, SQL_TSI_WEEK, SQL_TSI_YEAR, SQL_VARBINARY, SQL_VARCHAR, STATE, STATEMENT, STRING_AGG, STRUCTURE, STYLE, SUBCLASS_ORIGIN, SUBSTITUTE

T

TABLES, TABLE_NAME, TAG, TEMPORARY, TIES, TIMESTAMPADD, TIMESTAMPDIFF, TIMESTAMP_DIFF, TIMESTAMP_TRUNC, TIME_DIFF, TIME_TRUNC, TOP_LEVEL_COUNT, TRANSACTION, TRANSACTIONS_ACTIVE, TRANSACTIONS_COMMITTED, TRANSACTIONS_ROLLED_BACK, TRANSFORM, TRANSFORMS, TRASH, TRIGGER_CATALOG, TRIGGER_NAME, TRIGGER_SCHEMA, TTL, TUMBLE, TYPE

U

UNBOUNDED, UNCOMMITTED, UNCONDITIONAL, UNDER, UNMAP, UNNAMED, UNPIVOT, USAGE, USE, USERS, USER_DEFINED_TYPE_CATALOG, USER_DEFINED_TYPE_CODE, USER_DEFINED_TYPE_NAME, USER_DEFINED_TYPE_SCHEMA, UTF16, UTF32, UTF8

V

VARIABLES, VERSION, VIEW, WEEK, WEEKS

W

WILDCARD, WORK, WRAPPER, WRITE

X

XML

Y

YEARS

Z

ZONE