SQLite is followed by unique set of rules and guidelines called Syntax. This chapter lists all the basic SQLite Syntax.
Important point to be noted is that SQLite is case insensitive, but there are some commands, which are case sensitive like GLOB and glob have different meaning in SQLite statements.
SQLite comments are extra notes, which you can add in your SQLite code to increase its readability and they can appear anywhere; whitespace can occur, including inside expressions and in the middle of other SQL statements but they cannot be nested.
SQL comments begin with two consecutive "-" characters (ASCII 0x2d) and extend up to and including the next newline character (ASCII 0x0a) or until the end of input, whichever comes first.
You can also use C-style comments, which begin with "/*" and extend up to and including the next "*/" character pair or until the end of input, whichever comes first. C-style comments can span multiple lines.
sqlite> .help -- This is a single line comment
All the SQLite statements start with any of the keywords like SELECT, INSERT, UPDATE, DELETE, ALTER, DROP, etc., and all the statements end with a semicolon (;).
ANALYZE; or ANALYZE database_name; or ANALYZE database_name.table_name;
SELECT column1, column2....columnN FROM table_name WHERE CONDITION-1 {AND|OR} CONDITION-2;
ALTER TABLE table_name ADD COLUMN column_def...;
ALTER TABLE table_name RENAME TO new_table_name;
ATTACH DATABASE 'DatabaseName' As 'Alias-Name';
BEGIN; or BEGIN EXCLUSIVE TRANSACTION;
SELECT column1, column2....columnN FROM table_name WHERE column_name BETWEEN val-1 AND val-2;
COMMIT;
CREATE INDEX index_name ON table_name ( column_name COLLATE NOCASE );
CREATE UNIQUE INDEX index_name ON table_name ( column1, column2,...columnN);
CREATE TABLE table_name( column1 datatype, column2 datatype, column3 datatype, ..... columnN datatype, PRIMARY KEY( one or more columns ) );
CREATE TRIGGER database_name.trigger_name BEFORE INSERT ON table_name FOR EACH ROW BEGIN stmt1; stmt2; .... END;
CREATE VIEW database_name.view_name AS SELECT statement....;
CREATE VIRTUAL TABLE database_name.table_name USING weblog( access.log ); or CREATE VIRTUAL TABLE database_name.table_name USING fts3( );
COMMIT;
SELECT COUNT(column_name) FROM table_name WHERE CONDITION;
DELETE FROM table_name WHERE {CONDITION};
DETACH DATABASE 'Alias-Name';
SELECT DISTINCT column1, column2....columnN FROM table_name;
DROP INDEX database_name.index_name;
DROP TABLE database_name.table_name;
DROP INDEX database_name.view_name;
DROP INDEX database_name.trigger_name;
SELECT column1, column2....columnN FROM table_name WHERE column_name EXISTS (SELECT * FROM table_name );
EXPLAIN INSERT statement...; or EXPLAIN QUERY PLAN SELECT statement...;
SELECT column1, column2....columnN FROM table_name WHERE column_name GLOB { PATTERN };
SELECT SUM(column_name) FROM table_name WHERE CONDITION GROUP BY column_name;
SELECT SUM(column_name) FROM table_name WHERE CONDITION GROUP BY column_name HAVING (arithematic function condition);
INSERT INTO table_name( column1, column2....columnN) VALUES ( value1, value2....valueN);
SELECT column1, column2....columnN FROM table_name WHERE column_name IN (val-1, val-2,...val-N);
SELECT column1, column2....columnN FROM table_name WHERE column_name LIKE { PATTERN };
SELECT column1, column2....columnN FROM table_name WHERE column_name NOT IN (val-1, val-2,...val-N);
SELECT column1, column2....columnN FROM table_name WHERE CONDITION ORDER BY column_name {ASC|DESC};
PRAGMA pragma_name; For example: PRAGMA page_size; PRAGMA cache_size = 1024; PRAGMA table_info(table_name);
RELEASE savepoint_name;
REINDEX collation_name; REINDEX database_name.index_name; REINDEX database_name.table_name;
ROLLBACK; or ROLLBACK TO SAVEPOINT savepoint_name;
SAVEPOINT savepoint_name;
SELECT column1, column2....columnN FROM table_name;
UPDATE table_name SET column1 = value1, column2 = value2....columnN=valueN [ WHERE CONDITION ];
VACUUM;
SELECT column1, column2....columnN FROM table_name WHERE CONDITION;