SQLite — это бессерверная СУБД, которая используется для управления данными в базе данных в виде таблиц. Эти таблицы создаются в базе данных для хранения данных в столбцах и строках, для этого таблицы могут быть созданы с помощью оператора «CREATE TABLE» или «CREATE TABLE, если не существует» в SQLite. «CREATE TABLE, если не существует» очень полезен при создании таблицы, потому что он не создаст таблицу, если таблица с таким же именем уже существует в базе данных. В этой записи мы объясним, как работает «СОЗДАТЬ ТАБЛИЦУ, если не существует», и что произойдет, если мы попытаемся создать таблицу без использования «СОЗДАТЬ ТАБЛИЦУ, если не существует».
Как создать таблицу без использования «if not exists» в SQLite
Сначала мы откроем терминал в SQLite и создадим таблицу LinuxHint_employees.
CREATE TABLE LinuxHint_employees (emp_id INT, emp_name CHAR, emp_dep );
Для подтверждения создания таблицы отобразим таблицы:
.tables
Таблица LinuxHint_employees создана. Теперь мы создадим еще одну таблицу с тем же именем, LinuxHint_employees, используя оператор create:
CREATE TABLE LinuxHint_employees (emp_id INT, emp_name CHAR, emp_dep );
При выполнении оператора в терминале генерировалась ошибка «Ошибка: таблица LinuxHint_employees уже существует». Эта ошибка возникает из-за того, что уже существует другая таблица с тем же именем «LinuxHint_employees».
Как создать таблицу с помощью ««if not exists» в SQLite
Оператор «если не существует», используемый при создании таблицы, сначала проанализирует список всех таблиц, присутствующих в этой схеме, затем, если нет таблицы с именем таблицы, которая будет создана, она будет успешно создать таблицу, иначе он выполнит команду успешно без создания таблицы, а также выдаст ошибку «таблица уже существует». Мы объясним это с помощью примера, но прежде чем объяснять пример, давайте объясним общий синтаксис использования предложения «если не существует» для создания таблицы. Общий синтаксис создания таблицы с использованием оператора «если не существует»:
CREATE TABLE IF NOT EXISTS TABLE_NAME (column_name datatype, column_name datatype);
Объяснение этого синтаксиса следующее:
- Используйте предложение «CREATE TABLE» для создания таблицы.
- Напишите предложение «если не существует»
- Напишите имя таблицы вместо table_name
- Напишите имя_столбца
- Объявите тип данных, данные какого типа будут вставлены в столбец
Мы выполним ту же команду, используя «если не существует», что не приведет к возникновению ошибки «таблица уже существует»:
CREATE TABLE IF NOT EXISTS LinuxHint_employees (emp_id INT, emp_name CHAR, emp_dep );
Команда успешно выполнилась без выдачи ошибки «таблица уже существует», потому что в SQLite создание таблицы с таким же именем обычно не является ошибкой. Чтобы подтвердить, что либо он создал другую таблицу с тем же самым, либо нет, мы отобразим список таблиц:
.tables
Таким образом, он также не создал таблицу с тем же именем, теперь мы создадим таблицу с именем «JohnCompany», используя оператор if not exists:
CREATE TABLE IF NOT EXISTS JohnCompany (emp_id INT, emp_name CHAR, emp_dep );
Чтобы отобразить список таблиц:
.tables
Таблица была создана, поскольку в схеме нет таблицы с таким же именем.
Заключение
SQLite имеет облегченную архитектуру, поскольку у него нет сервера, что означает, что он использует операционную систему компьютера, на котором он работал, вместо того, чтобы иметь собственный отдельный сервер. В SQLite создание таблицы настолько важно, потому что в ней вы определяете столбцы и строки, в которых должны храниться данные. SQLite, как и другие СУБД, содержит множество встроенных предложений, которые используются для простого выполнения операторов. В этой записи мы объяснили, что такое предложение «если не существует» и как оно используется для создания таблицы. Это предложение сначала проверяет, существует ли другая таблица с таким же именем или нет, если она не существует, она создаст эту таблицу, иначе просто запустите команду, не генерируя ошибку «уже существует».