ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.12.2023
Просмотров: 16
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Стартуем с SQLite3 – Основные команды
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: команды для создания таблицы, изменения и удаления баз данных, таблиц и прочего.
-
CREATE -
ALTER -
DROP
Язык управления данными DML: позволяют пользователю манипулировать данными (добавлять/изменять/удалять).
-
INSERT -
UPDATE -
DELETE
Язык запросов DQL: позволяет осуществлять выборку данных.
-
SELECT
Заметка: SQLite так же поддерживает и множество других команд, список которых можно найти тут. Поскольку данный урок предназначен для начинающих, мы ограничимся перечисленным набором команд.
Файлы баз данных SQLite являются кроссплатформенными. Они могут располагаться на различного рода устройствах.
Далее знакомство с sqlite3 будет осуществляться на базе данных, предназначенной для хранения комментариев. Для публикации комментария пользователю необходимо будет добавить следующие данные:
Нумерация комментариев | Имя | | Сайт | Комментарий |
post_id | name | | website_url | comment |
INTEGER | TEXT | TEXT | TEXT | TEXT |
| | | | |
NOT NULL | NOT NULL | NOT NULL | | NOT NULL |
Тут вы сможете найти все типы данных, поддерживаемые в SQLite3.
Так же следует отметить, в SQLite3 данные, вставляемые в колонку могут отличаться от указанного типа. В MySQL такое не пройдёт.
Теперь давайте создадим базу данных. Если вы ещё находитесь в интерфейсе sqlite3, то наберите команду .quit для выхода. Теперь вводим:
sqlite3 comment_section.db
В результате, в текущем каталоге у нас появится файл comment_section.db.
Заметка: если не указать название файла, sqlite3 создаст временную базу данных.
Создание таблицы
Для хранения комментариев нам необходимо создать таблицу. Назовём её comments. Выполняем команду:
1 | CREATE TABLE comments ( | |
2 | post_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, |
3 | name TEXT NOT NULL, | |
4 | email TEXT NOT NULL, |
5 | website_url TEXT NULL, | |
6 | comment TEXT NOT NULL ); |
NOT NULL обеспечит уверенность, что ячейка не будет содержать пустое значение. PRIMARY KEY и AUTOINCREMENT расширяют возможности поля post_id.
Чтобы убедиться в том, что таблица была создана, выполняем мета команду .tables. В результате видим нашу таблицу comments.
Заметка: Для получения структуры таблицы наберите .schema comments
Теперь можем внести данные в таблицу.
ВСТАВКА СТРОК
Предположим, что нам необходим внести следующую запись:
1 | Name : Shivam Mamgain | | | ||
2 | Email : xyz@gmail.com | | | | |
3 | Website : shivammg.blogspot.com | | |||
4 | Comment : Great tutorial for beginners. |
Для вставки воспользуемся командой INSERT.
1 | INSERT INTO comments ( name, email, website_url, comment ) | ||
2 | VALUES ( 'Shivam Mamgain', 'xyz@gmail.com', | | |
3 | 'shivammg.blogspot.com', 'Great tutorial for beginners.' ); | | |
Указывать значение для post_id не нужно т.к. оно сформируется автоматически благодаря настройке AUTOINCREMENT.
Чтобы набить руку можете вставить ещё несколько строк.
ВЫБОРКА
Для выборки данных воспользуемся командой SELECT.
1 | SELECT post_id, name, email, website_url, comment | |
2 | FROM comments; | |
Этот же запрос может выглядеть так:
1 | SELECT * | |
2 | FROM comments; |
В результате из таблицы будут извлечены все строки. Результат может выглядеть без разграничения по колонкам и без заголовка. Чтобы это исправить выполняем:
.show
Для отображения шапки введите .headers ON.
Для отображения колонок выполните команду .mode column.
Выполняем SELECT запрос ещё раз.
Заметка: вид отображения можно изменить, воспользовавшись мета командой .mode.
ОБНОВЛЕНИЕ
Предположим, что поле email для пользователя ‘Shivam Mamgain’ необходимо изменить на ‘zyx@email.com’. Выполняем следующую команду:
1 | UPDATE comments | | |
2 | SET email = 'zyx@email.com' | | |
3 | WHERE name = 'Shivam Mamgain'; |
В результате запись будет изменена.
Заметка: Значение в колонке name может быть не уникально, так что в результате работы команды может быть затронуто более одной строки. Для всех пользователей, где значение name = ‘Shivam Mamgain’, поле email будет изменено на ‘zyx@email.com’. Для изменения какой-то конкретной строки следует её отследить по полю post_id. Мы его определили как PRIMARY KEY, что обеспечивает уникальность значения.
УДАЛЕНИЕ
Для выполнения команды
DELETE нужно так же указать условие.
К примеру нам необходимо удалить комментарий с post_id = 9. Выполняем команду:
1 | DELETE FROM comments | |
2 | WHERE post_id = 9; | |
Для удаления комментариев пользователей ‘Bart Simpson’ и ‘Homer Simpson’ выполним:
1 | DELETE FROM comments | |
2 | WHERE name = 'Bart Simpson' OR name = 'Homer Simpson'; |
ИЗМЕНЕНИ СТРУКТУРЫ
Для добавления новой колонки следует использовать команду ALTER. К примеру введём поле username. Выполняем команду:
1 | ALTER TABLE comments | |
2 | ADD COLUMN username TEXT; |
Данная команда создаст новое текстовое поле в таблице comments. Для всех строк в качестве значения будет выставлено NULL.
Так же мы можем использовать команду ALTER для переименования таблицы comments на Coms.
1 | ALTER TABLE comments | |
2 | RENAME TO Coms; | |
УДАЛЕНИЕ
Для удаление нашей таблицы выполните следующую команду:
1 | DROP TABLE Coms; |
Заключение
SQLite3 даёт множество преимуществ в отличии от других СУБД. Множество фрэймворков таких как Django, Ruby on Rails и web2py по умолчанию используют SQLite3. Многие браузеры используют данный инструмент для хранения локальных данных. Так же она используется в качестве хранилища данных таких ОС как Androidи Windows Phone 8.
Для работы с SQLite3 можно воспользоваться и программами с графическим интерфейсом. К примеру: DB Browser for SQLite и SQLiteStudio. Для тренировки работы с SQL можете поиграть с SQL Fiddle.
Данный урок может помочь стартовать с SQLite3. Для взаимодействия с данным СУБД в PHP можем воспользоваться расширением PDO.