КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Создание базы данных ⇐ ПредыдущаяСтр 6 из 6 Теперь создадим базу данных описанной выше фирмы с использованиемклиентской программы mysql. Создадим базу данных taxi таксопарка командой CREATEDATABASE: mysql>CREATEDATABASEtaxi; Команда должна завершаться точкой с запятой (этот символ называется разделителем – delimiter), получив команду, сервер выполняет ее и выдает сообщение (при успехе – QueryOK, 1 rowaffected). При создании базы данных она автоматически не выбирается, выбирать ее нужно отдельно. Для этого надо дать команду использовать только что созданную базу данных: mysql>USEtaxi; Создавать базу нужно только однажды, но выбирать ее приходится в каждом сеансе работы с mysqi. Таблицы создаются командой CREATETABLE. При создании нужно указать не только имя таблицы, но и ее полное определение, состоящее из определений отдельных полей. Таблица cars должна содержать поля: · model – с названием модели автомобиля; · madein— года ее выпуска; · reg_number – государственного регистрационного номера; · color – цвета. Кроме того, вам понадобится столбец id, однозначно идентифицирующий запись об автомобиле — первичный ключ. Значения этого поля не должны повторяться и не могут быть пустыми, желательно, чтобы эти значения были целыми числами, увеличивающимися на единицу в каждой новой записи.
mysql> CREATE TABLE cars9 ( 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, PRIMARYKEY(id) ) ;
Атрибут NOTNULL означает, что все строки таблицы должны иметь значение в этом столбце. Если NOTNULL не указано, поле может быть пустым (NULL). PRIMARYKEY после имени столбца определяет, что этот столбец является первичным ключом для таблицы. Данные в этом столбце должны быть уникальными. AUTO_INCREMENT – атрибут, используемый для создания столбца с уникальными значениями. Если при вставке строк в таблицу оставлять такое поле пустым, MySQL автоматически генерирует уникальное значение идентификатора. Это значение будет на единицу больше максимального значения, уже существующего в столбце. В каждой таблице может быть не больше одного такого поля. MySQL использует следующий алгоритм для инициализации счетчика для столбца id, имеющего атрибут AUTO_INCREMENT: после запуска сервера MySQL при первом запросе на добавление данных в таблицу cars сервер высчитывает максимальное значение в столбце id. Полученное значение увеличивается на единицу, заносится в новую запись и в счетчик. Если таблица была пуста, то счетчик устанавливается в единицу. Таблица drivers содержит столбцы для хранения имени, отчества и фамилии водителя – name, second_name, family_name; даты его рождения birth, домашнего адреса address и даты поступления на работу startdate.
mysql> CREATE TABLE drivers9 ( 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 'nodescription' Таблица timetable состоит из полей use_on с датой, номером машины car_numberи идентификатором водителяdriver_number.
mysql> CREATE TABLE timetable9 ( use_on DATE DEFAULT NULL, car9_number SMALLINT, driver9_number SMALLINT, id SMALLINT AUTO_INCREMENT, PRIMARY KEY(id), INDEX (car9_number), INDEX (driver9_number), FOREIGN KEY (car9_number) REFERENCES cars9(id), FOREIGN KEY (driver9_number) REFERENCES drivers9 (id) );
MySQL поддерживает ссылочную целостность базы с помощью ограничения внешнего ключа foreignkey. Назначение этого ключа — проверять соответствие значений в столбцах родительского и внешнего ключей. Эти столбцы должны иметь одинаковый тип данных, и только те значения, которые встречаются в родительском ключе, могут использоваться во внешнем ключе. Родительский ключ должен содержать неповторяющиеся значения и не содержать значений NULL. Последние два столбца таблицы timetable являются внешними ключами, и MySQL 5 требует, чтобы перед созданием внешних ключей на этих столбцах были созданы индексы. Индекс формируется из значений одного или нескольких столбцов таблицы и позволяет находить нужную строку по заданному значению. Для ускорения запросов индексы обычно создаются на тех столбцах таблицы, которые часто используются в запросах. После создания таблиц можно просмотреть их список и структуру. Посмотреть список таблиц в базе можно командой.
mysql>SHOWTABLES;
а структуру таблицы – mysql> DESCRIBE table_name;
Здесьtabie_name – имятаблицы. Эта команда позволит посмотреть типы данных столбцов и дополнительные атрибуты, указанные при создании таблицы.
|