Здравствуйте, уважаемые посетители блога ZametkiNaPolyah.ru. Продолжаем разговор о базах данных, сегодня будем разбираться с тем, как создать базу данных MySQL. Как вы уже знаете, минимальной информационной единицей любой реляционной базы данных является таблица – неделимое целое базы данных. Сегодня мы рассмотрим процесс создания базы данных. Для создания базы данных MySQL используется SQL запрос CREATE DATABASE, с его синтаксисом мы и ознакомимся в данной статье подробно.

Помимо создания базы данных можно создавать таблицы и наполнять их, для этого есть два оператора: CREATE TABLE и INSERT. Для создания таблицы MySQL – CREATE TABLE. Для наполнения таблицы используется оператор INSERT. На самом деле, на этом можно было бы и закончить описание создания базы данных MySQL, поскольку на официальном  сайте есть подробная техническая документация по созданию таблиц и баз данных сервера MySQL, но есть несколько моментов, которые необходимо объяснить более подробно. О создании таблицы базы данных MySQL мы поговорим отдельно в одной из следующих публикаций.

Как хранится база данных MySQL

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

К созданию базы данных MySQL переходить еще рано, давайте разберемся с тем, как хранится база данных MySQL сервера на жестком диске вашего компьютера, так будет проще понять принцип именования баз данных. Обратите внимание: у сервера MySQL есть несколько движков, точное количество сейчас я затрудняюсь назвать, для этого нужно смотреть техническую документацию. В любом случае, сами базы данных MySQL сервера хранятся одинакова вне зависимости от типа движка. Движок определяет способ хранения таблиц MySQL сервера.

Откройте консоль вашей операционной системы и  запустите сервер MySQL: введите имя и пароль пользователя, который имеет права на создание базы данных MySQL. После чего введите команду:

[php]

SHOW DATABASES;

[/php]
//
//

Введя данный SQL запрос, вы сможете увидеть все созданные базы данных. Каталог, в котором хранятся базы данных MySQL сервера, вы определяли при установки и настройки MySQL сервера, в моем случае путь к каталогу выглядит следующим образом:

[php]

c:\ProgramData\MySQL\MySQL Server 5.6\data\

[/php]

В этом каталоге находятся папки, имена которых полностью совпадают с именами баз данных MySQL, которые были отображены в консоли. Вывод: чтобы создать базу данных MySQL достаточно создать папку в каталоге data. Поэтому имена баз данных MySQL могут иметь ограничения. Максимальная длина имени базы данных MySQL не может превышать 64 символов. Для именования базы данных MySQL можно использовать все символы, разрешенные в операционной системе. MySQL сервер не разрешает использовать в именах баз данных следующие символы: слэш(/), точка, ASCII (0) и ASCII (255).

Если создать папку в каталоге data, то база данных MySQL автоматически будет создана, попробуйте создать папку в этом каталоге, а затем выполнить запрос SHOW DATABASES. Рассматривать содержимое папок (баз данных MySQL) сейчас не имеет смысла, поскольку каждый движок MySQL будет хранить таблицы по-своему.

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

Перейдем теперь к созданию базы данных MySQL. Создать базу данных MySQL позволяет запрос CREATE DATABASE, вот его полный синтаксис:

[php]

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name

[create_specification] ...

create_specification:

[DEFAULT] CHARACTER SET [=] charset_name

| [DEFAULT] COLLATE [=] collation_name

[/php]

Давайте попробуем создать базу данных MySQL с именем test1. Я вам не рекомендую копировать код, лучше набирайте его сами, так все команды запомнятся быстрее. Итак, создаем базу данных с именем test1:

[php]

CREATE DATABASE test1;

[/php]

Все, база данных с именем test1 создана, повторное создание базы данных с таким же именем приведет к ошибке: ERROR 1007 (HY000) Can’t create database ‘test1’; database exists. По-русски: не могу создать базу данных с именем ‘test1’; база данных уже существует. Чтобы таких ошибок не возникало, создавайте базы данных MySQL с добавлением конструкции [IF NOT EXISTS] (если не существует), в этом случае ошибки не будет, но будет предупреждение:

[php]

CREATE DATABASE IF NOT EXISTS test1;

[/php]

При создании базы данных MySQL можно указать ее спецификацию: кодировку для всех таблиц базы данных, порядок сортировки и сравнения. Обратите внимание: те же самые данные можно указывать и для каждой таблицы MySQL, если этого не сделать, таблица будет обладать теми же характеристиками, что и вся база данных.

Создадим базу данных MySQL с именем test2, кодировкой utf8 и сравнением utf8_general_ci:

[php]

CREATE DATABASE IF NOT EXISTS test2

CHARACTER SET = utf8

COLLATE utf8_general_ci;

[/php]

На заметку. Если вы создаете сайт с использованием CMS (установка Drupal, установка Joomla, установка WordPress), то при ее установки потребуется вручную создать базу данных, конечно, база данных будет заполнена автоматически установочным скриптом, но ее нужно уметь создать. Здесь вы сможете ознакомиться с архитектурой базы данных WordPress сайта.

Конструкция CHARACTE SET определяет кодировку созданной базы данных MySQL (в какой кодировки данные будут храниться). COLLATE определяет порядок сравнения данных в базе данных (с учетом регистра символов или нет и прочее). Думаю, с вопросом создания базы данных MySQL мы разобрались, давайте разберемся с кодировкой базы данных, этот вопрос актуален и для каждой таблицы в отдельности.

Я уже говорил, что кодировку для таблицы можно задавать точно так же, как и для всей базы данных, если кодировка не задана явно, то она будет точно такой же, как и кодировка всей базы данных MySQL. Если вы указали кодировку базы данных, но не задали порядок сравнения, то он будет использован по умолчанию. Если задан порядок сравнения, то он определяет кодировку все сущности: либо таблицы, либо базы данных. Обратите внимание: порядок сортировки (COLLATE), должен быть допустимым для текущей кодировки (CHARACTER SET).

Вопрос о том, как создать базу данных MySQL можно считать подробно рассмотренным, если все-таки возникли какие-то вопросы о создание базы данных, задавайте их в комментариях. Если вы хотите помочь данному ресурсу развиваться, воспользуйтесь блоком социальных кнопок на этой странице, буду очень благодарен.

 

Возможно, эти записи вам покажутся интересными


Выберете удобный для себя способ, чтобы оставить комментарий

This article has 6 comments

  1. Михаил Reply

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

    [php]

    SHOW CREATE DATABASE test;

    [/php]

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

    • Кирилл Reply

      Да вроде ничего удивительного нет в том, что база данных MySQL создается путем создания каталога. Ну предположим, что информацию о базе данных лучше всего получать из information_schema, выполняя запрос SELECT и указывая нужные столбцы, так информация о базе данных будет более полная.

  2. Гришка Reply

    Зачем все эти SQL запросы. Для создания баз данных MySQL и не только для создания, есть удобные графические интерфейсы: phpmyadmin, workbench и прочее

  3. Сергей Reply

    Гришка, когда ты начнешь администрировать что-нибудь, кроме своего блога, ты поймешь зачем тебе нужна консоль и почему нужно всегда под рукой иметь справочник с SQL запросами. Графичиские оболочки жрут все: оперативную память, процессор, жесткий диск, графику. Так что если хочешь чего-то добиться запускай консоль и пытайся создавать базы данных, модифицировать и удалять таблицы, оптимизировать базу данных.

  4. PLU Reply

    Гришка,комментарий супер гуд) тут ответ plutov.by

    Повеселил

    • Кирилл Reply

      PLU, полезный блог, оставлю ссылки:)

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Loading Disqus Comments ...