Исходя из предыдущих глав этой книги, язык SQL можно разбить на три отдельные языковые группы: ЯОД - язык определения данных (Data Definition Language, DCL), ЯМД - язык манипулирования данными (Data Manipulation Language, DML) и ЯУД - язык управления данными (Data Control Language, DCL). Эта глава практически целиком посвящена компоненту ЯОД, т.к. в ней обсуждаются команды MySQL, предназначенные для управления базами данных и таблицами. Также обсуждаются сравнительные характеристики различных типов таблиц, поддерживаемых MySQL. Речь пойдет как об уже известных типах таблиц MySQL, так и о сравнительно новых типах таблиц InnoDB, которые поддерживают транзакции. Эта глава также содержит справочный материал, который позволит разработчику сделать правильный выбор. 

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


Вы наверняка уже обратили внимание, что "начальной точкой отсчета" в MySQL является база данных, которая служит своеобразным контейнером для таблиц и записей. Единственным способом создать базу данных является команда CREATE DATABASE. Предположим, что вы уже подключились к MySQL с помощью клиента, работающего с командной строкой mysql. Итак, создадим базу данных dbl.
Листинг 8.1.
Mysql> CREATE DATABASE dbl;
Query OK, 1 row affected (0.05 sec)
В MySQL базы данных представлены в файловой системе в виде подкаталогов в каталоге хранения данных MySQL. Поэтому имя базы данных в первой команде должно удовлетворять всем ограничениям, накладываемым операционной системой. Например, в ОС Windows запрещено использование в именах файлов и каталогов следующих символов: "", "/", ":", "*", "?", """, "<", ">", "|". 
Длина имени базы данных не может превышать 64 символов, а имена, содержащие специальные символы или состоящие полностью из цифр, должны быть заключены в обратные одинарные кавычки Рассмотрим следующие примеры, в которых это будет наглядно проиллюстрировано.
Обработка баз данных и таблиц
Что в имени твоем?
Вообще, хорошим тоном считается начинать имена баз данных с буквы, и при этом имя базы данных состоит только из алфавитно-цифровых символов и символов подчеркивания. Помните, что даже если MySQL и будет работать с более "вычурным" именем, то другое приложение может такое имя "не пропустить".
Выбор используемой базы данных
Оператор USE позволяет выбрать базу данных, делая ее текущей для всех операций. Рассмотрим следующий пример, демонстрирующий выбор базы данных dbl в качестве текущей для всех будущих запросов.
Обработка баз данных и таблиц
Конечно, тот факт, что база данных была выбрана с помощью команды USE, совсем не значит, что другие базы данных при этом становятся недоступными. Вполне возможно работать с таблицами из других баз данных, предваряя их имена именем базы данных, т.е. MySQL будет "знать", где их можно взять, что подтверждается следующим примером.
Обработка баз данных и таблиц
Удаление баз данных
Базу данных можно удалить, удаляя при этом и все ее таблицы. Для этого предназначена команда DROP DATABASE. Рассмотрим следующий пример, в котором удаляется база данных dbl .
Обработка баз данных и таблиц
Заметим, что эту команду следует использовать с особой осторожностью, т.к. при удалении базы данных удаляются все ее таблицы (и данные, которые они содержат), а также весь каталог данных удаляемой базы данных.
Здесь также можно воспользоваться предложением IF EXISTS для того, чтобы избежать назойливых сообщений об ошибках MySQL, которые появляются в том случае, когда база данных, которую вы стремитесь удалить, не существует.
Обработка баз данных и таблиц