Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


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




Теперь создадим базу данных описанной выше фирмы с использованиемклиентской программы 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 – имятаблицы. Эта команда позволит посмотреть типы данных столбцов и дополнительные атрибуты, указанные при создании таблицы.


Поделиться:

Дата добавления: 2015-02-10; просмотров: 75; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты