Часть 6.1: Команда CREATE в SQLite3 (DDL оператор CREATE)

Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. В этой записи мы познакомимся с командой CREATE в SQLite3, рассмотрим, что и как мы сможем создавать в наших базах данных при помощи команды CREATE (оператора CREATE) в SQLite3. А так же познакомимся с общим синтаксисом команды CREATE (оператора CREATE) в SQLite3.

Команда CREATE в SQLite3 (DDL оператор CREATE)

Команда CREATE в SQLite3 (DDL оператор CREATE)


Общая информация о команде CREATE в SQLite3

SQL команда CREATE позволяет создавать объекты базы данных. В SQLite при помощи команды CREATE (оператора CREATE) можно создавать: таблицы, представления, триггеры, индексы, виртуальные таблицы:

  • CREATE TABLE;
  • CREATE INDEX;
  • CREATE TRIGGER;
  • CREATE VIEW;
  • CREATE VIRTUAL TABLE.

Давайте теперь познакомимся с синтаксисом команды CREATE в SQLite3 для различных объектов. Про каждый из объектов базы данных мы будем говорить в дальнейшем более подробно.

Команда CREATE TABLE в SQLite. Оператор CREATE TABLE в SQLite

Команда CREATE (оператор CREATE) позволяет нам создавать таблицы в базе данных SQLite3. Общий синтаксис создания таблиц в SQLite3 показан на рисунке ниже.

Cинтаксис команды CREATE TABLE в SQLite3 (синтаксис оператора CREATE в SQLite)

Синтаксис команды CREATE TABLE в SQLite3 (синтаксис оператора CREATE в SQLite)

Для тех, кому не понятен данный рисунок дам пояснения. Во-первых, напомню, что SQLite3 – слабо типизированная СУБД, поэтому при создании таблиц мы можем не указывать характеристики столбцов.

Данная команда создаст таблицу с именем table1 со столбцами a, b, c, d и при необходимости СУБД автоматически определит тип данных, который будет храниться в столбце.

Рассмотрим второй способ создания таблиц, на мой взгляд, более правильный.

В данном случае при помощи команды CREATE (оператора CREATE) мы создали таблицу, явно указав тип данных для каждого столбца (когда мы говорим про SQLite правильнее будет использовать термин класс данных: можете почитать про классы данных и аффинированность классов данных), так же каждый столбец не может иметь пустого значения, а первый столбец id является суррогатным ключом таблицы (об этом свидетельствует ограничения PRIMARY KEY и AUTOINCREMENT).

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

Создание индексов в таблицах SQLite3. Команда CREATE INDEX

Для индексов и ограничений у нас будет отдельная тема, сейчас просто попробуем создать и разобраться с синтаксисом создания индексов в SQLite3, за это отвечает команда CREATE INDEX (оператор CREATE INDEX). Общий синтаксис команды CREATE INDEX в SQLite3 показан на рисунке ниже.

Cинтаксис команды CREATE INDEX в SQLite3. Синтаксис оператора CREATE INDEX в SQLite3

Cинтаксис команды CREATE INDEX в SQLite3. Синтаксис оператора CREATE INDEX в SQLite3

Рассмотрим на простом примере команду CREATE INDEX в SQLite3. Для этого воспользуемся тестовой базой данных world.db3. Индекс будем создавать для столбца population таблицы city.

Хочу обратить ваше внимание на то, что индекс можно создавать для нескольких столбцов в таблице, для этого нужные столбцы нужно перечислить в круглых скобках через запятую.

Проверим созданный индекс командой SELECT.

Вот, что мы получим в результате:

Проверка созданного индекса при помощи команды SELECT

Проверка созданного индекса при помощи команды SELECT

Мы изучили оператор CREATE INDEX и его синтаксис в SQLite3, перейдем к VIEW.

Команда CREATE VIEW в SQLite3. Оператор CREATE VIEW в SQLite3

Рассмотрим, как создавать представления(просмотр, вью, вьюху, как хотите так и называйте), в SQLite3 за создание просмотров отвечает команда CREATE VIEW (оператор CREATE VIEW).  Общий синтаксис команды CREATE VIEW в SQLite3 показан на рисунке ниже.

Синтаксис команды CREATE VIEW в SQLite3. Синтаксис CREATE VIEW в SQLite3.

Синтаксис команды CREATE VIEW в SQLite3. Синтаксис CREATE VIEW в SQLite3.

Для примера воспользуемся нашей базой данных World. И создадим VIEW на основе таблицы City, воспользовавшись командой CREATE VIEW.

Чтобы создать просмотр нам необходимо указать его имя, а затем при помощи команды SELECT указать данные, которые должны храниться внутри вьюхи.

В результате мы получим:

Проверка созданного представления при помощи команды SELECT

Проверка созданного представления при помощи команды SELECT

Мы рассмотрели синтаксис операции CREATE VIEW в SQLite3 и можем переходить к триггерам.

Команда CREATE TRIGGER в SQLite3. Оператор CREATE TRIGGER в SQLite3

Перейдем к триггерам и посмотрим, как создавать триггеры в SQLite3. Общий синтаксис команды CREATE TRIGGER в SQLite3 представлен ниже.

Синтаксис команды CREATE TRIGGER в SQLite3. Синтаксис оператора CREATE TRIGGER

Синтаксис команды CREATE TRIGGER в SQLite3. Синтаксис оператора CREATE TRIGGER

Приводить абстрактные пример создания триггеров не имеет смысла, как и сами примеры без полного объяснения понятия триггер. Триггерам у нас будет посвящена отдельная тема.

Команда CREATE VIRTUAL TABLE в SQLite3. Оператор CREATE VIRTUAL TABLE в SQLite3

Тем, кто уже знает для чего нужны виртуальные таблицы – респект. Но мы, на данном этапе ознакомимся только лишь с общим синтаксисом данной команды.

Синтаксис команды CREATE VIRTUAL TABLE в SQLite3. Синтаксис оператора CREATE VIRTUAL TABLE в SQLite3

Синтаксис команды CREATE VIRTUAL TABLE в SQLite3. Синтаксис оператора CREATE VIRTUAL TABLE в SQLite3

Мы изучили команду CREATE в SQLite3 (оператор CREATE в SQLite). Рассмотрели все вариации использования команды CREATE и посмотрели какие сущности мы можем создавать при помощи оператора CREATE в SQLite.

2 комментария к записи Часть 6.1: Команда CREATE в SQLite3 (DDL оператор CREATE)

Dimqo

А про create с использованием like вы не написали намеренно?

Кирилл

Да, намеренно, в SQLite3 нельзя создавать таблицы CREATE LIKE,вместо этого используйте CREATE ... AS SELECT. В принципе, того же самого результата можно добиться.

Текст комментария: