Создание и удаление баз данных
При написании SQL запросов мы активно используем таблицы. Сами же таблицы хранятся в рамках конкретных баз данных, о которых и пойдёт речь в данной статье.
Создание базы данных
Создание базы данных имеет следующий синтаксис:
MySQL 8.1CREATE DATABASE имя_базы_данных;
В имени базы данных обычно используют буквы, цифры, а также символы "_" и "$". Максимальная длина имени составляет 64 символа.
Проконтролировать создание базы данных можно с помощью оператора SHOW DATABASES.
MySQL 8.1SHOW DATABASES;
Обратите внимание, что оператор SHOW DATABASES кроме пользовательских баз данных отображает также и служебные: information_schema, mysql, performance_schema, sys.
Если имя базы данных записывается без двойных кавычек, оно должно начинаться с буквы или символа "_". Далее можно использовать буквы, цифры, а также символы "_" и "$". Максимальная длина имени составляет 63 символа.
Проконтролировать создание базы данных можно с помощью SQL запроса:
MySQL 8.1SELECT datname FROM pg_database WHERE datistemplate = false;
Обратите внимание, что кроме пользовательских баз данных PostgreSQL также содержит служебные базы данных: postgres, template0, template1.
Удаление базы данных
Удаление базы данных осуществляется с помощью оператора DROP DATABASE:
MySQL 8.1DROP DATABASE имя_базы_данных;
Нельзя удалить базу данных, если текущая сессия подключена именно к ней. Также удаление завершится ошибкой, если к базе подключены другие активные сессии.
IF EXISTS и IF NOT EXISTS
При создании или удалении базы данных может возникнуть ошибка: например, если база данных с таким именем уже существует или, наоборот, ещё не создана. В таких случаях используются конструкции IF EXISTS и IF NOT EXISTS.
То есть, если мы хотим создать базу данных только при условии, что она пока не существует, то используется следующий синтаксис:
MySQL 8.1CREATE DATABASE IF NOT EXISTS имя_базы_данных;
Если мы хотим удалить базу данных только при условии, что она существует, то используется следующий синтаксис:
MySQL 8.1DROP DATABASE IF EXISTS имя_базы_данных;
IF EXISTS
При удалении базы данных может возникнуть ошибка, если такой базы данных не существует. В этом случае можно использовать конструкцию IF EXISTS.
Для удаления базы данных можно использовать конструкцию IF EXISTS:
MySQL 8.1DROP DATABASE IF EXISTS имя_базы_данных;