Хлебные крошки
Создание базы данных в Microsoft Access
- Подробности
- Категория: Материалы студентам
- Опубликовано 16.02.2015 18:53
- Автор: Шитов В.Н.
- Просмотров: 6887
Создание базы данных в Microsoft Access
Запустите программу Microsoft Access. Создайте новую базу данных (Туристические поездки.accdb) и укажите папку, в которой эта база должна быть создана. В левой части рабочего окна программы находится список всех созданных ранее таблиц. При создании новой базы создается всего одна пустая таблица и имя этой таблицы (Таблица 1) предлагается в списке всех таблиц. Прежде, чем начать создание таблиц, необходимо сказать несколько правил создания таблиц: сначала с помощью Конструктора создаются поля каждой таблицы и определяются свойства, затем создаются подстановочные списки всех типов. После этого анализируется схема данных. В каждую таблицу в определенном порядке вводится по одной записи. Если ни на одном шаге программа не обнаружит в нашей базе данных (БД) ни одной ошибки, то можно приступать к заполнению таблиц данными. Заполнение таблиц выполняется в строго определенном порядке. Малейшее нарушение последовательности шагов может привести к полнейшей неработоспособности всей БД. Ошибки бывают настолько запутанные, что часто намного проще удалить практически готовую БД и начать создавать новую, чем искать эти ошибки.
При каждом последующем запуске созданной ранее базы данных выводится кнопка Параметры. На эту кнопку нужно обязательно нажать и выбрать положение переключателя Включить это содержимое, иначе работать с БД будет невозможно.
В нашей базе данных всего 4 таблицы. В какой последовательности создавать таблицы, не имеет никакого значения. Последовательность имеет значение только при связывании таблиц и при заполнении таблиц данными.
Щелкните правой клавишей мыши по имени этой таблицы. Из открывшегося контекстного меню выполните команду Конструктор. После этого будет немедленно открыто окно Сохранение. Введите имя создаваемой таблицы: Клиенты. Нажмите на кнопку ОК. После этого создается таблица, состоящая всего из одного ключевого поля Код. То, что это поле ключевое, говорит значок ключа в левой части этого поля. В нижней части выделенного поля находится таблица свойств этого поля. Поле вводится попарно: имя поля, а затем выбирается его тип данных. Только после этого изменяются свойства этого поля. Выделите шаблонное имя Код и введите имя Код_клиента. Таблица Клиенты должна включать в себя следующие поля со следующими свойствами:
Код_клиента — ключевое поле. Тип данных: счетчик. Размер поля: длинное целое. Новые значения: последовательные. Обязательное поле: да. Индексированное поле: Да (совпадения не допускаются).
Название_фирмы — тип данных: текстовый. Размер поля: 30. Обязательное поле: да. Индексированное поле: нет.
Код_агента — тип данных: числовой. Размер поля: длинное целое. Формат поля: основной. Число десятичных знаков: 0. Обязательное поле: да. Обязательное поле: да. Индексированное поле: Да (допускаются совпадения).
Индекс — тип данных: текстовый. Размер поля: 6. Обязательное поле: нет. Индексированное поле: нет.
Город — тип данных: текстовый. Размер поля: 30. Обязательное поле: нет. Индексированное поле: нет.
Адрес — тип данных: текстовый. Размер поля: 40. Обязательное поле: нет. Индексированное поле: нет.
Телефон — тип данных: текстовый. Размер поля: 16. Обязательное поле: нет. Индексированное поле: нет.
Скидка — тип данных: числовой. Размер поля: двойное с плавающей точкой. Формат поля: процентный. Число десятичных знаков: авто. Обязательное поле: нет. Индексированное поле: нет.
Если ключевое поле нужно сделать не ключевым или, наоборот не ключевое поле сделать ключевым, то щелкните по этому полю правой клавишей мыши и из открывшегося контекстного меню выполните команду Ключевое поле. Ключевое поле в таблице может быть только одно. Поэтому если нужно сделать одно из полей ключевым, то сначала нужно отменить предыдущее ключевое поле.
Тип данных Счетчик бывает у ключевых полей, начинается с 1 и увеличивает номер каждой очередной записи на 1. Многие ошибочно понимают это буквально: что записи вводятся подряд с приростом на 1. Это и так и не так. Действительно, каждая очередная запись увеличивается на 1, но если, например, в процессе обучения при вводе записи будет обнаружена ошибка, то очередной порядковый номер записан не будет, а учтен будет. Например, при испытании таблицы вводится первая запись. При этом в одном из полей будет обнаружена ошибка. В этом случае такая запись создана не будет. Если мы исправим ошибку и будем вводить следующую запись в таблицу, то ее номер будет уже не 1, а 2: номер 1 просто не был присвоен ни одной записи. Если в таблице будет обнаружена еще одна ошибка, то и эта запись не будет введена, а очередной номер записи будет учтен и также пропадет впустую. Ничего опасного или ошибочного в этом нет: программа нумерует записи автоматически без участия пользователя, и если номер записи в таблице будет начинаться не с 1, а, например, с 5 (в процессе испытания таблицы были найдены 4 ошибки), то так и должно быть. Это специально обговаривается потому, что у студентов такая странная нумерация неизменно вызывает панику, хотя оснований для беспокойства нет никаких.
Часто задают вопросы: почему номер телефона и индекс являются текстовыми полями, хотя они состоят из цифр? Не лучше ли будет присвоить им числовой формат? Во-первых, с этими полями не предусмотрено никаких математических операций, а, во-вторых, номер телефона состоит не только из цифр, но включает в себя разделители-дефисы, то есть не является числом, а именно текстом. Если бы дефис был один и находился перед числом, то программа тогда еще могла бы трактовать такое содержимое как отрицательное число.
Некоторые поля являются необязательными. Например, кому то может не предоставляться скидка. Или другой пример, человек может забыть свой индекс или номер телефона, выписаться с предыдущего адреса, но не успеть прописаться по другому адресу. Недостающие данные могут быть заполнены и потом, а могут так и остаться незаполненными. Если речь идет о не обязательном поле, то имеется ввиду не обязательное заполнение поля при создании записи. Как обязательные, так и не обязательные поля можно отредактировать после создания записи.
В поле Телефон нужно наложить маску ввода. Для этого поместите курсор в поле Телефон. Щелкните мышью по свойству Маска ввода. После этого в строке свойства появится миниатюрная кнопка с многоточием. Нажмите на нее. Если после этого система безопасности сообщит об обнаруженной угрозе системе безопасности, то подтвердите открытие. После этого открывается окно Создание масок ввода. Многие маски уже созданы изначально. Например, Краткий формат даты в виде ДД.ММ.ГГГГ. Но на все ситуации создать маски заранее невозможно, как, например, на телефон. Для создания маски телефона нажмите на кнопку Список. После этого открывается окно Настройка масок ввода (Рис. 1). Так как в номер телефона может включаться код междугородней связи, то в маске нужно учитывать и это.
В поле Описание введите название создаваемой маски, например, «Телефон». В поле Маска ввода укажите порядок ввода символов. Для набора шаблонного номера используйте следующие символы: 0 — для набора обязательных цифр номера телефона и 9 — для набора необязательных цифр номера. Остальные символы при создании маски вводятся вручную, а вот при заполнении таблиц эти символы будут вводиться автоматически, поэтому маска очень удобна. Щелкните мышью в поле Образцы данных. Заполните любой номер телефона, не обязательно реальный. Обратите внимание, как заполняется номер телефона: только цифры, а символы подставляются вручную. Цифры набираются подряд: программа сама «перейдет» через шаблонные разделители-дефисы, а если номер набирается с кодом межгорода, то обойдет и круглые скобки. Если при наборе образца номера никаких ошибок не появилось, то можно нажать на кнопку Закрыть.
Рис. 1. Создание маски ввода |
После возвращения в окно Создание масок ввода маска ввода Телефон должна быть выделена. Если это не так, то выделите эту маску в списке масок. Если никаких дополнительных испытаний созданной маски проводить не нужно, то нажмите на кнопку Готово. Если в правильности создания маски имеются сомнения, а у студентов такие сомнения быть должны, то или щелкните в поле Проба и с помощью маски введите любой номер телефона (просто набирайте цифры), или нажмите на кнопку Далее и на любом шаге Мастера проведите испытание ввода маски телефона.
На этом создание полей таблицы Клиенты заканчивается. Заполнение любой созданной таблицы данными категорически запрещается, так как это делается только после создания всех таблиц и установления связей между таблицами.
Для создания очередной таблицы выполните команду Создание → Таблица. Все операции по созданию полей выполняются в Конструкторе.
Таблица Сотрудники должна включать в себя следующие поля со следующими свойствами:
Код_агента — ключевое поле. Тип данных: счетчик. Размер поля: длинное целое. Формат поля: основной. Новые значения: последовательные. Обязательное поле: да. Индексированное поле: Да (совпадения не допускаются).
ФИО — тип данных: текстовый. Размер поля: 60. Обязательное поле: да. Индексированное поле: нет.
Дата_рождения — тип данных: Дата/время. Обязательное поле: да. Маска ввода: краткий формат даты. Индексированное поле: нет.
Дата_приема — тип данных: Дата/время. Обязательное поле: да. Маска ввода: краткий формат даты. Индексированное поле: нет.
Стаж — тип данных: числовой. Размер поля: длинное целое. Формат поля: основной. Число десятичных знаков: 0. Обязательное поле: да. Индексированное поле: нет.
Дата_увольнения — тип данных: Дата/время. Обязательное поле: нет. Маска ввода: краткий формат даты. Индексированное поле: нет.
Фотография — тип данных: Поле объекта OLE. Обязательное поле: нет.
Особо обратите внимание на поле Дата_увольнения: многие так увлекаются, что делают это поле обязательным. Сотрудники обычно увольняются довольно редко, а если это поле сделать обязательным, то сразу же после приема на работу сотрудника должны немедленно уволить.
Таблица Туры должна включать в себя следующие поля со следующими свойствами:
Код_тура — ключевое поле. Тип данных: счетчик. Размер поля: длинное целое. Формат поля: основной. Новые значения: последовательные. Обязательное поле: да. Индексированное поле: Да (совпадения не допускаются).
Тип_тура — тип данных: текстовый. Размер поля: 20. Обязательное поле: да. Индексированное поле: нет.
Наименование_тура — тип данных: текстовый. Размер поля: 60. Обязательное поле: да. Индексированное поле: нет.
Цена — тип данных: числовой. Размер поля: двойное с плавающей точкой. Формат поля: денежный. Число десятичных знаков: 2. Обязательное поле: да. Индексированное поле: нет.
Таблица Заказы должна включать в себя следующие поля со следующими свойствами:
Код_заказа — ключевое поле. Тип данных: счетчик. Размер поля: длинное целое. Формат поля: основной. Новые значения: последовательные. Обязательное поле: да. Индексированное поле: Да (совпадения не допускаются).
Месяц — тип данных: текстовый. Размер поля: 8 (число символов в самом длинном месяце: сентябрь). Обязательное поле: да. Индексированное поле: нет.
Дата — тип данных: Дата/время. Обязательное поле: да. Маска ввода: краткий формат даты. Индексированное поле: нет.
Код_тура — тип данных: числовой. Размер поля: длинное целое. Формат поля: основной. Число десятичных знаков: 0. Обязательное поле: да. Обязательное поле: да. Индексированное поле: Да (допускаются совпадения).
Код_клиента — тип данных: числовой. Размер поля: длинное целое. Формат поля: основной. Число десятичных знаков: 0. Обязательное поле: да. Обязательное поле: да. Индексированное поле: Да (допускаются совпадения).
Количество — тип данных: числовой. Размер поля: длинное целое. Формат поля: основной. Число десятичных знаков: 0. Обязательное поле: да. Индексированное поле: нет.
Мы создали 4 таблицы, данные по-прежнему заполнять нельзя. Если какие-либо таблицы не нужны, то их можно закрыть. Закрыть можно или с помощью кнопки Закрыть «Имя_таблицы» (×) (закрывается активная таблица), или щелкнув по ярлычку таблицы правой клавишей мыши, выбрать из контекстного меню команду Закрыть, если закрыть нужно таблицу, по ярлычку которой был выполнен щелчок, или команду Закрыть все, если закрыть нужно все таблицы. Сохранение каждой таблицы выполняется отдельно. Если при закрытии имеются несохраненные данные в этой таблице, то будет выведено предложение сохранить изменения.
После создания таблиц можно создавать подстановочные списки.
С помощью Конструктора откройте таблицу Заказы. Выделите поле Месяц. Справа от этого поля находится Тип данных: Текстовый. Щелкните по этому типу. После этого становится видна треугольная кнопочка. Щелкните по этой кнопочке. В списке открывшихся команд выполните самую последнюю команду Мастер подстановок. В открывшемся окне Создание подстановки установите переключатель в положение Будет введен фиксированный набор значений. Фиксированный набор означает, что мы будем создавать эти возможные значения вручную. Нажмите на кнопку Далее. В следующем шаге Мастера введите названия месяцев. После завершения создания строки списка нельзя нажимать на клавишу Enter, иначе Мастер просто перейдет в следующий шаг. Поэтому для перехода на строчку ниже нажимайте на клавиатуре ПК клавишу Стрелка вниз. Если весь подстановочный список создан (Рис. 2), то нажмите на кнопку Далее.
Рис. 2. Создание фиксированного списка |
В последнем шаге Мастера предлагается выбрать заголовок для фиксированного списка. Но так как мы уже создали таблицу, то имя для этого заголовка берется из имени столбца. Обычно это имя изменять не нужно. Нажмите на кнопку Готово для создания фиксированного списка и возвращения в рабочее окно программы.
После создания фиксированного списка часто спрашивают, а куда же были введены все эти значения и где их можно посмотреть: посмотреть подстановочный список можно на панели Свойства поля, на вкладке Подстановка. В свойстве Источник строк перечислены месяцы, которые были только что созданы. В поле Число строк списка установите значение 12, так как всего в списке 12 записей. В поле Ограничиться списком установите значение Да. Снова вернитесь на вкладку Общие.
Закройте таблицу Заказы. С помощью Конструктора откройте таблицу Туры. Выделите поле Тип_тура. Самостоятельно создайте фиксированный набор значений для этого поля. Введите следующие записи:
- Россия
- СНГ
- Прибалтика
- Западная Европа
- Восточная Европа
- Турция
- Египет
- Таиланд
- Юго-Восточная Азия
- Китай
Можете самостоятельно продолжить этот список по направлениям туров.
Создание фиксированных наборов значений являются самыми простыми подстановочными списками. Теперь мы должны связать таблицы между собой. Связи таблиц представлены на рисунке (Рис. 3).
Рис. 3. Схема базы данных Туристические поездки |
Для связывания таблиц нужно выбирать таблицу, в которой связываемое поле не является ключевым. Например, таблицы Клиенты и Сотрудники имеют одно и то же поле Код_агента. В таблице Клиенты это поле не ключевое, а в таблице Сотрудники — ключевое. Значит, для связывания мы должны с помощью Конструктора открыть таблицу Клиенты. Выделите поле Код_агента. Справа от этого поля находится Тип данных: Числовой. Щелкните по этому типу. После этого становится видна треугольная кнопочка. Щелкните по этой кнопочке. В списке открывшихся команд выполните самую последнюю команду Мастер подстановок. В открывшемся окне Создание подстановки установите переключатель в положение Объект «столбец подстановки» будет использовать значения из таблицы или запроса. Нажмите на кнопку Далее. После этого открывается Мастер подстановки на втором шаге (Рис. 4). Здесь выбирается источник подстановки. В качестве источника подстановки можно использовать таблицы, запросы или и то и другое. В нашем примере созданы пока только таблицы, которые по умолчанию и предлагаются. Выберите таблицу Сотрудники, так как мы уже выяснили выше, что поле Код_агента имеется только в таблицах Клиенты и Сотрудники. Но так как мы соединяем поле Код_агента из таблицы Клиенты, то связывать мы должны с таким же полем в таблице Сотрудники. Нажмите на кнопку Далее.
Рис. 4. Выбор источника подстановки |
В следующем шаге Мастера необходимо выбрать поле (или поля) в выбранной только что таблице (Сотрудники). В списке Доступные поля по очереди выберите связываемые поля: Код_агента и ФИО. Нажмите на кнопку >. После этого выбранное поле оказывается в списке Выбранные поля, а из списка Доступные поля такое поле исчезает. Часто спрашивают: почему мы связываем с одним полем из таблицы Клиенты сразу 2 поля из таблицы Сотрудники? Дело в том, что если мы предложим выбрать код из ничего не говорящих кодов, то пользователю будет трудно сделать выбор. Но если будет предложен список фамилий, то выбор сделать просто. Тогда задают второй вопрос: а почему нельзя сразу связать поле Код_агента из таблицы Клиенты с полем ФИО из таблицы Сотрудники? Да потому, что в первом поле выбран тип данных Числовой, а во втором тип данных Текстовый. Эти два совершенно разных типа данных невозможно напрямую связать друг с другом. А так как напрямую нельзя, то приходится связывать не напрямую, а косвенно, с помощью поля Код_агента из таблицы Сотрудники. В этой таблице тип данных Счетчик, представляющий собой не что иное, как числа, только автоматически нумеруемые. На рисунке (Рис. 5) такой выбор уже выполнен. Нажмите на кнопку Далее.
Рис. 5. Выбор подстановочных полей |
В следующем шаге Мастера определяются параметры сортировки данных в подсоединяемом столбце. В нашем примере ничего сортировать не нужно. Нажмите на кнопку Далее. В следующем шаге Мастера определяется ширина подстановочного столбца. Возможность скорее виртуальная, чем реальная, так как, не имея данных, трудно сказать о нужной ширине. Нужную ширину можно потом, при вводе реальных данных. Поэтому нажмите на кнопку Далее. В последнем шаге Мастера предлагается определить имя подстановочного столбца, но так как мы это имя указали при создании таблиц, то обычно это имя и остается. Нажмите на кнопку Готово. Перед созданием связи предлагается сохранить таблицу. Согласитесь. После этого программа возвращается в ту таблицу, для которой создавался подстановочный список (в данном случае Клиенты).
Сохраните и закройте таблицу Клиенты. Откройте с помощью Конструктора таблицу Заказы. В этой таблице нужно создать 2 связи: для поля Код_тура и Код_клиента.
Поле Код_тура из таблицы Заказы нужно связать с полями Код_тура, Наименование_тура, Цена из таблицы Туры. Поле Код_клиента из таблицы Заказы нужно связать с полями Код_клиента, Город, Наименование_фирмы из таблицы Клиенты. Эти связи установите самостоятельно. После связывания таблиц установите следующие свойства: Число строк списка: 100. Ограничиться списком: Да.
Сохраните изменения и обязательно закройте все таблицы. Выполните команду Работа с базами данныхСхема данных. Если в схеме данных отражаются не все таблицы, то щелкните в свободной области схемы данных правой клавишей мыши и из открывшегося контекстного меню выполните команду Отобразить все. Таблицы связаны друг с другом так, как мы их связывали с помощью столбцов подстановки. Первоначально таблицы разбросаны по схеме случайным образом, поэтому рассмотреть связи между таблицами неудобно. Подхватите каждую таблицу за системную полосу и расставьте их так, чтобы связи были видны (Рис. 6).
Рис. 6. Схема данных |
Если в дальнейшем выяснится, что в связях имеются ошибки или свойства поля, входящего в связь, выбраны неправильно, то программа не разрешит ничего исправить до тех пор, пока не будет удалена связь между парой таблиц. Для этого щелкните по связи в схеме данных правой клавишей мыши. Из открывшегося контекстного меню выполните команду Удалить. Подтвердите удаление связи. После исправления ошибки связь нужно будет создать заново.
На следующем шаге работы нужно проверить целостность данных. Для этого аккуратно щелкните по связи в паре таблиц. Щелкните по выделенной связи правой клавишей мыши. Из открывшегося контекстного меню выполните команду Изменить связь. В открывшемся окне Изменение связей установите флажки в следующие опции: Обеспечение целостности данных, Каскадное обновление связанных полей и Каскадное удаление связанных записей. Нажмите на кнопку ОК. Если после этого программа сообщит, что невозможно проверить целостность ядра данных, то это означает, что пользователь не закрыл исходные таблицы. Закройте исходные таблицы (в Конструкторе), а схему данных не закрывайте, снова выполните проверку целостности данных.
Если открытых таблиц не было, то на концах связи в паре таблиц в схеме данных появятся 2 значка: 1 и ∞. Значение 1 может быть установлено в ключевом поле. Это означает, что каждая запись в таком поле уникальна и не может повторяться. Значение ∞ сообщает, что в данном поле может быть неограниченное число одних и тех же значений. Например, когда клиент первый раз приходит в туристическую кампанию, то он получает уникальный номер, по которому его потом в случае необходимости можно легко идентифицировать. Такой номер у него может быть только один: на этот номер будут накапливаться различные бонусы, скидки, льготы и т. д. Но клиент может покупать любое число путевок, да и приходить в кампанию он может неограниченное число раз, то есть бесконечное число.
Самостоятельно проверьте целостность данных для всех связей в таблицах. Сохраните изменения в схеме данных и закройте ее.
На следующем шаге выполняется пробное (по одной записи) заполнение всех четырех таблиц. Заполнять таблицы нужно не случайным образом, а по строго определенному правилу: сначала заполняются таблицы, откуда идут стрелки, а в конце заполняются таблицы, в которые идут стрелки. Поэтому сначала заполняются таблицы Сотрудники и/или Туры. Потом заполняется таблица Клиенты и только в самом конце заполняется таблица Заказы. Для начала заполнения таблицы выполните двойной щелчок по ее имени в списке таблиц.
Рис. 7. Запись в таблице Сотрудники |
Рис. 8. Запись в таблице Туры |
Рис. 9. Запись в таблице Клиенты |
Рис. 10. Запись в таблице Заказы |
Изменение ширины столбцов таблицы можно организовать только после ввода всех обязательных полей записи. Для вставки фотографии щелкните по полю в таблице правой клавишей мыши и из открывшегося контекстного меню выполните команду Вставить объект. Выберите программу, с помощью которой можно вставить фотографию. Вставленную фотографию можно редактировать.
Обратите внимание, насколько просто работать с подстановочными списками: не нужно открывать справочники, чтобы узнать код того то или того то.
Если в ходе заполнения таблиц одиночными записями не возникло ни одной ошибки, то можно приступать к массовому заполнению таблиц. Теоретически это можно сделать тем же способом, которым создавались одиночные записи (двойной щелчок по имени таблицы в списке таблиц), но практически так редко кто делает, так намного удобнее вводить записи в таблицы с помощью форм.
Закройте все открытые таблицы. Для создания формы для ввода данных выполните команду Создание → Другие формы → Мастер форм. После этого запускается Мастер на первом шаге (Рис. 11). В списке Таблицы и запросы выберите таблицу, для которой нужно создавать форму. В какой последовательности создавать формы для таблиц совершенно все равно. Для примера возьмем таблицу Клиенты. В списке Доступные поля перечислены все поля выбранной таблицы. Если в форму нужно включить все поля, то нажмите на кнопку >>. После этого все исходные поля из списка Доступные поля перемещаются в список Выбранные поля. Если некоторые поля не нужны, то их можно по очереди выбрать с помощью кнопки >. Другой вариант: выбрать все поля, нажав на кнопку >>, а затем ненужные поля выделить в списке Выбранные поля и убрать с помощью кнопки <. Обычно для формы выбирают все поля. После выбора полей нажмите на кнопку Далее.
Рис. 11. Выбор исходной таблицы |
На втором шаге Мастера определяется внешний вид формы. Наиболее простым и понятным является вариант Табличный. Нажмите на кнопку Далее. В третьем шаге Мастера определяется стиль формы. Для примера выберите вариант Стандартная. В последнем шаге Мастера определяется имя создаваемой формы. По умолчанию предлагается то же имя, что и в таблице. Нажмите на кнопку Готово.
Самостоятельно создайте формы для 3-х других таблиц.
Чтобы открыть форму для заполнения выполните по ней двойной щелчок мышью. После этого на риббоне Главная выполните команду Режим → Режим формы. После этого будет открыта форма (Рис.12). Кроме этого на полосе состояния (самая последняя в рабочем окне программы в правой части находятся кнопки работы в разных режимах, в том числе и Режим формы). Под формой предлагаются кнопки для навигации по записям в таблице.
Рис. 12. Заполнение таблицы с помощью форм |
С помощью форм введите данные в таблицы (число записей):
Сотрудники: 5 записей
Код_агента |
ФИО |
Дата_рождения |
Дата_приема |
Стаж |
Дата_увольнения |
Фотография |
1 |
Иванов Иван Иванович |
01.04.1986 |
09.02.2004 |
8 |
|
|
2 |
Борисов Алексей Викторович |
22.03.1995 |
01.09.2011 |
1 |
|
|
3 |
Цепалова Алена Игоревна |
16.05.1993 |
24.06.2010 |
2 |
|
|
4 |
Павлухина Мария Сергеевна |
05.02.1978 |
25.06.2002 |
10 |
|
|
5 |
Бисенов Даулет Сергеевич |
29.04.1989 |
04.07.2005 |
7 |
|
|
Клиенты: 20 записей
Код_клиента |
Название_фирмы |
Код_агента |
Индекс |
Город |
Адрес |
Телефон |
Скидка |
1 |
Светлица |
Иванов Иван Иванович |
112233 |
Старые Васюки |
Садовая, 14 |
( - )999-88-87 |
2,00% |
2 |
Веселая планета |
Цепалова Алена Игоревна |
223377 |
Хвалынск |
Весенняя, 45 |
( - )777-88-89 |
1,00% |
3 |
Зеленая планета |
Борисов Алексей Викторович |
114455 |
Новокузнецк |
Осенняя, 9 |
( - )099-22-44 |
0,00% |
4 |
Луч |
Бисенов Даулет Сергеевич |
440077 |
Ижевск |
Речная, 12 |
( - )111-33-33 |
3,00% |
5 |
Светозар |
Павлухина Мария Сергеевна |
117788 |
Майкоп |
Морская,6 |
( - )444-44-44 |
2,00% |
6 |
БЭСФ |
Борисов Алексей Викторович |
223344 |
Чапаевск |
Мира, 21 |
( - )666-33-33 |
1,00% |
7 |
Отдых и развлечения |
Бисенов Даулет Сергеевич |
776655 |
Саратов |
Московская, 2 |
( - )555-66-00 |
3,00% |
8 |
Респект |
Борисов Алексей Викторович |
445511 |
Пенза |
Симбирцева, 31 |
( - )445-58-99 |
0,00% |
9 |
Большой мир |
Павлухина Мария Сергеевна |
336677 |
Екатеринбург |
Слонова, 34 |
( - )111-00-66 |
1,00% |
10 |
Праздник |
Иванов Иван Иванович |
115544 |
Дивногорск |
Лесная, 11 |
( - )222-22-22 |
0,00% |
11 |
Празник-праздник |
Павлухина Мария Сергеевна |
227700 |
Волгоград |
Театральная, 34 |
( - )777-77-77 |
2,00% |
12 |
Мишка косолапый |
Бисенов Даулет Сергеевич |
331144 |
Архангельск |
Морская, 11 |
( - )445-55-55 |
3,50% |
13 |
Дуэт |
Иванов Иван Иванович |
554433 |
Пенза |
Восточная, 3 |
( - )333-33-33 |
0,00% |
14 |
Встреча |
Цепалова Алена Игоревна |
447766 |
Ижевск |
Уральская, 8 |
( - )477-77-75 |
2,00% |
15 |
Визит |
Борисов Алексей Викторович |
774499 |
Саратов |
Новая, 14 |
( - )115-55-55 |
3,40% |
16 |
Лед и пламя |
Борисов Алексей Викторович |
987654 |
Хвалынск |
Старая, 15 |
( - )333-33-33 |
1,40% |
17 |
Дорога |
Иванов Иван Иванович |
172839 |
Тамбов |
Лесная, 23 |
( - )111-18-88 |
2,70% |
18 |
Апрель |
Павлухина Мария Сергеевна |
876543 |
Ижевск |
Сибирская, 8 |
( - )056-78-90 |
1,90% |
19 |
Золотая Прага |
Цепалова Алена Игоревна |
654321 |
Волгоград |
Григорьева, 5 |
( - )890-89-08 |
2,30% |
20 |
Черный кот |
Борисов Алексей Викторович |
234567 |
Чапаевск |
Березовая, 6 |
( - )023-45-67 |
1,80% |
Туры: 50 записей
Код_тура |
Тип_тура |
Наименование_тура |
Цена |
1 |
Восточная Европа |
Болгария |
14 000,00р. |
2 |
Прибалтика |
Литва |
9 000,00р. |
3 |
Китай |
Пекин |
28 000,00р. |
4 |
Западная Европа |
Германия |
15 000,00р. |
5 |
Западная Европа |
Греция |
14 000,00р. |
6 |
Таиланд |
Таиланд |
27 000,00р. |
7 |
Турция |
Стамбул |
11 000,00р. |
8 |
Карибские острова |
Куба |
34 000,00р. |
9 |
Россия |
Сочи |
5 000,00р. |
10 |
СНГ |
Молдавия |
4 500,00р. |
11 |
Юго-Восточная Азия |
Вьетнам |
26 000,00р. |
12 |
Россия |
Анапа |
4 500,00р. |
13 |
Египет |
Египет |
14 000,00р. |
14 |
Карибские острова |
Гренада |
38 000,00р. |
15 |
Прибалтика |
Латвия |
8 800,00р. |
16 |
Восточная Европа |
Венгрия |
9 000,00р. |
17 |
Россия |
Адлер |
4 300,00р. |
18 |
Испания |
Мальорка |
15 900,00р. |
19 |
Китай |
Шанхай |
23 000,00р. |
20 |
Испания |
Ибица |
16 700,00р. |
21 |
Россия |
Домбай |
6 000,00р. |
22 |
СНГ |
Белоруссия |
5 000,00р. |
23 |
Западная Европа |
Голландия |
15 800,00р. |
24 |
Турция |
Хургада |
12 000,00р. |
25 |
Юго-Восточная Азия |
Филлипины |
23 000,00р. |
26 |
Россия |
Каспийск |
5 000,00р. |
27 |
СНГ |
Таджикистан |
4 000,00р. |
28 |
Прибалтика |
Эстония |
9 000,00р. |
29 |
Россия |
Калининград |
5 500,00р. |
30 |
СНГ |
Одесса |
6 000,00р. |
31 |
Восточная Европа |
Чехия |
10 000,00р. |
32 |
Западная Европа |
Бельгия |
20 000,00р. |
33 |
Западная Европа |
Италия |
20 000,00р. |
34 |
Россия |
Алтай |
10 000,00р. |
35 |
Россия |
Южный Урал |
14 000,00р. |
36 |
Россия |
Байкал |
12 000,00р. |
37 |
Россия |
Троице-Сергиевская лавра |
7 000,00р. |
38 |
СНГ |
Казахстан |
7 000,00р. |
39 |
СНГ |
Киргизия |
8 000,00р. |
40 |
Восточная Европа |
Словакия |
12 070,00р. |
41 |
Египет |
Красное море |
34 500,00р. |
42 |
Западная Европа |
Франция |
35 000,00р. |
43 |
Восточная Европа |
Румыния |
12 400,00р. |
44 |
СНГ |
Армения |
7 567,00р. |
45 |
Россия |
Колыма |
45 000,00р. |
46 |
Россия |
Бийск |
35 897,00р. |
47 |
Китай |
Далянь |
47 078,00р. |
48 |
Западная Европа |
Люксембург |
24 170,00р. |
49 |
Западная Европа |
Швейцария |
31 986,00р. |
50 |
Россия |
Восточная Сибирь |
45 973,35р. |
Заказы: 100 записей
Код_заказа |
Месяц |
Дата |
Код_тура |
Код_клиента |
Количество |
1 |
Август |
01.07.2012 |
Болгария |
Старые Васюки |
3 |
2 |
Март |
06.02.2012 |
Греция |
Новокузнецк |
1 |
3 |
Июнь |
24.04.2011 |
Таиланд |
Хвалынск |
2 |
4 |
Апрель |
11.12.2011 |
Греция |
Саратов |
1 |
5 |
Август |
21.10.2010 |
Пекин |
Новокузнецк |
1 |
6 |
Январь |
26.05.2012 |
Стамбул |
Волгоград |
2 |
7 |
Май |
29.10.2011 |
Греция |
Екатеринбург |
3 |
8 |
Сентябрь |
11.06.2012 |
Литва |
Ижевск |
4 |
9 |
Март |
26.06.2011 |
Байкал |
Пенза |
7 |
10 |
Апрель |
21.03.2012 |
Каспийск |
Саратов |
2 |
11 |
Июль |
31.03.2012 |
Одесса |
Тамбов |
2 |
12 |
Сентябрь |
04.06.2012 |
Восточная Сибирь |
Чапаевск |
1 |
13 |
Декабрь |
13.02.2012 |
Киргизия |
Хвалынск |
2 |
14 |
Ноябрь |
03.09.2011 |
Троице-Сергиевская лавра |
Саратов |
3 |
15 |
Февраль |
24.12.2011 |
Венгрия |
Пенза |
1 |
16 |
Март |
11.12.2011 |
Латвия |
Архангельск |
1 |
17 |
Октябрь |
05.05.2012 |
Анапа |
Тамбов |
2 |
18 |
Август |
21.09.2011 |
Калининград |
Волгоград |
1 |
19 |
Октябрь |
07.04.2012 |
Гренада |
Волгоград |
1 |
20 |
Январь |
11.12.2011 |
Адлер |
Хвалынск |
2 |
21 |
Март |
02.03.2012 |
Литва |
Ижевск |
1 |
22 |
Август |
23.12.2011 |
Таиланд |
Майкоп |
1 |
23 |
Май |
31.10.2011 |
Германия |
Новокузнецк |
2 |
24 |
Апрель |
04.05.2012 |
Куба |
Саратов |
1 |
25 |
Июнь |
01.03.2012 |
Молдавия |
Майкоп |
1 |
26 |
Сентябрь |
02.05.2012 |
Венгрия |
Архангельск |
1 |
27 |
Январь |
08.08.2012 |
Мальорка |
Пенза |
2 |
28 |
Февраль |
02.03.2012 |
Шанхай |
Волгоград |
2 |
29 |
Май |
31.08.2012 |
Анапа |
Хвалынск |
3 |
30 |
Июль |
09.09.2012 |
Белоруссия |
Ижевск |
3 |
31 |
Ноябрь |
20.11.2011 |
Латвия |
Хвалынск |
4 |
32 |
Апрель |
30.09.2012 |
Ибица |
Саратов |
1 |
33 |
Май |
23.02.2012 |
Стамбул |
Майкоп |
2 |
34 |
Июль |
04.05.2012 |
Германия |
Ижевск |
2 |
35 |
Август |
26.04.2012 |
Вьетнам |
Хвалынск |
3 |
36 |
Апрель |
01.03.2012 |
Домбай |
Тамбов |
2 |
37 |
Октябрь |
02.04.2012 |
Сочи |
Новокузнецк |
3 |
38 |
Июнь |
23.05.2012 |
Хургада |
Ижевск |
1 |
39 |
Январь |
11.11.2012 |
Латвия |
Саратов |
2 |
40 |
Февраль |
12.12.2012 |
Адлер |
Чапаевск |
3 |
41 |
Март |
04.06.2012 |
Гренада |
Пенза |
2 |
42 |
Декабрь |
08.09.2012 |
Мальорка |
Ижевск |
3 |
43 |
Июль |
03.07.2012 |
Египет |
Тамбов |
1 |
44 |
Май |
05.06.2012 |
Литва |
Хвалынск |
1 |
45 |
Февраль |
07.07.2012 |
Болгария |
Старые Васюки |
2 |
46 |
Июнь |
30.04.2012 |
Литва |
Майкоп |
2 |
47 |
Август |
09.10.2012 |
Вьетнам |
Пенза |
1 |
48 |
Апрель |
02.03.2012 |
Болгария |
Чапаевск |
4 |
49 |
Октябрь |
05.05.2012 |
Домбай |
Дивногорск |
5 |
50 |
Август |
06.09.2012 |
Гренада |
Хвалынск |
1 |
51 |
Апрель |
01.02.2012 |
Мальорка |
Тамбов |
1 |
52 |
Январь |
03.05.2012 |
Венгрия |
Ижевск |
3 |
53 |
Февраль |
07.10.2012 |
Египет |
Волгоград |
3 |
54 |
Март |
31.03.2012 |
Латвия |
Екатеринбург |
4 |
55 |
Декабрь |
01.02.2012 |
Сочи |
Пенза |
2 |
56 |
Февраль |
10.12.2011 |
Греция |
Новокузнецк |
2 |
57 |
Апрель |
24.12.2011 |
Германия |
Майкоп |
3 |
58 |
Май |
04.04.2012 |
Греция |
Саратов |
4 |
59 |
Январь |
30.04.2012 |
Египет |
Ижевск |
2 |
60 |
Март |
28.02.2012 |
Куба |
Екатеринбург |
1 |
61 |
Июль |
06.09.2011 |
Анапа |
Пенза |
2 |
62 |
Май |
20.12.2011 |
Сочи |
Ижевск |
3 |
63 |
Май |
30.12.2012 |
Гренада |
Хвалынск |
2 |
64 |
Август |
29.09.2012 |
Стамбул |
Волгоград |
3 |
65 |
Июль |
09.08.2012 |
Вьетнам |
Пенза |
1 |
66 |
Апрель |
28.03.2012 |
Сочи |
Саратов |
2 |
67 |
Сентябрь |
04.05.2012 |
Куба |
Екатеринбург |
1 |
68 |
Март |
09.09.2012 |
Мальорка |
Ижевск |
3 |
69 |
Сентябрь |
06.02.2012 |
Таиланд |
Хвалынск |
3 |
70 |
Февраль |
03.04.2012 |
Куба |
Дивногорск |
1 |
71 |
Январь |
08.07.2012 |
Литва |
Волгоград |
2 |
72 |
Июнь |
04.07.2012 |
Болгария |
Хвалынск |
3 |
73 |
Март |
29.04.2012 |
Ибица |
Ижевск |
2 |
74 |
Июнь |
27.12.2012 |
Адлер |
Архангельск |
1 |
75 |
Апрель |
04.06.2012 |
Анапа |
Пенза |
2 |
76 |
Май |
04.08.2012 |
Сочи |
Волгоград |
2 |
77 |
Июнь |
03.04.2012 |
Стамбул |
Ижевск |
5 |
78 |
Март |
09.07.2012 |
Молдавия |
Саратов |
2 |
79 |
Апрель |
07.06.2012 |
Гренада |
Чапаевск |
2 |
80 |
Август |
02.03.2012 |
Домбай |
Ижевск |
3 |
81 |
Сентябрь |
05.01.2012 |
Сочи |
Саратов |
2 |
82 |
Март |
23.12.2012 |
Вьетнам |
Дивногорск |
3 |
83 |
Август |
08.05.2012 |
Таиланд |
Майкоп |
2 |
84 |
Сентябрь |
02.03.2012 |
Греция |
Пенза |
5 |
85 |
Ноябрь |
04.08.2012 |
Мальорка |
Хвалынск |
1 |
86 |
Август |
05.06.2012 |
Стамбул |
Ижевск |
1 |
87 |
Январь |
31.01.2012 |
Греция |
Екатеринбург |
2 |
88 |
Февраль |
03.06.2012 |
Сочи |
Пенза |
3 |
89 |
Сентябрь |
04.01.2012 |
Анапа |
Саратов |
4 |
90 |
Ноябрь |
09.06.2012 |
Латвия |
Старые Васюки |
5 |
91 |
Июль |
02.07.2012 |
Египет |
Хвалынск |
2 |
92 |
Январь |
06.07.2012 |
Стамбул |
Майкоп |
1 |
93 |
Июнь |
09.04.2012 |
Адлер |
Чапаевск |
2 |
94 |
Октябрь |
03.05.2012 |
Венгрия |
Саратов |
2 |
95 |
Июль |
06.01.2012 |
Вьетнам |
Пенза |
1 |
96 |
Март |
07.04.2012 |
Молдавия |
Екатеринбург |
2 |
97 |
Август |
05.02.2012 |
Германия |
Новокузнецк |
1 |
98 |
Апрель |
22.04.2012 |
Таиланд |
Волгоград |
3 |
99 |
Ноябрь |
21.03.2012 |
Пекин |
Екатеринбург |
2 |
100 |
Апрель |
24.10.2012 |
Анапа |
Пенза |
5 |
Эти данные необходимы для создания запросов, поэтому записей в каждой таблице должно быть достаточно много.