Skip to content

SQLite чрезвычайно распространен, и, по оценкам, в активном использовании находится 1 триллион баз данных SQLite. Это подсчет множества баз данных на каждом устройстве Android и iOS, каждом компьютере macOS и Windows 10, большинстве систем Linux, в каждом веб-браузере на базе Webkit, современных телевизорах, автомобильных мультимедийных системах и бесчисленном множестве других программных приложений. Научиться использовать его в интерактивном режиме-это отличный первый шаг к управлению им для веб-приложений или использованию его через библиотеки языков программирования. Начните работу с этой шпаргалкой SQLite.

SQLite3 Cheat Sheet

SQLite это общедоступная библиотека языка C, реализующая небольшой, быстрый, автономный, надежный и полнофункциональный механизм базы данных SQL.

Manipulating data

Create database > .open example.db; Create table and define fields > CREATE TABLE IF NOT EXISTS mytable ( → foo TEXT NOT NULL); View tables in database > .tables Insert data into a table > INSERT INTO mytable (foo) → VALUES ('aaa'), ('bbb'),('ccc'); View table schema > .schema mytable Add a new column to mytable > ALTER TABLE mytable ADD bar INTEGER; Update data in a table > UPDATE mytable SET foo=^123 → WHERE bar=’aaa’;

Joins

Display an inner join > SELECT * FROM mytable → INNER JOIN othertable → ON mytable.rowid=othertable.foo; Display a left join > SELECT * FROM mytable LEFT JOIN → ON mytable.id=othertable.foo; Display a cross join > SELECT * FROM mytable → CROSS JOIN othertable;

Data types Some SQLite functions

TEXT Text data abs() Absolute value INTEGER Whole number max() min() Maximum and minimum values REAL Fleating point number upper() lower() Convert case of string BLOB Binary data length() Length of string NULL Null value random() (Pseudo) random integer

Select

Display all data > SELECT * FROM mytable; Display data of the third row > SELECT * FROM mytable → WHERE rowid=3; Display foo and bar columns > SELECT foo,bar FROM mytable; Display first 10 results > SELECT * FROM mytable LIMIT 10; Sort by column foo > SELECT * FROM mytable ORDER BY foo;

Views

A view is a virtual table providing a template for displaying the results of a specific query. Create a new view > CREATE VIEW myview AS → SELECT foo FROM mytable → WHERE example > 10; Show existing views > .tables Display data with a view > SELECT * FROM myview; Delete ( drop ) a view > DROP VIEW myview;

Column constraints

Set default text for a field DEFAULT ‘default text’ Enforce unique value UNIQUE Designate a column as a unique identifier PRIMARY KEY

CREATE TABLE mytable → (Id INTEGER PRIMARY KEY); Pointer to a primary key of a different table FOREIGN KEY Impose a condition for validation CHECK CREATE TABLE mytable → (CHECK(condition>0), bar TEXT); Prevent NULL values NOT NULL

SqLite cli

sqlite3 --help
Usage: sqlite3 [OPTIONS] FILENAME [SQL]
FILENAME is the name of an SQLite database. A new database is created
if the file does not previously exist.
OPTIONS include:
   -ascii               установите режим вывода в "ascii"
   -bail                остановка после обнаружения ошибки
   -batch               force пакетный ввод/вывод
   -column              установите режим вывода в "столбец"
   -cmd COMMAND         запустите "КОМАНДУ" перед чтением stdin
   -csv                 установите режим вывода в "csv"
   -echo                print commands перед выполнением
   -init FILENAME       read/process named file
   -[no]header          turn headers on or off
   -help                show this message
   -html                set output mode to HTML
   -interactive         force interactive I/O
   -line                set output mode to 'line'
   -list                set output mode to 'list'
   -lookaside SIZE N    use N entries of SZ bytes for lookaside memory
   -mmap N              default mmap size set to N
   -newline SEP         set output row separator. Default: '\n'
   -nullvalue TEXT      set text string for NULL values. Default ''
   -pagecache SIZE N    use N slots of SZ bytes each for page cache memory
   -quote               set output mode to 'quote'
   -separator SEP       set output column separator. Default: '|'
   -stats               print memory stats before each finalize
   -version             show SQLite version
   -vfs NAME            use NAME as the default VFS
sqlite> .help
.archive ... Управление архивами SQL
.auth ВКЛ | ВЫКЛ Показать обратные вызовы авторизатора
.backup? БД? ФАЙЛ Резервная БД (по умолчанию "основная") в ФАЙЛ
.bail on | off Остановить после появления ошибки. По умолчанию ВЫКЛ.
.binary on | off Включение или выключение двоичного вывода. По умолчанию ВЫКЛ.
.cd КАТАЛОГ Изменить рабочий каталог на КАТАЛОГ
.changes on | off Показать количество строк, измененных SQL
.check GLOB Fail, если вывод, поскольку .testcase не соответствует
.clone NEWDB Клонировать данные в NEWDB из существующей базы данных
.databases Список имен и файлов прикрепленных баз данных.
.dbconfig? op? ? val? Список или изменение параметров sqlite3_db_config ()
.dbinfo? DB? Показать информацию о статусе базы данных
.dump? ОБЪЕКТЫ? Отображать содержимое базы данных как SQL
.echo on | off Включение или выключение эха команды
.eqp on | off | full | ... Включение или отключение автоматического EXPLAIN QUERY PLAN
.excel Отобразить вывод следующей команды в электронной таблице
.exit? КОД? Выйдите из этой программы с кодом возврата CODE
.expert ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ. Предлагать индексы для запросов
. объяснить? on | off | auto? Измените режим форматирования EXPLAIN. По умолчанию: авто
.filectrl CMD ... Запуск различных операций sqlite3_file_control ()
.fullschema? - отступ? Показать схему и содержимое таблиц sqlite_stat
.headers on | off Включение или отключение отображения заголовков.
.help? -все? ?ШАБЛОН? Показать текст справки для ШАБЛОНА
.import ТАБЛИЦА ФАЙЛОВ Импортировать данные из ФАЙЛА в ТАБЛИЦУ
.imposter INDEX TABLE Создать таблицу imposter TABLE по индексу INDEX
.индексы? ТАБЛИЦА? Показать названия индексов
.limit? LIMIT? ? ВАЛ? Отображение или изменение значения SQLITE_LIMIT
.lint ОПЦИИ Сообщает о потенциальных проблемах схемы.
.load ФАЙЛ? ВХОД? Загрузите библиотеку расширений
.log ФАЙЛ | off Включение или отключение входа в систему. ФАЙЛ может быть stderr / stdout
.mode РЕЖИМ? ТАБЛИЦА? Установить режим вывода
.nullvalue STRING Использовать STRING вместо значений NULL
.once? OPTIONS? ?ФАЙЛ? Вывод следующей команды SQL только в ФАЙЛ
.open? ОПЦИИ? ?ФАЙЛ? Закройте существующую базу данных и снова откройте ФАЙЛ
.выходной файл? Отправить вывод в ФАЙЛ или стандартный вывод, если ФАЙЛ опущен
.parameter CMD ... Управление привязками параметров SQL
.print STRING ... Распечатать буквальный STRING
.progress N Вызвать обработчик прогресса после каждых N кодов операций
.prompt ГЛАВНАЯ ПРОДОЛЖИТЬ Заменить стандартные подсказки
.quit Выйти из программы
.read ФАЙЛ Читать ввод из ФАЙЛА
.recover Восстановить как можно больше данных из поврежденной базы данных.
.restore? DB? ФАЙЛ Восстановить содержимое БД (по умолчанию "основная") из ФАЙЛА
.save ФАЙЛ Записать базу данных в памяти в ФАЙЛ
.scanstats on | off Включение или отключение показателей sqlite3_stmt_scanstatus ()
.schema? ШАБЛОН? Показать операторы CREATE, соответствующие PATTERN
.selftest? ОПЦИИ? Выполнить тесты, указанные в таблице SELFTEST
.separator COL? ROW ?. Измените разделители столбцов и строк
.session? NAME? CMD ... Создание или управление сеансами
.sha3sum ... Вычислить SHA3-хэш содержимого базы данных
.shell CMD ARGS ... Запустить CMD ARGS ... в системной оболочке
.show Показать текущие значения для различных настроек
.stats? ARG? Показать статистику или включить или выключить статистику
.system CMD ARGS ... Запустить CMD ARGS ... в системной оболочке
.таблицы? ТАБЛИЦА? Список имен таблиц, соответствующих шаблону LIKE TABLE
.testcase ИМЯ Начать перенаправление вывода на 'testcase-out.txt'
.testctrl CMD ... Запуск различных операций sqlite3_test_control ()
.timeout MS Попробуйте открыть заблокированные таблицы в течение миллисекунд MS
.timer on | off Включение или выключение таймера SQL
.trace? ОПЦИИ? Выводить каждый оператор SQL по мере его выполнения
.vfsinfo? AUX? Информация о VFS верхнего уровня
.vfslist Список всех доступных VFS.
.vfsname? AUX? Вывести имя стека VFS
.width NUM1 NUM2 ... Установить минимальную ширину столбца для вывода в столбец
sqlite>