Часть 7.2: Команда INSERT в SQLite3. Оператор INSERT в SQLite3
Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. Ранее…
Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. В этой записи мы познакомимся с командой CREATE в SQLite3, рассмотрим, что и как мы сможем создавать в наших базах данных при помощи команды CREATE (оператора CREATE) в SQLite3. А так же познакомимся с общим синтаксисом команды CREATE (оператора CREATE) в SQLite3.
Содержание статьи:
SQL команда CREATE позволяет создавать объекты базы данных. В SQLite при помощи команды CREATE (оператора CREATE) можно создавать: таблицы, представления, триггеры, индексы, виртуальные таблицы:
Давайте теперь познакомимся с синтаксисом команды CREATE в SQLite3 для различных объектов. Про каждый из объектов базы данных мы будем говорить в дальнейшем более подробно.
Команда CREATE (оператор CREATE) позволяет нам создавать таблицы в базе данных SQLite3. Общий синтаксис создания таблиц в SQLite3 показан на рисунке ниже.
Для тех, кому не понятен данный рисунок дам пояснения. Во-первых, напомню, что SQLite3 – слабо типизированная СУБД, поэтому при создании таблиц мы можем не указывать характеристики столбцов.
[php]
— Создание таблицы в SQLite3 без указания типов столбцов
CREATE TABLE table1 (a,b,c,d);
[/php]
Данная команда создаст таблицу с именем table1 со столбцами a, b, c, d и при необходимости СУБД автоматически определит тип данных, который будет храниться в столбце.
Рассмотрим второй способ создания таблиц, на мой взгляд, более правильный.
[php]
— Создание таблицы в SQLite3 с явным указанием характеристик столбцов
CREATETABLE table2 (
id INT PRIMARY KEY AUTOINCREMENT NOT NULL,
name TEXT NOT NULL,
surname TEXT NOT NULL,
age INT NOT NULL,
address TEXT NOT NULL
);
[/php]
В данном случае при помощи команды CREATE (оператора CREATE) мы создали таблицу, явно указав тип данных для каждого столбца (когда мы говорим про SQLite правильнее будет использовать термин класс данных: можете почитать про классы данных и аффинированность классов данных), так же каждый столбец не может иметь пустого значения, а первый столбец id является суррогатным ключом таблицы (об этом свидетельствует ограничения PRIMARY KEY и AUTOINCREMENT).
Обратите внимание: перечисление столбцов происходит в круглых скобках, столбцы разделяются точкой с запятой, характеристики столбцов разделяются пробелами. Созданию таблиц в SQLite мы уделим больше внимание в дальнейшем.
Для индексов и ограничений у нас будет отдельная тема, сейчас просто попробуем создать и разобраться с синтаксисом создания индексов в SQLite3, за это отвечает команда CREATE INDEX (оператор CREATE INDEX). Общий синтаксис команды CREATE INDEX в SQLite3 показан на рисунке ниже.
Рассмотрим на простом примере команду CREATE INDEX в SQLite3. Для этого воспользуемся тестовой базой данных world.db3. Индекс будем создавать для столбца population таблицы city.
[php]
— Создаем индекс в SQLite3
CREATE INDEX index_population ON city (population);
[/php]
Хочу обратить ваше внимание на то, что индекс можно создавать для нескольких столбцов в таблице, для этого нужные столбцы нужно перечислить в круглых скобках через запятую.
Проверим созданный индекс командой SELECT.
[php]
— Проверка индекса index_population при помощи SELECT
SELECT * FROM city INDEXED BY index_population WHERE population > 6000000;
[/php]
Вот, что мы получим в результате:
Мы изучили оператор CREATE INDEX и его синтаксис в SQLite3, перейдем к VIEW.
Рассмотрим, как создавать представления(просмотр, вью, вьюху, как хотите так и называйте), в SQLite3 за создание просмотров отвечает команда CREATE VIEW (оператор CREATE VIEW). Общий синтаксис команды CREATE VIEW в SQLite3 показан на рисунке ниже.
Для примера воспользуемся нашей базой данных World. И создадим VIEW на основе таблицы City, воспользовавшись командой CREATE VIEW.
[php]
— Создаем VIEW в SQLite3
CREATE VIEW city_view AS SELECT id, name, population FROM city;
[/php]
Чтобы создать просмотр нам необходимо указать его имя, а затем при помощи команды SELECT указать данные, которые должны храниться внутри вьюхи.
[php]
Проверим работоспособность представления, выполнив запрос SELECT.
— Проверяем работоспособность представления
SELECT * FROMcity_viewLIMIT 15
[/php]
В результате мы получим:
Мы рассмотрели синтаксис операции CREATE VIEW в SQLite3 и можем переходить к триггерам.
Перейдем к триггерам и посмотрим, как создавать триггеры в SQLite3. Общий синтаксис команды CREATE TRIGGER в SQLite3 представлен ниже.
Приводить абстрактные пример создания триггеров не имеет смысла, как и сами примеры без полного объяснения понятия триггер. Триггерам у нас будет посвящена отдельная тема.
Тем, кто уже знает для чего нужны виртуальные таблицы – респект. Но мы, на данном этапе ознакомимся только лишь с общим синтаксисом данной команды.
Мы изучили команду CREATE в SQLite3 (оператор CREATE в SQLite). Рассмотрели все вариации использования команды CREATE и посмотрели какие сущности мы можем создавать при помощи оператора CREATE в SQLite.
А про create с использованием like вы не написали намеренно?
Да, намеренно, в SQLite3 нельзя создавать таблицы CREATE LIKE,вместо этого используйте CREATE ... AS SELECT. В принципе, того же самого результата можно добиться.