English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основное руководство по SQLite

Дополнительное руководство по SQLite

Программный интерфейс SQLite

Грамматика SQLite

После SQLite идет набор уникальных правил и принципов, называемых грамматикой. В этой главе перечислены все основные грамматические правила SQLite.

Различие регистра

Одним из моментов, на который нужно обратить внимание, является то, что SQLite не различает регистр, то есть предложения GLOB и glob имеют одинаковый смысл в запросах SQLite.

Комментарии

Комментарии SQLite являются дополнительными комментариями, которые можно добавить в код SQLite для улучшения его читаемости и которые могут出现在 anywhere; они могут содержать пробельные символы, включая внутри выражений и между другими SQL-запросами, но не могут быть вложенными.

Комментарии SQL начинаются с двух続ающихся дефисов (ASCII 0x2d) и продолжаются до следующей строки (ASCII 0x0a) или до конца ввода (в зависимости от того, что наступит раньше).

Вы также можете использовать комментарии в стиле C, которые начинаются с "/*" и продолжаются до следующей пары "*/", или до конца ввода (в зависимости от того, что наступит раньше). Комментарии в стиле C могут продолжаться на несколько строк.

sqlite> .help -- Это одна строка комментария

Запросы SQLite

Все SQLite-запросы начинаются с ключевых слов SELECT, INSERT, UPDATE, DELETE, ALTER, DROP и т.д., все запросы заканчиваются точкой с запятой (;).

SQLite ANALYZE оператор

ANALYZE;
или
ANALYZE database_name;
или
ANALYZE database_name.table_name;

SQLite AND / OR предложение

SELECT столбец1, столбец2....столбецN
FROM ИМЯ ТАБЛИЦЫ
WHERE CONDITION-1 {AND|OR} CONDITION-2;

SQLite ALTER TABLE оператор

ALTER TABLE table_name ADD COLUMN column_def...;

SQLite ALTER TABLE оператор (переименовывать)

ALTER TABLE table_name RENAME TO new_table_name;

SQLite ATTACH DATABASE оператор

ATTACH DATABASE 'DatabaseName' As 'Alias-Name';

SQLite BEGIN TRANSACTION оператор

BEGIN;
или
BEGIN EXCLUSIVE TRANSACTION;

SQLite BETWEEN предложение

SELECT столбец1, столбец2....столбецN
FROM ИМЯ ТАБЛИЦЫ
WHERE column_name BETWEEN val-1 AND val-2;

SQLite COMMIT оператор

COMMIT;

SQLite CREATE INDEX оператор

CREATE INDEX index_name
ON table_name (column_name COLLATE NOCASE);

SQLite CREATE UNIQUE INDEX оператор

CREATE UNIQUE INDEX index_name
ON table_name (column1, column2,...columnN);

SQLite CREATE TABLE оператор

CREATE TABLE table_name (
   column1 datatype,
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,
   PRIMARY KEY (one or more columns));

SQLite CREATE TRIGGER оператор

CREATE TRIGGER database_name.trigger_name 
BEFORE INSERT ON table_name FOR EACH ROW
BEGIN 
   stmt1; 
   stmt2;
   ....
END;

SQLite оператор CREATE VIEW

CREATE VIEW database_name.view_name AS
SELECT statement....;

SQLite оператор CREATE VIRTUAL TABLE

CREATE VIRTUAL TABLE database_name.table_name USING weblog(access.log);
или
CREATE VIRTUAL TABLE database_name.table_name USING fts3( );

SQLite оператор COMMIT TRANSACTION

COMMIT;

SQLite подзапрос COUNT

SELECT COUNT(column_name) FROM table_name
WHERE УСЛОВИЕ;

SQLite оператор DELETE

DELETE FROM table_name
WHERE {CONDITION};

SQLite оператор DETACH DATABASE

DETACH DATABASE 'Alias-Name';

SQLite подзапрос DISTINCT

SELECT DISTINCT column1, column2....columnN
FROM table_name;

SQLite оператор DROP INDEX

DROP INDEX database_name.index_name;

SQLite оператор DROP TABLE

DROP TABLE database_name.table_name;

SQLite оператор DROP VIEW

DROP INDEX database_name.view_name;

SQLite оператор DROP TRIGGER

DROP INDEX database_name.trigger_name;

SQLite подзапрос EXISTS

SELECT столбец1, столбец2....столбецN
FROM ИМЯ ТАБЛИЦЫ
WHERE column_name EXISTS (SELECT * FROM table_name);

SQLite EXPLAIN оператор

EXPLAIN INSERT statement...;
или 
EXPLAIN QUERY PLAN SELECT statement...;

SQLite GLOB подзапрос

SELECT столбец1, столбец2....столбецN
FROM ИМЯ ТАБЛИЦЫ
WHERE column_name GLOB { ПАТТЕРН };

Предложение GROUP BY SQLite

SELECT SUM(column_name) FROM table_name
WHERE УСЛОВИЕ
GROUP BY column_name;

SQLite HAVING предложение

SELECT SUM(column_name) FROM table_name
WHERE УСЛОВИЕ
GROUP BY column_name
HAVING (арифметическая функция условие);

SQLite INSERT INTO предложение

INSERT INTO table_name( column1, column2....columnN)
VALUES ( value1, value2....valueN);

SQLite IN предложение

SELECT столбец1, столбец2....столбецN
FROM ИМЯ ТАБЛИЦЫ
WHERE column_name IN (val-1, val-2,...val-N);

SQLite LIKE предложение

SELECT столбец1, столбец2....столбецN
FROM ИМЯ ТАБЛИЦЫ
WHERE column_name LIKE { ПАТТЕРН };

SQLite NOT IN предложение

SELECT столбец1, столбец2....столбецN
FROM ИМЯ ТАБЛИЦЫ
WHERE column_name NOT IN (val-1, val-2,...val-N);

Предложение ORDER BY SQLite

SELECT столбец1, столбец2....столбецN
FROM ИМЯ ТАБЛИЦЫ
WHERE УСЛОВИЕ
ORDER BY column_name {ASC|DESC};

SQLite PRAGMA предложений

PRAGMA pragma_name;
Например:
PRAGMA page_size;
PRAGMA cache_size = 1024;
PRAGMA table_info(table_name);

SQLite RELEASE SAVEPOINT предложений

RELEASE savepoint_name;

SQLite REINDEX предложений

REINDEX collation_name;
REINDEX database_name.index_name;
REINDEX database_name.table_name;

SQLite ROLLBACK предложений

ROLLBACK;
или
ROLLBACK TO SAVEPOINT savepoint_name;

SQLite SAVEPOINT предложений

SAVEPOINT savepoint_name;

SQLite SELECT предложений

SELECT столбец1, столбец2....столбецN
FROM table_name;

SQLite UPDATE предложений

UPDATE ИМЯ ТАБЛИЦЫ
SET столбец1 = значение1, столбец2 = значение2....столбецN=значениеН
[ WHERE  УСЛОВИЕ  ];

Запрос VACUUM SQLite

VACUUM;

WHERE-предложение SQLite

SELECT столбец1, столбец2....столбецN
FROM ИМЯ ТАБЛИЦЫ
WHERE УСЛОВИЕ;