Теперь создадим базу данных описанной выше фирмы с использованиемклиентской программы mysql. Создадим базу данных taxi таксопарка командой CREATE DATABASE:
mysql> CREATE DATABASE taxi;
Команда должна завершаться точкой с запятой (этот символ называется разделителем – delimiter), получив команду, сервер выполняет ее и выдает сообщение (при успехе – Query OK, 1 row affected).
При создании базы данных она автоматически не выбирается, выбирать ее нужно отдельно. Для этого надо дать команду использовать только что созданную базу данных: mysql>USE taxi;
Создавать базу нужно только однажды, но выбирать ее приходится в каждом сеансе работы с mysqi.
Таблицы создаются командой CREATE TABLE.
При создании нужно указать не только имя таблицы, но и ее полное определение, состоящее из определений отдельных полей. Таблица cars должна содержать поля:
· model – с названием модели автомобиля;
· madein — года ее выпуска;
· reg_number – государственного регистрационного номера;
· color – цвета.
Кроме того, вам понадобится столбец id, однозначно идентифицирующий запись об автомобиле — первичный ключ. Значения этого поля не должны повторяться и не могут быть пустыми, желательно, чтобы эти значения были целыми числами, увеличивающимися на единицу в каждой новой записи.
mysql> CREATE TABLE cars (
model CHAR(50) NOT NULL,
madein YEAR(4) NOT NULL,
reg_number CHAR(12) NOT NULL,
color CHAR(15) NOT NULL,
id SMALLINT AUTO_INCREMENT,
PRIMARY KEY(id) ) ;
Атрибут NOT NULL означает, что все строки таблицы должны иметь значение в этом столбце. Если NOT NULL не указано, поле может быть пустым (NULL).
PRIMARY KEY после имени столбца определяет, что этот столбец является первичным ключом для таблицы. Данные в этом столбце должны быть уникальными.
AUTO_INCREMENT – атрибут, используемый для создания столбца с уникальными значениями. Если при вставке строк в таблицу оставлять такое поле пустым, MySQL автоматически генерирует уникальное значение идентификатора. Это значение будет на единицу больше максимального значения, уже существующего в столбце. В каждой таблице может быть не больше одного такого поля.
MySQL использует следующий алгоритм для инициализации счетчика для столбца id, имеющего атрибут AUTO_INCREMENT: после запуска сервера MySQL при первом запросе на добавление данных в таблицу cars сервер высчитывает максимальное значение в столбце id. Полученное значение увеличивается на единицу, заносится в новую запись и в счетчик. Если таблица была пуста, то счетчик устанавливается в единицу.
Таблица drivers содержит столбцы для хранения имени, отчества и фамилии водителя – name, second_name, family_name; даты его рождения birth, домашнего адреса address и даты поступления на работу startdate.
mysql> CREATE TABLE drivers (
name CHAR(30) NOT NULL,
second_name CHAR(30),
family_name CHAR(30) NOT NULL,
birth DATE NOT NULL,
address CHAR(150) NOT NULL DEFAULT 'unkonwn',
startdate DATE NOT NULL DEFAULT '2002-01-01',
id SMALLINT AUTO_INCREMENT,
PRIMARY KEY(id) );
Кроме этого, при создании таблицы для некоторых полей могут применяться дополнительные ключевые слова, уточняющие диапазон возможных значений. Ключевое слово UNSIGNED может применяться после указания целочисленного типа и означает, что его значение может быть либо положительным, либо нулевым.
DEFAULT – после этого ключевого слова указывается значение по умолчанию для данного столбца. Например:
DEFAULT 'no description'
Таблица timetable состоит из полей use_on с датой, номером машины car_number и идентификатором водителяdriver_number.
MySQL поддерживает ссылочную целостность базы с помощью ограничения внешнего ключа foreign key. Назначение этого ключа — проверять соответствие значений в столбцах родительского и внешнего ключей. Эти столбцы должны иметь одинаковый тип данных, и только те значения, которые встречаются в родительском ключе, могут использоваться во внешнем ключе. Родительский ключ должен содержать неповторяющиеся значения и не содержать значений NULL.
Последние два столбца таблицы timetable являются внешними ключами, и MySQL 5 требует, чтобы перед созданием внешних ключей на этих столбцах были созданы индексы.
Индекс формируется из значений одного или нескольких столбцов таблицы и позволяет находить нужную строку по заданному значению. Для ускорения запросов индексы обычно создаются на тех столбцах таблицы, которые часто используются в запросах.
После создания таблиц можно просмотреть их список и структуру. Посмотреть список таблиц в базе можно командой.
mysql> SHOW TABLES;
а структуру таблицы –
mysql> DESCRIBE table_name;
Здесь tabie_name – имя таблицы. Эта команда позволит посмотреть типы данных столбцов и дополнительные атрибуты, указанные при создании таблицы.