Todos os produtos
Search
Central de documentação

Lindorm:Estrutura léxica do SQL do Lindorm

Última atualização: Jun 28, 2026

Uma instrução SQL consiste em uma sequência de tokens terminada por ponto e vírgula (;). Espaços, tabulações ou quebras de linha separam os tokens, que podem ser palavras-chave, identificadores, constantes ou caracteres especiais.

Identificadores

Um identificador nomeia um objeto de dados, como banco de dados, tabela ou coluna. O SQL do Lindorm usa crases (` ``) para delimitar identificadores.

Tipo de identificador

Regras

Exemplo

Sem aspas

Deve começar com letra; pode conter apenas letras, dígitos e sublinhados (_)

employee_name

Com aspas

Delimitado por crases; pode conter quaisquer caracteres

` Employee Name `

Use um ponto (.) para separar objetos de dados em níveis diferentes. Por exemplo, db.tbl refere-se à tabela tbl no banco de dados db.

Identificadores válidos e inválidos

Válido

Inválido

Motivo

orders, user_id, tbl1

1table, my-table, user name

Identificadores sem aspas devem começar com letra e conter apenas letras, dígitos e sublinhados

` 1table , my-table , user name `

Identificadores com aspas aceitam quaisquer caracteres

Importante

Além dessas regras léxicas, os identificadores também devem obedecer às restrições do mecanismo específico do Lindorm em uso:

Constantes

O SQL do Lindorm oferece suporte a dois tipos de constantes: string e numérica.

Constantes de string

Uma constante de string é uma sequência de caracteres delimitada por aspas simples ('). Exemplo: 'This is a string'.

Caracteres de escape (suportados a partir da versão SQL 2.8.4.8)

A partir da versão SQL 2.8.4.8, o analisador SQL interpreta a barra invertida (\) como caractere de escape, dependendo do caractere seguinte.

Sequência de escape

Caractere

\0

ASCII NUL (X'00')

\'

Aspa simples (')

\"

Aspa dupla (")

\\

Barra invertida (\)

\Z

ASCII 26 (Control-Z)

\r

Retorno de carro

\n

Nova linha

Para tratar barras invertidas como caracteres comuns em vez de sequências de escape, defina o parâmetro SQL_MODE como NO_BACKSLASH_ESCAPES. Para mais detalhes, consulte Variáveis de sessão.

Nota
  • Para verificar a versão do SQL em execução, consulte Versões do SQL.

  • As sequências de escape aplicam-se apenas a constantes de string nas instruções SQL. Parâmetros em instruções preparadas não passam por escape.

Constantes numéricas

Formato

Descrição

Exemplo

digits

Um ou mais dígitos decimais (0–9)

42

digitse[+-]digits

Contém um marcador de expoente (e)

4e3

digits.[digits][e[+-]digits]

Contém um ponto decimal (.) e um expoente opcional

5.3e2

[digits].digits[e[+-]digits]

Ponto decimal no início

Importante
  • Constantes numéricas não podem conter espaços ou caracteres fora dos formatos descritos acima.

  • Se uma constante numérica contiver um ponto decimal (.), pelo menos um dígito deve aparecer antes dele.

  • Caso a constante numérica possua um marcador de expoente (e), é obrigatório haver pelo menos um dígito antes dele.

Caracteres especiais

Caractere

Uso

() parênteses

Agrupam expressões; definem prioridade na ordem de avaliação; exigidos por certas sintaxes SQL

, vírgula

Separa elementos em listas

; ponto e vírgula

Encerra uma instrução SQL; também válido dentro de constantes de string

: dois-pontos

Separa nomes de famílias de colunas dos nomes das colunas nos identificadores

* asterisco

Refere-se a todos os campos de uma tabela ou denota uma combinação de valores

. ponto

Ponto decimal em constantes numéricas; separador entre objetos de dados hierárquicos

Palavras-chave

As palavras-chave SQL classificam-se em reservadas e não reservadas:

  • Palavras-chave reservadas são termos verdadeiramente reservados. Para usá-las como identificadores, delimite-as com crases.

  • Palavras-chave não reservadas têm significado especial apenas em contextos específicos e podem funcionar como identificadores em outras situações.

Exemplo: palavra-chave reservada como identificador

-- Using a reserved keyword without backticks causes an error
CREATE TABLE select (id INT);
-- ERROR: "select" is a reserved keyword

-- Enclose the keyword in backticks to use it as an identifier
CREATE TABLE `select` (id INT);
-- OK

Consultar palavras-chave dinamicamente

A lista de palavras-chave pode não refletir as atualizações mais recentes. No LindormTable 2.6.3 e versões posteriores, visualize a view de sistema INFORMATION_SCHEMA.KEYWORDS para obter a lista atualizada.

Para verificar se uma palavra específica é uma palavra-chave reservada:

SELECT * FROM information_schema.keywords WHERE WORD = UPPER('<word>');

Se o conjunto de resultados não estiver vazio e o campo RESERVED for 1, a palavra é considerada reservada.

Exemplo: Verificar se CASCADED é reservada:

SELECT * FROM information_schema.keywords WHERE WORD = UPPER('CASCADED');

Palavras-chave reservadas

Inicial

Palavras-chave reservadas

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

Palavras-chave não reservadas

Inicial

Palavras-chave não reservadas

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