Sqlite как пользоваться приложением
SQLite - это легкая внутрипроцессная библиотека, в которой реализован автономный серверный транзакционный механизм базы данных SQL с нулевой конфигурацией. Код для SQLite доступен в открытом доступе и, следовательно, он бесплатен для использования в любых целях, коммерческих или частных.
дизайн
- SQLite - это встроенный движок базы данных SQL
- SQLite не имеет отдельного серверного процесса, как большинство других баз данных SQL. SQLite читает и пишет напрямую в обычные файлы на диске.
- В одном файле на диске вся база данных SQL (несколько таблиц, индексов, триггеров и представлений) хранится в виде одного кроссплатформенного файла на хост-компьютере.
история
- Д. Ричард Хипп разработал SQLite весной 2000 года.
- В августе 2000 года была выпущена версия 1.0 SQLite, основанная на gdbm (GNU Database Manager). SQLite 2.0 заменил gdbm собственной реализацией B-дерева, добавив поддержку транзакций.
- Бета-версия SQLite 3.0.2 была выпущена 2004-06-30.
- В 2011 году Хипп объявил о своих планах добавить интерфейс UnQL к базам данных SQLite и разработать UnQLite, встраиваемую документно-ориентированную базу данных.
- Говард Чу портировал SQLite 3.7.7.1 для использования Openldap MDB вместо исходного кода Btree и назвал его sqlightning.
- Чтобы проверить последнюю стабильную версию и подробности истории выпуска, нажмите здесь .
Характеристики
- Автономный: нет внешних зависимостей.
- Написано в ANSI-C.
- Нулевая конфигурация - настройка и администрирование не требуются.
- Полная база данных хранится в одном межплатформенном диске.
- Формат файла базы данных является кроссплатформенным (Linux, Mac OS-X, Android, iOS и Windows) - вы можете свободно копировать базу данных между 32-разрядными и 64-разрядными системами или между архитектурами с прямым порядком байтов и байтов с прямым порядком байтов.
- Отлично подходит для использования в качестве формата файла приложения.
- Доступен в виде одного файла исходного кода ANSI-C, который можно легко перенести в другой проект.
- Простой, удобный API.
- Реализует большую часть SQL92 за исключением некоторых функций.
- Транзакции совместимы с ACID (атомарными, согласованными, изолированными и надежными) даже после сбоев системы и сбоев питания.
- Поставляется с отдельным клиентом интерфейса командной строки (CLI), который можно использовать для администрирования баз данных SQLite.
Где SQLite работает хорошо
- База данных сайта. Поскольку SQLite не требует настройки и хранит информацию в обычных дисковых файлах, он является популярным выбором в качестве базы данных для поддержки небольших и средних веб-сайтов.
- Формат файла приложения. Вместо того чтобы использовать fopen () для записи XML, JSON, CSV или другого закрытого формата в файлы на диске, используемые вашим приложением, используйте базу данных SQLite. Вы избежите необходимости писать и устранять неполадки парсера, ваши данные будут более легкодоступными и кроссплатформенными, а ваши обновления будут транзакционными.
- База данных для гаджетов. SQLite - популярный выбор для базы данных в мобильных телефонах, КПК, MP3-плеерах, телевизионных приставках и других электронных гаджетах. SQLite имеет небольшой объем кода, эффективно использует память, дисковое пространство и пропускную способность диска, отличается высокой надежностью и не требует обслуживания со стороны администратора базы данных.
- Stand-In для предприятия RDBMS. SQLite часто используется в качестве суррогата СУРБД предприятия для демонстрационных целей или для тестирования. SQLite работает быстро и не требует настройки, что значительно облегчает тестирование и делает демонстрации веселыми и удобными для запуска.
Языки программирования
SQLite имеет привязки для большого количества языков программирования, вот список:
Фреймворки веб-приложений
- Bugzilla, база данных ошибок Mozilla.
- Django, веб-фреймворк Python.
- Начиная с версии 7, Drupal, основанная на PHP система управления контентом для создания веб-сайтов и блогов, имеет возможность установки с использованием SQLite.
- Рубин на рельсах.
- web2py, веб-фреймворк Python.
Кто использует SQLite
- Google: Google использует SQLite на своем рабочем столе для Mac, в Google Gears, в операционной системе мобильного телефона Android и в браузере Chrome.
- Dropbox: Dropbox использует SQLite в качестве основного хранилища данных на стороне клиента для службы архивирования и синхронизации.
- Mozilla: Mozilla использует SQLite в качестве основного формата хранения метаданных для Firefox, веб-браузера и Thunderbird Email Reader.
- McAfee: McAfee использует SQLite в своих антивирусных программах.
- Flame: Flame - это вредоносная шпионская программа, использующая SQLite.
- Microsoft: Из трафика в списке рассылки SQLite можно сделать вывод, что по крайней мере одна группа в Microsoft использует SQLite для разработки игровой программы.
- Skype: Skype использует SQLite в клиенте Skype для Mac OS X и Windows.
- Adobe: Adobe использует SQLite в качестве формата файла приложения для своего продукта Photoshop Lightroom.
- Airbus: Airbus использует SQLite в своем программном обеспечении для полетов.
- Apple: Apple использует SQLite для многих функций в Mac OS X, включая Apple Mail, Safari и в Aperture. Apple использует SQLite в iPhone, iPod touch и iTunes.
- Intuit: Intuit, очевидно, использует SQLite в QuickBooks и в TurboTax
- PHP: язык программирования PHP поставляется со встроенными SQLite2 и SQLite3.
- Python: SQLite поставляется с языком программирования Python начиная с Python 2.5.
- REALbasic. Среда программирования REALbasic поставляется с расширенной версией SQLite, которая поддерживает шифрование AES.
- Tcl / Tk: язык программирования Tcl / Tk теперь поставляется со встроенным SQLite.
Ограничения в SQLite
- Максимальный размер базы данных. Каждая база данных состоит из одной или нескольких «страниц» с разными размерами от 512 до 65536. Максимальный размер файла базы данных составляет 2147483646 страниц.
- Максимальное количество таблиц в схеме: для каждой таблицы и индекса требуется как минимум одна страница в файле базы данных. Максимальное количество страниц в файле базы данных - 2147483646, поэтому это верхняя граница количества таблиц и индексов в схеме. Максимальное количество строк в таблице: теоретическое максимальное количество строк в таблице составляет 264 (18446744073709551616 или около 1,8e + 19). Этот предел недоступен, так как сначала будет достигнут максимальный размер базы данных в 140 терабайт.
- Максимальное количество подключаемых баз данных: Количество одновременно подключаемых баз данных ограничено значением SQLITE_MAX_ATTACHED, которое по умолчанию установлено равным 10. Генератор кода в SQLite использует растровые изображения для отслеживания подключенных баз данных. Это означает, что количество подключенных баз данных не может быть увеличено выше 62.
- Максимальная длина строки или BLOB: максимальное количество байтов в строке или BLOB в SQLite определяется макросом препроцессора SQLITE_MAX_LENGTH. Значение этого макроса по умолчанию составляет 1 миллиард (1 тысяча миллионов или 1 000 000 000).
- Максимальное количество столбцов. Параметр времени компиляции SQLITE_MAX_COLUMN используется для установки верхней границы числа столбцов в таблице. Значение по умолчанию для SQLITE_MAX_COLUMN - 2000. Вы можете изменить его во время компиляции до значений, равных 32767.
- Максимальная длина оператора SQL. Максимальное количество байтов в тексте оператора SQL ограничено значением SQLITE_MAX_SQL_LENGTH, которое по умолчанию равно 1000000. Вы можете переопределить это ограничение, равное меньшему из SQLITE_MAX_LENGTH и 1073741824.
- Максимальное количество таблиц в объединении: SQLite не поддерживает объединения, содержащие более 64 таблиц.
- Максимальное количество аргументов для функции: параметр SQLITE_MAX_FUNCTION_ARG определяет максимальное количество параметров, которое может быть передано в функцию SQL, а верхняя граница для SQLITE_MAX_FUNCTION_ARG равна 127.
- Максимальное количество терминов в составном операторе SELECT: составной оператор SELECT - это два или более операторов SELECT, соединенных операторами UNION, UNION ALL, EXCEPT или INTERSECT. Максимальное количество терминов - SQLITE_MAX_COMPOUND_SELECT, по умолчанию 500.
Инструменты, связанные с SQLite
Функции SQL, не реализованные в SQLite
- ПРАВИЛЬНОЕ И ПОЛНОЕ НАРУШЕНИЕ
- Полная поддержка ALTER TABLE
- Полная поддержка триггеров
- Запись в VIEWs
- Грант и отозвать
Учебник по SQLite3 от w3resource
Перед началом этого урока вы должны иметь некоторые знания о SQL, например, как данные хранятся в таблице, как обновляются, как удаляются, как ищутся и т. Д.
Цели обучения:
- Краткое и краткое описание, которое поможет вам понять команду topic / SQLite.
- Синтаксис команды SQLite с описанием всех используемых параметров.
- Объяснение кода.
- Вывод команды SQLite при выполнении командной строки формы.
Упражнения по SQLite, практика, решение: отсюда вы можете попрактиковаться в сотнях упражнений по SQLite, которые помогут вам улучшить свои навыки работы с SQLite.
SQLite — это автономная база данных без сервера SQL. Ричард Хипп, создатель SQLite, впервые выпустил программное обеспечение 17 августа 2000 года. С тех пор оно стало вторым по популярности ПО в мире. Его используют даже в таких важных системах, как Airbus A350. Кстати, программа вместе со всеми библиотеками весит всего несколько мегабайт.
Для запуска SQLite 3, в командной строке нужно прописать следующее:
Вы можете изменить заданные по умолчанию настройки CLI SQLite 3, отредактировав файлы
/.sqliterc в директории. Это удобно для сохранения настроек, которые вы часто используете (рецептов). Вот пример:
Вы можете импортировать CSV-данные в SQLite 3 с помощью двух команд. Первая переводит клиент в CSV, а вторая импортирует данные из CSV-файла. Предполагаемый разделитель можно менять с помощью команды .separator.
Если таблицы назначения еще не существует, первая строка CSV-файлов будет использоваться для именования каждого из столбцов. Если таблица существует, то все строки данных будут добавлены в существующую таблицу.
В качестве примера я собрал несколько аэропортов Уэльса в CSV-файл с разными кодировками.
Я запустил в клиенте SQLite 3 новую базу данных под названием airport.db. Этого файла базы данных еще не существовало, поэтому SQLite 3 автоматически создал его для меня.
Я переключил клиент в режим CSV, установил запятую разделителем, а затем импортировал файл airport.csv.
Теперь появляется возможность запустить команду schema в таблице новых аэропортов, видим два столбца с названиями на японском языке и ещё два — с использованием ASCII-символов.
Без проблем можно давать команды, смешивая кодировки.
Кроме того, можно сбросить базу данных на SQL с помощью лишь одной команды.
Имейте в виду, что созданные файлы .db могут быть слишком большими. Во время написания этой статьи у меня получился CSV-файл с миллионом рядов и 12 столбцами, состоящий в основном из чисел и одного текстового поля. Сжатый CSV-файл с GZIP весил 41 МБ, распакованный CSV — 142 МБ, а при импорте в SQLite 3 — .db-файл — 165 МБ. Я смог с GZIP сжать файл .db до 48 МБ, но, к сожалению, SQLite 3 не может открывать базы данных, сжатые GZIP.
Локальность данных может быть значительно улучшена за счет хранения базы данных SQLite 3 в памяти, а не на диске. Ниже приведен пример, где я вычисляю 10 значений Фибоначчи и сохраняю их в базе данных SQLite 3, находящейся в памяти, с использованием Python 3.
Вы можете создавать пользовательские функции в Python, которые будут выполняться с использованием данных, находящихся внутри БД SQLite 3. Ниже приведена небольшая база данных SQLite 3:
Затем я создал функцию на Python, которая извлекает имя хоста из URL-адреса и выполняет действия, ориентируясь на таблицу.
Вот что выводится при вызове функции fetchall:
Клиент SQLite 3 способен работать с несколькими базами данных за один сеанс. Ниже я запустил клиент и подключил две базы данных.
Затем я запустил команду .databases для вывода имен и мест баз данных.
В качестве префикса я использую имена таблиц в моих запросах с именем, которое я назначил базе данных.
Jupyter Notebooks — популярная программа для визуализации данных. Ниже можно посмотреть процесс настройки и несколько примеров визуализаций.
Для начала я установил ряд системных зависимостей.
Затем я создал виртуальную среду Python, чтобы можно было отделить зависимость Python от других проектов и назвал её .taxis.
Я обновил менеджер пакетов «pip» Python до версии 9.0.1 в этой виртуальной среде.
Затем я установил несколько популярных Python-библиотек.
Затем я включил расширение gmaps и разрешил Jupyter использовать виджеты.
После этого я запустил сервер Notebook. Вы увидите URL-адрес, содержащий параметр токена. Чтобы запустить Notebook (не ПК, конечно же), откройте ссылку в веб-браузере.
Перед открытием URL-адреса я создал базу данных SQLite 3 из CSV-файла. Здесь содержится около миллиона случайных записей о поездках на такси. Чтобы экспортировать эти записи из Hive, я сделал следующее:
В моём блоге есть краткие инструкции по импорту набора данных в Hive. Если использовать инструкции не на ОС Raspbian, а на других, то имена пакетов, например, для JDK, вероятно, будут отличаться.
Вот первые три строки этого CSV-файла. Обратите внимание: первая строка содержит имена столбцов.
Я распаковал GZIP-файл, запустил SQLite 3, добавил trip.db в качестве параметра.
Затем переключился в режим CSV, убедился в том, что разделителем является запятая, и что импортирует CSV-файл в таблицу маршрутов.
Настроили, что дальше?
С импортированными данными я открыл Notebook URL-адрес и создал Python 3 Notebook в интерфейсе Jupyter’а. Теперь необходимо вставить следующее в первую ячейку, одновременно зажать shift и кнопку выполнения.
Код выше будет импортировать Pandas, библиотеку Python для SQLite 3, Holoviews — библиотеку обработки данных, библиотеку визуализации, а затем инициализировать расширение Bokeh для Holoviews. Наконец, будет установлено соединение с базой данных SQLite 3 с информацией о поездках на такси.
В следующем примере я привел код, который создаст heatmap для разбивки поездок по дням и часам.
Ниже приводится линейная диаграмма, показывающая количество поездок такси.
Чтобы построилась гистограмма, сравнивающая данные по разным цветам автомобилей, необходимо ввести информацию в новую ячейку.
Ниже приводится круговая диаграмма, показывающая зависимость поездок от времени суток.
Чтобы создать диаграмму матрицы рассеивания, выполните действия как в коде ниже. Заметьте, что это может занять несколько минут. Сначала будет показан массив данных, а потом и сам график.
Я натолкнулся на два способа отображения географических точек на картах. Первый — с Matplotlib и Basemap, которые будут работать в автономном режиме, без необходимости использовать API-ключи. Ниже будут указаны точки сбора для маршрутов такси в наборе данных.
Да, это выглядит несколько примитивно.
Следующий код построит heatmap поверх Google Maps виджета. Недостатком является то, что вам нужно будет создать связанный с Google API-ключ и подключаться к Интернету, когда вы его используете.
Pandas DataFrames отлично подходят для создания производных наборов данных с минимальным количеством кода. Кроме того, сброс Pandas DataFrames обратно в SQLite 3 очень прост. В этом примере я заполнил DataFrame некоторыми CSV-данными, создал новую базу данных SQLite 3 и выгрузил DataFrame в этот файл.
SQLite 3 — не игрушка, а мощное SQL-расширение. Поскольку скорость хранения и производительность одного ядра в процессорах увеличивают объем данных, SQLite 3 продолжает развиваться.
Я определенно считаю SQLite 3 одной из наиболее удобных баз данных, и я решаю значительное количество задач с его помощью.
Решил все-таки написать статью про SQLite, в которой хочу обобщить свой 3-х летний опыт использования этой БД под Windows. Вижу, что тема популярная, но информации мало.
Что такое SQLite?
SQLite — это встраиваемая кроссплатформенная БД, которая поддерживает достаточно полный набор команд SQL и доступна в исходных кодах (на языке C).
Исходные коды SQLite находятся в public domain, то есть вообще никаких ограничений на использование.
Текущая версия: 3.7.13
SQLite можно скомпилировать самому, но я скачиваю ее уже скомпилированную в виде Windows DLL.
Для собственной сборки обычно скачивают т.н. «amalgamation»,
т.е. исходники SQLite в виде единого файла на языке C + sqlite3.h.
Чтобы уменьшить размер кода SQlite, выкинув ненужные ништяки, используются всякие DEFINE.
Насколько SQLite популярна?
Кратко: она везде. Как минимум, на любом смартфоне.
Насколько она надежна?
Очень. При выпуске версии она проходит через ряд серьезнейших автоматических тестов (проводится
2 млн тестов), покрытие кода тестами 100% (с августа 2009).
А какие еще инструменты дают разработчики?
Доступна консольная утилита для работы с базами (sqlite3.exe, «a command-line shell for accessing and modifying SQLite databases»).
И все?
Да, от основных разработчиков — все. Однако, другие люди пишут всякие менеджеры и пр.
Лично я так и не нашел идеального и пользуюсь консолью.
Что значит «достаточно полный набор SQL»?
Как известно, в своем развитии SQL устремился в разные стороны. Крупные производители начали впихивать всякие расширения. И хотя принимаются всякие стандарты (SQL 92), в реальной жизни все крупные БД не поддерживают стандартов полностью + имеют что-то свое. Так вот, SQLite старается жить по принципу «минимальный, но полный набор». Она не поддерживает сложные штуки, но во многом соответствует SQL 92.
И вводит некие свои особенности, которые очень удобны, но — не стандартны.
Что конкретно в поддержке SQL может вызвать недоумение?
Нельзя удалить или изменить столбец в таблице (ALTER TABLE DROP COLUMN…, ALTER TABLE ALTER COLUMN… ).
Есть триггеры, но не настолько мощные как у крупных RDBMS.
Есть поддержка foreign key, но по умолчанию — она ОТКЛЮЧЕНА.
Нет встроенной поддержки UNICODE (но ее, вообщем, нетрудно добиться).
Нет хранимых процедур.
А что своего хорошего или необычного?
Не понял — что там с типом? Зачем нужен тип столбца тогда вообще?
Тип столбца определяет как сравнивать значения (нужно же их привести к единому типу при сравнении, скажем, внутри индекса).
Но не обязывает заносить значения именно такого типа в столбец. Нечто вроде weak typing.
Допустим, мы объявили столбец как «A INTEGER».
SQlite позволяет занести в этот столбец значения любого типа (999, «abc», «123», 678.525).
Если вставляемое значение — не целое, то SQlite пытается привести его к целому.
Т.е. строка «123» превратится в целое 123, а остальные значения запишутся «как есть».
Так можно вообще не задавать тип столбца?
Очень часто так и делается: CREATE TABLE foo (a,b,c,d).
А как с архитектурой? Сервера-то нету?
Сервера нету, само приложение является сервером. Доступ к БД происходит через «подключения» к БД (нечто вроде хэндла файла ОС), которые мы открываем через вызов соот-й функции DLL. При открытии указывается имя файла БД. Если такого нету — он автоматически создается.
Допустимо открывать множество подключений к одной и тоже БД (через имя файла) в одном или разных приложениях.
Система использует механизмы блокировки доступа к файлу на уровне ОС, чтобы это все работало
(эти механизмы обычно плохо работают на сетевых дисках, так что не рекомендуется использовать SQlite с файлом на сети).
Изначально SQlite работал по принципу «многие читают — один пишет».
То есть только одно соединение пишет в БД в данный момент времени. Если другие соединения попробуют тоже записать, то словят ошибку SQLITE_BUSY.
Можно, однако, ввести таймаут операций. Тогда подключение, столкнувшись с занятостью БД, будет ждать N секунду прежде, чем отвалиться с ошибкой SQLITE_BUSY.
И как быть?
Либо одно подключение и все запросы через него, либо исходить из возможного таймаута и предусмотреть повтор выполнения SQL.
Есть и еще одна возможность: не так давно появился новый вид лога SQlite: Write Ahead Log, WAL.
Если включить для БД именно этот режим лога, то несколько подключений смогут одновременно модифицировать БД.
Но в этом режиме БД уже занимает несколько файлов.
Ну понятно теперь почему SQLite — ужасна, ведь у нее нет ГЛОБАЛЬНОГО КЭША?
А почему все жалуются, что SQLite — тормозит?
Две причины. Первая — настройки по умолчанию. Они работают на надежность, а не на производительность.
Вторая — непонимание механизма фиксации транзакций. По умолчанию после любой команды SQlite будет фиксировать транзакцию (то есть ожидать пока БД окажется в целостном состоянии для отключения питания). В зависимости от режима паранойи SQLite потратит на это от 50 до 300 мс (ожидая окончания записи данных на диск).
Что делать-то? Мне нужно вставить 100 тыс записей и быстро!
Удалить индексы, включить режим синхронизации OFF (или NORMAL), вставлять порциями по N тысяч (N — подобрать, для начала взять 5000). Перед вставкой порции сделать BEGIN TRANSACTION, после — COMMIT.
А вот я нашел ошибку! Как рапортовать?
Лично у меня возникла ситуация, которую я трактовал как дефект SQLIte. Я описал это в рассылке. В следующей версии поведение SQLite было исправлено.
SQLite - это библиотека, написанная на языке C, которая обеспечивает работу с SQL. Данный инструмент относится к Реляционным системам управления базами данных. Большинство баз данных SQL работает по схеме клиент/сервер. Возьмём к примеру MySQL. В процессе работы данные берутся с MySQL сервера, и отправляются в качестве ответа на запрос. В случае использования SQLite, данные будут браться непосредственно с диска, т.е. не будет необходимости обращаться к серверу.
Установка
Мы будем взаимодействовать с базой данных через интерфейс командной строки sqlite3 (CLI) в Linux. Работа с sqlite3 CLI в MAC OS и Windows осуществляется таким же образом, однако я рекомендую вам потратить 5 минут на установку виртуальной машины, чтобы не захламлять свой компьютер лишним софтом.
Для установки sqlite3 на Linux выполняем команду:
sudo apt-get install sqlite3 libsqlite3-dev
В результате на вашей машине будет установлен sqlite3. Для установки данного инструмента на других ОС следуйте инструкциям. Для запуска sqlite выполняем команду sqlite3 в консоли. Результат должен быть таким:
Во второй строчке указана подсказка о том, что для получения справки необходимо выполнить команду .help . Давайте сделаем это. В результате мы увидим Мета Команды и их описание.
Мета Команды
Мета Команды - предназначены для формирования таблиц и других административных операций. Все они оканчиваются точкой. Пройдёмся по списку команд, которые могут пригодиться:
Команда | Описание |
.show | Показывает текущие настройки заданных параметров |
.databases | Показывает название баз данных и файлов |
.quit | Выход из sqlite3 |
.tables | Показывает текущие таблицы |
.schema | Отражает структуру таблицы |
.header | Отобразить или скрыть шапку таблицы |
.mode | Выбор режима отображения данных таблицы |
.dump | Сделать копию базы данных в текстовом формате |
Стандартные команды
Теперь давайте пройдёмся по списку стандартных команд sqlite3, которые предназначены для взаимодействия с базой данных. Стандартные команды могут быть классифицированы по трём группам:
- Язык описания данных DDL: команды для создания таблицы, изменения и удаления баз данных, таблиц и прочего.
Заметка: SQLite так же поддерживает и множество других команд, список которых можно найти тут. Поскольку данный урок предназначен для начинающих, мы ограничимся перечисленным набором команд.
Файлы баз данных SQLite являются кроссплатформенными. Они могут располагаться на различного рода устройствах.
Далее знакомство с sqlite3 будет осуществляться на базе данных, предназначенной для хранения комментариев. Для публикации комментария пользователю необходимо будет добавить следующие данные:
Из всех этих полей только адрес сайта может быть пустым. Так же можем ввести колонку для нумерации комментриев. Назовём её post_id .
Теперь давайте определимся с типами данных для каждой из колонок:
Атрибут | Тип данных |
post_id | INTEGER |
name | TEXT |
TEXT | |
website_url | TEXT |
comment | TEXT |
Тут вы сможете найти все типы данных, поддерживаемые в SQLite3.
Так же следует отметить, в SQLite3 данные, вставляемые в колонку могут отличаться от указанного типа. В MySQL такое не пройдёт.
Теперь давайте создадим базу данных. Если вы ещё находитесь в интерфейсе sqlite3, то наберите команду .quit для выхода. Теперь вводим:
В результате, в текущем каталоге у нас появится файл comment_section.db.
Заметка: если не указать название файла, sqlite3 создаст временную базу данных.
Создание таблицы
Для хранения комментариев нам необходимо создать таблицу. Назовём её comments . Выполняем команду:
NOT NULL обеспечит уверенность, что ячейка не будет содержать пустое значение. PRIMARY KEY и AUTOINCREMENT расширяют возможности поля post_id.
Чтобы убедиться в том, что таблица была создана, выполняем мета команду .tables . В результате видим нашу таблицу comments .
Заметка: Для получения структуры таблицы наберите .schema comments
Теперь можем внести данные в таблицу.
ВСТАВКА СТРОК
Предположим, что нам необходим внести следующую запись:
Для вставки воспользуемся командой INSERT.
Указывать значение для post_id не нужно т.к. оно сформируется автоматически благодаря настройке AUTOINCREMENT .
Чтобы набить руку можете вставить ещё несколько строк.
ВЫБОРКА
Для выборки данных воспользуемся командой SELECT.
Этот же запрос может выглядеть так:
Для отображения шапки введите .headers ON .
Для отображения колонок выполните команду .mode column .
Выполняем SELECT запрос ещё раз.
Заметка: вид отображения можно изменить, воспользовавшись мета командой .mode .
ОБНОВЛЕНИЕ
В результате запись будет изменена.
УДАЛЕНИЕ
Для выполнения команды DELETE нужно так же указать условие.
К примеру нам необходимо удалить комментарий с post_id = 9. Выполняем команду:
Для удаления комментариев пользователей ‘Bart Simpson’ и ‘Homer Simpson’ выполним:
ИЗМЕНЕНИ СТРУКТУРЫ
Для добавления новой колонки следует использовать команду ALTER. К примеру введём поле username. Выполняем команду:
Данная команда создаст новое текстовое поле в таблице comments . Для всех сток в качестве значения будет выставлено NULL.
Так же мы можем использовать команду ALTER для переименования таблицы comments на Coms .
УДАЛЕНИЕ
Для удаление нашей таблицы выполните следующую команду:
Заключение
SQLite3 даёт множество преимуществ в отличии от других СУБД. Множество фрэймворков таких как Django, Ruby on Rails и web2py по умолчанию используют SQLite3. Многие браузеры используют данный инструмент для хранения локальных данных. Так же она используется в качестве хранилища данных таких ОС как Android и Windows Phone 8.
Для работы с SQLite3 можно воспользоваться и программами с графическим интерфейсом. К примеру: DB Browser for SQLite и SQLiteStudio. Для тренировки работы с SQL можете поиграть с SQL Fiddle.
Данный урок может помочь стартовать с SQLite3. Для взаимодействия с данным СУБД в PHP можем воспользоваться расширением PDO.
5 последних уроков рубрики "Разное"
Как выбрать хороший хостинг для своего сайта?
Выбрать хороший хостинг для своего сайта достаточно сложная задача. Особенно сейчас, когда на рынке услуг хостинга действует несколько сотен игроков с очень привлекательными предложениями. Хорошим вариантом является лидер рейтинга Хостинг Ниндзя — Макхост.
Как разместить свой сайт на хостинге? Правильно выбранный хороший хостинг - это будущее Ваших сайтов
Разработка веб-сайтов с помощью онлайн платформы Wrike
Создание вебсайта - процесс трудоёмкий, требующий слаженного взаимодействия между заказчиком и исполнителем, а также между всеми членами коллектива, вовлечёнными в проект. И в этом очень хорошее подспорье окажет онлайн платформа Wrike.
20 ресурсов для прототипирования
Подборка из нескольких десятков ресурсов для создания мокапов и прототипов.
Топ 10 бесплатных хостингов
Небольшая подборка провайдеров бесплатного хостинга с подробным описанием.
Читайте также: