- поля номер_поставщика, номер_детали, номер_изделия во всех таблицах имеет символьный тип и длину 6 (varchar(6));
- поля рейтинг, вес и количество имеют целочисленный тип (integer);
- поля фамилия, город (поставщика, детали или изделия), название (детали или изделия) имеют символьный тип и длину 20 (varchar(20));
- ни для одного поля не предусматривается использование индексов;
-для всех полей допускаются значения NULL и значения-дубликаты, кроме полей первичного и внешнего ключей.
После создания пустых таблиц их необходимо наполнить данными. Вводить данные в нее можно несколькими способами:
а)Вручную, используя команду insert into;
Пример ввода данных вручную (команда INSERT):
mysql>insert into J (Jnum, Jnam, Ci)values ('J1','Жесткий диск','Париж'); или mysql>insert into J values ('J1','Жесткий диск','Париж'); |
//т.е в случае если вы вставляете данные во все поля таблицы то их перечислять не обязательно.
Таким образом SQL инструкция имеет следующий вид
INSERT INTO table_name (id, name) VALUES ('id_value', 'name_value');
Записать и выполнить совокупность запросов для занесения нижеприведенных данных в созданные таблицы
insert into имя_таблицы [(поле [,поле]...)] values (константа [,константа]...)
б)Загрузить данные из текстового файла, что является более предпочтительным, особенно если нужно ввести несколько тысяч записей.
Синтаксис команды LOAD DATA INFILE.
DATA [LOW_PRIORITY] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE]
INTO TABLE tbl_name
[FIELDS
[TERMINATED BY 't']
[OPTIONALLY] ENCLOSED BY '']
[ESCAPED BY '' ]]
[LINES TERMINATED BY 'n']
[IGNORE number LINES]
[(col_name,...)]
Пример:
LOAD DATA LOCAL INFILE '/MyDocs/categories.txt' REPLACE
INTO TABLE category FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED
BY '\"' LINES TERMINATED BY '\n'
В данном случае файл categories.txt находится на машине под управлением MS Windows, в каталоге C:\MyDocs.
Обратите внимание на UNIX стиль написания пути. Слово
REPLACE
В SQL запросе означает, что необходимо замещать записи с совпадающими значениями ключей.
INTO TABLE[6]
указывает имя таблицы, куда будут импортированы данные.
FIELDS TERMINATED BY ';' [7]
указывает разделители полей, порядок полей должен быть таким же, как и в таблице назначения,
OPTIONALLY ENCLOSED BY '\"'
указывает, что поля VARCHAR взяты в двойные кавычки, и
LINES TERMINATED BY '\r' [8]
в) Использовать утилиту mysqlimport также для загрузки данных из текстового файла.
Эти и другие операции можно выполнить также и в программе MySQL-Front.
Рисунок 15 - Использование программы MySQL-front для заполнения таблиц данными из файла
Таблица поставщиков (S)
Hомеp поставщика | Фамилия | Рейтинг | Город |
S1 | Смит | 20 | Лондон |
S2 | Джонс | 10 | Париж |
S3 | Блейк | 30 | Париж |
S4 | Кларк | 20 | Лондон |
S5 | Адамс | 30 | Афины |
Таблица деталей (P)
Номер детали | Название | Цвет | Вес | Город |
P1 | Гайка | Красный | 12 | Лондон |
P2 | Болт | Зеленый | 17 | Париж |
P3 | Винт | Голубой | 17 | Рим |
P4 | Винт | Красный | 14 | Лондон |
P5 | Кулачок | Голубой | 12 | Париж |
P6 | Блюм | Красный | 19 | Лондон |
Таблица изделий (J)
Номер изделия | Название | Город |
J1 | Жесткий диск | Париж |
J2 | Перфоратор | Рим |
J3 | Считыватель | Афины |
J4 | Принтер | Афины |
J5 | Флоппи-диск | Лондон |
J6 | Терминал | Осло |
J7 | Лента | Лондон |
Таблица поставок (SPJ)
Номер поставщика | Номер детали | Номер изделия | Количество |
S1 | P1 | J1 | 200 |
S1 | P1 | J4 | 700 |
S2 | P3 | J1 | 400 |
S2 | P3 | J2 | 200 |
S2 | P3 | J3 | 200 |
S2 | P3 | J4 | 500 |
S2 | P3 | J5 | 600 |
S2 | P3 | J6 | 400 |
S2 | P3 | J7 | 800 |
S2 | P5 | J2 | 100 |
S3 | P3 | J1 | 200 |
S3 | P4 | J2 | 500 |
S4 | P6 | J3 | 300 |
S4 | P6 | J7 | 300 |
S5 | P2 | J2 | 200 |
S5 | P2 | J4 | 100 |
S5 | P5 | J5 | 500 |
S5 | P5 | J7 | 100 |
S5 | P6 | J2 | 200 |
S5 | P1 | J4 | 100 |
S5 | P3 | J4 | 200 |
S5 | P4 | J4 | 800 |
S5 | P5 | J4 | 400 |
S5 | P6 | J4 | 500 |
Убедиться в успешности выполненных действий. При необходимости исправить ошибки. Для ускорения процесса ввода данных рекомендуется воспользоваться командой LOAD DATA (синтаксис см. в приложении), предварительно скопировав содержимое перечисленных таблиц сначала в Excel, а оттуда в текстовые файлы. Такой порядок необходим, для того, чтобы текстовый файл был с табуляцией.
5. Выполнить модификацию структуры таблицы SPJ, добавив в SPJ поле с датой поставки. Убедиться в успешности выполненных действий. При необходимости исправить ошибки (команда Alter table).
6. Уничтожить созданные таблицы, предварительно сохранив инструкции для восстановления структуры БД и информационного наполнения, используя средства работы СУБД[9]. Убедиться в успешности выполненных действий.
7. Выполнить необходимые действия, написав и выполнив соответствующие запросы для модификации таблиц, чтобы структура соответствовала концептуальной модели учебной базы данных (рисунок 5). Убедиться в успешности выполненных действий. При необходимости исправить ошибки.