sql-stmt-list:
⊗
>
>
>
sql-stmt
>
>
>
>
<
;
<
>
⊗
sql-stmt:
⊗
>
>
>
>
EXPLAIN
>
>
>
>
QUERY
>
PLAN
>
>
>
>
alter-table-stmt
>
>
analyze-stmt
>
>
attach-stmt
>
>
begin-stmt
>
>
commit-stmt
>
>
create-index-stmt
>
>
create-table-stmt
>
>
create-trigger-stmt
>
>
create-view-stmt
>
>
create-virtual-table-stmt
>
>
delete-stmt
>
>
delete-stmt-limited
>
>
detach-stmt
>
>
drop-index-stmt
>
>
drop-table-stmt
>
>
drop-trigger-stmt
>
>
drop-view-stmt
>
>
insert-stmt
>
>
pragma-stmt
>
>
reindex-stmt
>
>
release-stmt
>
>
rollback-stmt
>
>
savepoint-stmt
>
>
select-stmt
>
>
update-stmt
>
>
update-stmt-limited
>
>
vacuum-stmt
>
>
⊗
alter-table-stmt:
⊗
>
ALTER
>
TABLE
>
>
database-name
>
.
>
>
>
>
table-name
>
<
<
>
>
RENAME
>
TO
>
new-table-name
>
>
ADD
>
>
COLUMN
>
>
>
>
column-def
>
>
>
⊗
analyze-stmt:
⊗
>
ANALYZE
>
>
>
>
database-name
>
>
table-name
>
>
database-name
>
.
>
table-name
>
>
⊗
attach-stmt:
⊗
>
ATTACH
>
>
DATABASE
>
>
>
>
filename
>
AS
>
database-name
>
⊗
begin-stmt:
⊗
>
BEGIN
>
>
>
>
DEFERRED
>
>
IMMEDIATE
>
>
EXCLUSIVE
>
>
>
TRANSACTION
>
>
>
>
⊗
commit-stmt:
⊗
>
>
COMMIT
>
>
END
>
>
>
TRANSACTION
>
>
>
>
⊗
rollback-stmt:
⊗
>
ROLLBACK
>
>
TRANSACTION
>
>
>
>
>
TO
>
>
SAVEPOINT
>
>
>
>
savepoint-name
>
>
>
>
⊗
savepoint-stmt:
⊗
>
SAVEPOINT
>
savepoint-name
>
⊗
release-stmt:
⊗
>
RELEASE
>
>
SAVEPOINT
>
>
>
>
savepoint-name
>
⊗
create-index-stmt:
⊗
>
CREATE
>
>
>
>
UNIQUE
>
>
INDEX
>
>
>
>
IF
>
NOT
>
EXISTS
>
>
<
<
>
>
database-name
>
.
>
>
>
>
index-name
>
ON
>
table-name
>
(
>
>
indexed-column
>
<
,
<
>
)
>
>
⊗
indexed-column:
⊗
>
column-name
>
>
COLLATE
>
collation-name
>
>
>
>
>
ASC
>
>
DESC
>
>
>
>
⊗
create-table-stmt:
⊗
>
CREATE
>
>
>
>
TEMP
>
>
TEMPORARY
>
>
TABLE
>
>
>
>
IF
>
NOT
>
EXISTS
>
>
<
<
>
>
database-name
>
.
>
>
>
>
table-name
>
>
(
>
>
column-def
>
<
,
<
>
>
>
<
table-constraint
<
,
<
>
)
>
>
AS
>
select-stmt
>
>
>
⊗
column-def:
⊗
>
column-name
>
>
type-name
>
>
>
>
>
>
<
<
column-constraint
<
<
>
⊗
type-name:
⊗
>
>
name
>
<
<
>
>
>
>
(
>
signed-number
>
)
>
>
(
>
signed-number
>
,
>
signed-number
>
)
>
>
⊗
column-constraint:
⊗
>
>
CONSTRAINT
>
name
>
>
>
>
<
<
>
>
PRIMARY
>
KEY
>
>
>
>
ASC
>
>
DESC
>
>
conflict-clause
>
>
>
>
AUTOINCREMENT
>
>
>
NOT
>
NULL
>
conflict-clause
>
>
UNIQUE
>
conflict-clause
>
>
CHECK
>
(
>
expr
>
)
>
>
DEFAULT
>
>
signed-number
>
>
literal-value
>
>
(
>
expr
>
)
>
>
>
COLLATE
>
collation-name
>
>
foreign-key-clause
>
>
>
⊗
signed-number:
⊗
>
>
>
>
+
>
>
-
>
>
>
integer-literal
>
>
floating-point-literal
>
>
⊗
table-constraint:
⊗
>
>
CONSTRAINT
>
name
>
>
>
>
<
<
>
>
>
PRIMARY
>
KEY
>
>
UNIQUE
>
>
(
>
>
indexed-column
>
<
,
<
>
)
>
conflict-clause
>
>
CHECK
>
(
>
expr
>
)
>
>
FOREIGN
>
KEY
>
(
>
>
column-name
>
<
,
<
>
)
>
foreign-key-clause
>
>
>
⊗
foreign-key-clause:
⊗
>
REFERENCES
>
foreign-table
>
>
(
>
>
column-name
>
<
,
<
>
)
>
>
>
>
<
<
>
>
>
>
ON
>
>
DELETE
>
>
UPDATE
>
>
>
SET
>
NULL
>
>
SET
>
DEFAULT
>
>
CASCADE
>
>
RESTRICT
>
>
NO
>
ACTION
>
>
>
MATCH
>
name
>
>
<
<
>
>
>
>
<
<
>
>
>
NOT
>
>
>
>
DEFERRABLE
>
>
INITIALLY
>
DEFERRED
>
>
INITIALLY
>
IMMEDIATE
>
>
>
>
>
>
>
>
>
⊗
conflict-clause:
⊗
>
>
>
>
ON
>
CONFLICT
>
>
ROLLBACK
>
>
ABORT
>
>
FAIL
>
>
IGNORE
>
>
REPLACE
>
>
>
⊗
create-trigger-stmt:
⊗
>
CREATE
>
>
>
>
TEMP
>
>
TEMPORARY
>
>
TRIGGER
>
>
>
>
IF
>
NOT
>
EXISTS
>
>
<
<
>
>
database-name
>
.
>
>
>
>
trigger-name
>
>
BEFORE
>
>
AFTER
>
>
INSTEAD
>
OF
>
>
>
>
<
<
>
>
DELETE
>
>
INSERT
>
>
UPDATE
>
>
>
>
OF
>
>
column-name
>
<
,
<
>
>
>
ON
>
table-name
>
<
<
>
>
FOR
>
EACH
>
ROW
>
>
>
>
>
WHEN
>
expr
>
>
>
>
<
<
>
BEGIN
>
>
>
update-stmt
>
>
insert-stmt
>
>
delete-stmt
>
>
select-stmt
>
>
;
>
<
<
>
END
>
>
⊗
create-view-stmt:
⊗
>
CREATE
>
>
>
>
TEMP
>
>
TEMPORARY
>
>
VIEW
>
>
>
>
IF
>
NOT
>
EXISTS
>
>
<
<
>
>
database-name
>
.
>
>
>
>
view-name
>
AS
>
select-stmt
>
>
⊗
create-virtual-table-stmt:
⊗
>
CREATE
>
VIRTUAL
>
TABLE
>
>
database-name
>
.
>
>
>
>
table-name
>
<
<
>
USING
>
module-name
>
>
(
>
>
module-argument
>
<
,
<
>
)
>
>
>
>
>
⊗
delete-stmt:
⊗
>
DELETE
>
FROM
>
qualified-table-name
>
>
WHERE
>
expr
>
>
>
>
⊗
delete-stmt-limited:
⊗
>
DELETE
>
FROM
>
qualified-table-name
>
>
WHERE
>
expr
>
>
>
>
<
<
>
>
>
ORDER
>
BY
>
>
ordering-term
>
<
,
<
>
>
>
>
<
<
>
LIMIT
>
integer
>
>
>
OFFSET
>
>
,
>
>
integer
>
>
>
>
>
>
>
>
>
⊗
detach-stmt:
⊗
>
DETACH
>
>
DATABASE
>
>
>
>
database-name
>
⊗
drop-index-stmt:
⊗
>
DROP
>
INDEX
>
>
IF
>
EXISTS
>
>
>
>
>
database-name
>
.
>
>
>
>
index-name
>
⊗
drop-table-stmt:
⊗
>
DROP
>
TABLE
>
>
IF
>
EXISTS
>
>
>
>
>
database-name
>
.
>
>
>
>
table-name
>
⊗
drop-trigger-stmt:
⊗
>
DROP
>
TRIGGER
>
>
IF
>
EXISTS
>
>
>
>
>
database-name
>
.
>
>
>
>
trigger-name
>
⊗
drop-view-stmt:
⊗
>
DROP
>
VIEW
>
>
IF
>
EXISTS
>
>
>
>
>
database-name
>
.
>
>
>
>
view-name
>
⊗
expr:
⊗
>
>
literal-value
>
>
bind-parameter
>
>
>
>
database-name
>
.
>
>
>
>
table-name
>
.
>
>
>
>
column-name
>
>
unary-operator
>
expr
>
>
expr
>
binary-operator
>
expr
>
>
function-name
>
(
>
>
>
DISTINCT
>
>
>
>
>
expr
>
<
,
<
>
>
>
>
*
>
>
)
>
>
(
>
expr
>
)
>
>
CAST
>
(
>
expr
>
AS
>
type-name
>
)
>
>
expr
>
COLLATE
>
collation-name
>
>
expr
>
>
NOT
>
>
>
>
>
LIKE
>
>
GLOB
>
>
REGEXP
>
>
MATCH
>
>
expr
>
>
ESCAPE
>
expr
>
>
>
>
>
expr
>
>
ISNULL
>
>
NOTNULL
>
>
NOT
>
NULL
>
>
>
expr
>
IS
>
>
NOT
>
>
>
>
expr
>
>
expr
>
>
NOT
>
>
>
>
BETWEEN
>
expr
>
AND
>
expr
>
>
expr
>
>
NOT
>
>
>
>
IN
>
>
(
>
>
>
>
select-stmt
>
>
>
expr
>
<
,
<
>
>
)
>
>
>
database-name
>
.
>
>
>
>
table-name
>
>
>
>
>
NOT
>
>
>
>
EXISTS
>
>
>
>
(
>
select-stmt
>
)
>
>
CASE
>
>
expr
>
>
>
>
>
WHEN
>
expr
>
THEN
>
expr
>
<
<
>
>
ELSE
>
expr
>
>
>
>
END
>
>
raise-function
>
>
⊗
raise-function:
⊗
>
RAISE
>
(
>
>
IGNORE
>
>
>
ROLLBACK
>
>
ABORT
>
>
FAIL
>
>
,
>
error-message
>
>
)
>
⊗
literal-value:
⊗
>
>
integer-literal
>
>
floating-point-literal
>
>
string-literal
>
>
blob-literal
>
>
NULL
>
>
CURRENT_TIME
>
>
CURRENT_DATE
>
>
CURRENT_TIMESTAMP
>
>
⊗
insert-stmt:
⊗
>
>
INSERT
>
>
>
>
OR
>
>
ROLLBACK
>
>
ABORT
>
>
REPLACE
>
>
FAIL
>
>
IGNORE
>
>
>
>
REPLACE
>
>
INTO
>
>
database-name
>
.
>
>
>
>
table-name
>
<
<
>
>
>
(
>
>
column-name
>
<
,
<
>
)
>
>
>
>
>
VALUES
>
(
>
>
expr
>
<
,
<
>
)
>
>
select-stmt
>
>
>
DEFAULT
>
VALUES
>
>
>
⊗
pragma-stmt:
⊗
>
PRAGMA
>
>
database-name
>
.
>
>
>
>
pragma-name
>
>
>
>
=
>
pragma-value
>
>
(
>
pragma-value
>
)
>
>
⊗
pragma-value:
⊗
>
>
signed-number
>
>
name
>
>
string-literal
>
>
⊗
reindex-stmt:
⊗
>
REINDEX
>
>
collation-name
>
>
>
database-name
>
.
>
>
>
>
>
table-name
>
>
index-name
>
>
>
⊗
select-stmt:
⊗
>
>
select-core
>
>
<
<
compound-operator
<
<
>
<
<
>
>
ORDER
>
BY
>
>
ordering-term
>
<
,
<
>
>
>
>
<
<
>
>
LIMIT
>
integer
>
>
>
OFFSET
>
>
,
>
>
integer
>
>
>
>
>
>
>
>
⊗
select-core:
⊗
>
SELECT
>
>
>
>
DISTINCT
>
>
ALL
>
>
>
result-column
>
<
,
<
>
<
<
>
>
FROM
>
join-source
>
>
>
>
<
<
>
>
WHERE
>
expr
>
>
>
>
<
<
>
>
GROUP
>
BY
>
>
ordering-term
>
<
,
<
>
>
HAVING
>
expr
>
>
>
>
>
>
>
>
⊗
result-column:
⊗
>
>
*
>
>
table-name
>
.
>
*
>
>
expr
>
>
>
AS
>
>
>
>
column-alias
>
>
>
>
>
⊗
join-source:
⊗
>
single-source
>
>
>
>
>
>
join-op
>
single-source
>
join-constraint
>
>
<
<
>
>
⊗
single-source:
⊗
>
>
>
database-name
>
.
>
>
>
>
table-name
>
>
>
AS
>
>
>
>
table-alias
>
>
>
>
>
>
>
INDEXED
>
BY
>
index-name
>
>
NOT
>
INDEXED
>
>
>
(
>
select-stmt
>
)
>
>
>
AS
>
>
>
>
table-alias
>
>
>
>
>
(
>
join-source
>
)
>
>
⊗
join-op:
⊗
>
>
,
>
>
>
>
>
NATURAL
>
>
>
>
>
>
LEFT
>
>
>
>
>
OUTER
>
>
>
INNER
>
>
CROSS
>
>
JOIN
>
>
⊗
join-constraint:
⊗
>
>
ON
>
expr
>
>
USING
>
(
>
>
column-name
>
<
,
<
>
)
>
>
>
>
⊗
ordering-term:
⊗
>
expr
>
>
>
>
COLLATE
>
collation-name
>
>
>
>
>
ASC
>
>
DESC
>
>
⊗
compound-operator:
⊗
>
>
UNION
>
>
ALL
>
>
>
>
>
INTERSECT
>
>
EXCEPT
>
>
⊗
update-stmt:
⊗
>
UPDATE
>
>
>
>
OR
>
>
ROLLBACK
>
>
ABORT
>
>
REPLACE
>
>
FAIL
>
>
IGNORE
>
>
>
qualified-table-name
>
<
<
>
SET
>
>
column-name
>
=
>
expr
>
<
,
<
>
>
WHERE
>
expr
>
>
>
>
>
⊗
update-stmt-limited:
⊗
>
UPDATE
>
>
>
>
OR
>
>
ROLLBACK
>
>
ABORT
>
>
REPLACE
>
>
FAIL
>
>
IGNORE
>
>
>
qualified-table-name
>
<
<
>
SET
>
>
column-name
>
=
>
expr
>
<
,
<
>
>
WHERE
>
expr
>
>
>
>
<
<
>
>
>
ORDER
>
BY
>
>
ordering-term
>
<
,
<
>
>
>
>
<
<
>
LIMIT
>
integer
>
>
>
OFFSET
>
>
,
>
>
integer
>
>
>
>
>
>
>
>
>
⊗
qualified-table-name:
⊗
>
>
database-name
>
.
>
>
>
>
table-name
>
>
>
>
INDEXED
>
BY
>
index-name
>
>
NOT
>
INDEXED
>
>
⊗
vacuum-stmt:
⊗
>
VACUUM
>
⊗
comment-syntax:
⊗
>
>
--
>
>
>
<
anything-except-newline
<
>
>
newline
>
>
end-of-input
>
>
>
/*
>
>
>
<
anything-except-*/
<
>
>
*/
>
>
end-of-input
>
>
>
⊗