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

При написании 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 [NOT] EXISTS

При создании базы данных или при её удалении может возникнуть ошибка, что база данных с таким именем уже существует (при создании) или, наоборот, данной базы данных не существует (при удалении). Для таких случаев существует конструкция IF [NOT] EXISTS.

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

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

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

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