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

Что такое реляционные СУБД
Начнем с начала. Каждая база данных состоит из одной или более таблиц. Собственно, эти таблицы, в которых данные организованы по строкам и столбцам, являются основой организации данных.
Так, ниже представлена типичная таблица.
Краткий курс MySQL и SQL
Как видно, в таблице данные разделены на строки, где каждая строка - это запись. Рассмотрев аналогию базы данных - каталожный ящик с папками из главы 1, "Введение в базы данных", вы придете к выводу, что каждая папка в ящике соответствует строке таблицы.
Далее данные в каждой строке разбиты на ячейки (или поля), каждая из которых содержит значение конкретного атрибута данных. Рассмотрим, например, запись по конкретному пользователю Стиву Клингону (Steve Klingon). Здесь запись разбита на раздельные поля: идентификатор, имя, фамилия, номер телефона и адрес электронной почты.
Строки таблицы никак не отсортированы по какому-либо критерию; они могут храниться в алфавитном порядке, по идентификатору, по имени или по любому другому критерию. Поэтому необходим определенный метод, с помощью которого можно определить конкретную запись в таблице. В нашем примере, каждое поле идентифицируется идентификатором, который является уникальным для каждой строки или записи: это уникальное поле называется еще первичным ключом таблицы.
Следует подчеркнуть, что MySQL является реляционной системой управления базами данных, или реляционной СУБД. Реляционная база данных обычно состоит из нескольких таблиц, содержащих связанные между собой части данных. Язык SQL позволяет комбинировать данные из этой таблицы различными способами, позволяя таким образом анализировать новые взаимосвязи между данными.
В первом примере у нас была в распоряжении только одна таблица. Как бы она ни была хороша сама по себе, добавив новые таблицы и получив возможность установить определенные связи между ними, вы в действительности сможете увидеть реальную силу реляционной базы данных. Рассмотрим следующий пример, в котором к первой таблице добавлено еще две таблицы; во второй содержится список фильмов, имеющихся в прокате, а третья предназначена для связывания первой таблицы со второй через их первичные ключи.
Краткий курс MySQL и SQL
Краткий курс MySQL и SQL
Внимательно присмотревшись к третьей таблице, можно увидеть, что она связывает наименование видеокассеты и имя взявшего ее напрокат. Таким образом, видно, что Jane Doe (№ 2) арендовала Woman On Top (видеокассета № 6), а John Doe (№ 1) решил провести выходные с Star Wars (видеокассета № 1), ET (видеокассета № 2) и Charlie's Angels (видеокассета № 3).
Другими словами, третья таблица задает связи между первой и второй таблицами, что и является фундаментальной концепцией реляционных СУБД. После установки одной или нескольких связей появляется возможность выборки данных для ответа на определенные вопросы.

Создание баз данных
Теперь, когда мы познакомились с концепцией реляционных СУБД, можно перейти к решению конкретных задач. Запустим наш клиент MySQL. (Следует подчеркнуть, что все, что вводится в ответ на подсказку, печатается в листингах жирным шрифтом.)
Листинг 4.5.
[user@host]# mysql -u root -p Password: ******
Предположим, что все было введено правильно и вы ввели правильный пароль. В результате на экране вы увидите что-то вроде представленного в листинге 4.6.
Листинг 4.6.
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 80 to server version: 4.0.9-gamma-standard
Type 'help;' or 'h' for help.
mysql>
Это подсказка для ввода команды MySQL. Заметим, что все команды MySQL завершаются точкой с запятой или последовательностью символов "g" и могут вводиться как в верхнем, так и в нижнем регистре.
Так как все таблицы хранятся в базах данных, самой первой командой является команда создания базы данных CREATE DATABASE, имеющая следующий синтаксис: CREATE DATABASE имя-базы данных
А теперь попробуем создать базу данных library.
Листинг 4.7.
mysql> CREATE DATABASE library;
Query OK, 1 row affected (0.05 sec)
Просмотреть все имеющиеся базы данных можно с помощью оператора SHOW DATABASES.
Краткий курс MySQL и SQL
Из полученного списка баз данных с помощью оператора USE можно выбрать нужную:
USE имя- базы- данных Листинг 4.9.
mysql> USE library;
Database changed
После того как нужная база данных выбрана, можно воспользоваться оператором SHOW TABLES, с тем чтобы посмотреть список всех имеющихся в ней таблиц.
Листинг 4.10.
mysql> SHOW TABLES;
Empty set (0.00 sec)
Совершенно очевидно, поскольку это новая база данных, таблицы в ней отсутствуют. Давайте разберемся и с этим вопросом.
Подробнее о работе с базами данных можно узнать в главе 8, "Обработка баз данных и таблиц"