Создание и удаление баз данных

При написании SQL запросов мы активно используем таблицы. Сами же таблицы хранятся в рамках конкретных баз данных, о которых и пойдёт речь в данной статье.

Создание базы данных

Создание базы данных имеет следующий синтаксис:

MySQL 8.1
CREATE DATABASE имя_базы_данных;

В имени базы данных обычно используют буквы, цифры, а также символы "_" и "$". Максимальная длина имени составляет 64 символа.

Проконтролировать создание базы данных можно с помощью оператора SHOW DATABASES.

MySQL 8.1
SHOW DATABASES;
Database
user_table_1
user_table_2
information_schema
mysql
performance_schema
sys

Обратите внимание, что оператор SHOW DATABASES кроме пользовательских баз данных отображает также и служебные: information_schema, mysql, performance_schema, sys.

Если имя базы данных записывается без двойных кавычек, оно должно начинаться с буквы или символа "_". Далее можно использовать буквы, цифры, а также символы "_" и "$". Максимальная длина имени составляет 63 символа.

Проконтролировать создание базы данных можно с помощью SQL запроса:

MySQL 8.1
SELECT datname FROM pg_database WHERE datistemplate = false;
datname
user_database_1
user_database_2
postgres

Обратите внимание, что кроме пользовательских баз данных PostgreSQL также содержит служебные базы данных: postgres, template0, template1.

Удаление базы данных

Удаление базы данных осуществляется с помощью оператора DROP DATABASE:

MySQL 8.1
DROP DATABASE имя_базы_данных;

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

IF EXISTS и IF NOT EXISTS

При создании или удалении базы данных может возникнуть ошибка: например, если база данных с таким именем уже существует или, наоборот, ещё не создана. В таких случаях используются конструкции IF EXISTS и IF NOT EXISTS.

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

MySQL 8.1
CREATE DATABASE IF NOT EXISTS имя_базы_данных;

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

MySQL 8.1
DROP DATABASE IF EXISTS имя_базы_данных;

IF EXISTS

При удалении базы данных может возникнуть ошибка, если такой базы данных не существует. В этом случае можно использовать конструкцию IF EXISTS.

Для удаления базы данных можно использовать конструкцию IF EXISTS:

MySQL 8.1
DROP DATABASE IF EXISTS имя_базы_данных;