Стартуем с 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: команды для создания таблицы, изменения и удаления баз данных, таблиц и прочего.
  • Язык управления данными DML: позволяют пользователю манипулировать данными (добавлять/изменять/удалять).
  • Язык запросов DQL: позволяет осуществлять выборку данных.

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

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

Далее знакомство с sqlite3 будет осуществляться на базе данных, предназначенной для хранения комментариев. Для публикации комментария пользователю необходимо будет добавить следующие данные:

  • Имя
  • Email
  • Сайт
  • Комментарий

Из всех этих полей только адрес сайта может быть пустым. Так же можем ввести колонку для нумерации комментриев. Назовём её post_id.

Теперь давайте определимся с типами данных для каждой из колонок:

Атрибут Тип данных
post_id INTEGER
name TEXT
email TEXT
website_url TEXT
comment TEXT

Тут вы сможете найти все типы данных, поддерживаемые в SQLite3.

Так же следует отметить, в SQLite3 данные, вставляемые в колонку могут отличаться от указанного типа. В MySQL такое не пройдёт.

Теперь давайте создадим базу данных. Если вы ещё находитесь в интерфейсе sqlite3, то наберите команду .quit для выхода. Теперь вводим:

sqlite3 comment_section.db

В результате, в текущем каталоге у нас появится файл comment_section.db.

Заметка: если не указать название файла, sqlite3 создаст временную базу данных.

Создание таблицы

Для хранения комментариев нам необходимо создать таблицу. Назовём её comments. Выполняем команду:

CREATE TABLE comments (
    post_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT NOT NULL,
    website_url TEXT NULL,
    comment TEXT NOT NULL );

NOT NULL обеспечит уверенность, что ячейка не будет содержать пустое значение. PRIMARY KEY и AUTOINCREMENT расширяют возможности поля post_id.

Чтобы убедиться в том, что таблица была создана, выполняем мета команду .tables. В результате видим нашу таблицу comments.

Заметка: Для получения структуры таблицы наберите .schema comments

Теперь можем внести данные в таблицу.

ВСТАВКА СТРОК

Предположим, что нам необходим внести следующую запись:

Name    : Shivam Mamgain
Email   : xyz@gmail.com
Website : shivammg.blogspot.com
Comment : Great tutorial for beginners.

Для вставки воспользуемся командой INSERT.

INSERT INTO comments ( name, email, website_url, comment )
VALUES ( 'Shivam Mamgain', 'xyz@gmail.com',
'shivammg.blogspot.com', 'Great tutorial for beginners.' );

Указывать значение для post_id не нужно т.к. оно сформируется автоматически благодаря настройке AUTOINCREMENT.

Чтобы набить руку можете вставить ещё несколько строк.

ВЫБОРКА

Для выборки данных воспользуемся командой SELECT.

SELECT post_id, name, email, website_url, comment
FROM comments;

Этот же запрос может выглядеть так:

SELECT *
FROM comments;

В результате из таблицы будут извлечены все строки. Результат может выглядеть без разграничения по колонкам и без заголовка. Чтобы это исправить выполняем:

.show

Для отображения шапки введите .headers ON.

Для отображения колонок выполните команду .mode column.

Выполняем SELECT запрос ещё раз.

Заметка: вид отображения можно изменить, воспользовавшись мета командой .mode.

ОБНОВЛЕНИЕ

Предположим, что поле email для пользователя ‘Shivam Mamgain’ необходимо изменить на ‘zyx@email.com’. Выполняем следующую команду:

UPDATE comments
SET email = 'zyx@email.com'
WHERE name = 'Shivam Mamgain';

В результате запись будет изменена.

Заметка: Значение в колонке name может быть не уникально, так что в результате работы команды может быть затронуто более одной строки. Для всех пользователей, где значение name = ‘Shivam Mamgain’, поле email будет изменено на ‘zyx@email.com’. Для изменения какой-то конкретной строки следует её отследить по полю post_id. Мы его определили как PRIMARY KEY, что обеспечивает уникальность значения.

УДАЛЕНИЕ

Для выполнения команды DELETE нужно так же указать условие.

К примеру нам необходимо удалить комментарий с post_id = 9. Выполняем команду:

DELETE FROM comments
WHERE post_id = 9;

Для удаления комментариев пользователей ‘Bart Simpson’ и ‘Homer Simpson’ выполним:

DELETE FROM comments
WHERE name = 'Bart Simpson' OR name = 'Homer Simpson';

ИЗМЕНЕНИ СТРУКТУРЫ

Для добавления новой колонки следует использовать команду ALTER. К примеру введём поле username. Выполняем команду:

ALTER TABLE comments
ADD COLUMN username TEXT;

Данная команда создаст новое текстовое поле в таблице comments. Для всех сток в качестве значения будет выставлено NULL.

Так же мы можем использовать команду ALTER для переименования таблицы comments на Coms.

ALTER TABLE comments
RENAME TO Coms;

УДАЛЕНИЕ

Для удаление нашей таблицы выполните следующую команду:

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.

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://www.sitepoint.com/getting-started-sqlite3-basic-commands/
Перевел: Станислав Протасевич
Урок создан: 9 Апреля 2015
Просмотров: 99000
Правила перепечатки


5 последних уроков рубрики "Разное"

^ Наверх ^