
Итак, предполагаю, что Вы уже знакомы с элементарными принципами проектирования баз данных: нормализация, типизация и идентификация объектов в БД. Работать будем в командной строке Windows - это самый доступный клиент для БД. Хотя Вы можете использовать и любой другой клиент, например MySQL Workbench 5.2.34, в нем гораздо проще работать, но на началах рекомендую делать все ручками. Пару раз ошибетесь, третий раз уже точно правильно напишите и эта ошибка уже не повторится.
Перед стартом
Если на текущем этапе создать какой-либо объект БД в имени которого содержатся русские символы, можно получить вот такой ужас:
А если в базе уже есть русские символы (ну по каким-то причинам), так вот такие квазибобры:
Дело в том, что командная строка Windows работает с кодировкой cp866, а сервер отправляет данные в кодировке utf-8. Ну понятно, чтобы исправить этот косяк, надо серверу сказать, чтобы он отправлял данные в cp866. Для этого открываем конфиг сервера (C:/SERVER/MySQL/my.ini), и в нем есть 3 секции:
[client] - Настройка для всех клиентских программ.
[mysql]- Настройка для командной строки Windows.
[mysqld]- Настройка для самого сервера MySQL.
Ищем секцию [mysql], находим там строку:
и меняем на:
Сохраняемся, перезапускаем сервер и командную строку (закрыть -> открыть).
Подключение к серверу
Для подключения к БД в командной строке используется используется вот такая команда:
По умолчанию логин root, а пароль тот, что Вы указывали в мастере по настройке сервера. У меня 123456.
Открываем командную строку Windows и пишем в ней вот такую загагулину:
Кстати, если Вы только что установили БД, и в мастере по настройке сервера Вы ставили флажок "Include Bin Directory in Windows PATH", и командная строка Вам вывалила ошибку мол не знаю никаких команд как mysql, ребутните комп.
После чего будет вот такая картина:
Тут же клиент подсказывает, что признаком концом строки является ; и \g. Именно этими символами и будет оканчиваться каждый запрос. Поэтому сам запрос можно формировать хоть построчно, хоть в одну строку.
Посмотрим, какие базы данных были автоматически созданы на сервере с помощью команды:
SHOW DATABASES;
information_schema - База данных, которая содержит в себе всю информацию о структуре сервера вообще: все названия таблиц, все названия баз данных, привилегий, индексов, колонок, кодировок и т.д. На самом деле физически это не база данных, просто сервер представляет эти данные как базу данных, чтобы администратор мог пользоваться служебной информацией сервера. Ее даже нет в папке с базами данных MySQL/data/.
mysql - Содержит все настройки сервера MySQL: пользователи, привилегии, часовые пояса, хелпы, сообщения об ошибках и пр.
test - Пример пустой базы данных.
performance_schema - База данных, содержащая информацию для мониторинга производительности сервера. Честно сказать сам толком не знаю как ее реально на деле применить.
Создание базы данных
Самый простой способ создать пустую БД, надо выполнить запрос к серверу следующего вида:
CREATE DATABASE [IF NOT EXISTS] имя_базы
Вообще в языке SQL все что создается, обычно начинается с CREATE. Необязательный параметр IF NOT EXISTS "Если не существует" будет осуществлять проверку на сосуществование уже имеющейся базы с таким же именем.
Выполним запрос:
CREATE DATABASE НоваяБазаДанных;
Query OK, 1 row affected (0.01 sec) - Запрос успешно выполнен, обработан 1 ряд за 0.01 сек.
Также сервер поддерживает имена с пробелами, только для этого необходимо само имя заключать вот в такие закорючки `(не знаю даже как она называется).
Располагается где ~ и буква Ё
Создадим теперь базу в имени которого есть пробелы:
CREATE DATABASE `Новая База Данных`;
И затем посмотрим список созданных БД:
SHOW DATABASES;
Удаление базы данных
Удаление объектов в языке SQL, как правило начинается с ключевого слова DROP. Синтаксис удаления БД имеет следующий вид:
DROP DATABASE [IF EXISTS] Имя_БД
Необязательный параметр IF EXISTS, "Если существует" осуществляет удаление только когда БД с указанным именем существует.
Т.к. Я явно знаю, что БД с таким именем существует, IF EXISTS указывать не буду, хотя вообще эти условия рекомендуется указывать, чтобы случае чего сервер не вываливал ошибок. Это важно, когда с сервером будет работать например какая то программа, скажем PHP. Ну и выполним запрос:
DROP DATABASE НоваяБазаДанных;
А затем:
SHOW DATABASES;
P.S. Это сейчас все просто и понятно, потом непонятно будет.
Новость отредактировал: Владелец - 28-04-2012, 16:23
Причина: добавление настроек