Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD_Razrabotki_po_labam / БДлаб1.doc
Скачиваний:
8
Добавлен:
05.06.2015
Размер:
352.26 Кб
Скачать

Структура таблицы vendors.Db (Поставщики)

№ п/п

Поле

Тип

Размер

Первичный ключ

Назначение

1

VendorNo

N

*

Номер поставщика

2

VendorName

A

30

Название компании-поставщика

3

Address1

A

30

Адрес 1

4

Address2

A

30

Адрес 2

5

City

A

20

Город

6

State

A

20

Штат

7

Zip

A

10

Почтовый индекс

8

Country

A

20

Страна

9

Phone

A

15

Номер телефона

10

FAX

A

15

Номер факса

11

Preferred

L

Имеет предпочтение

Задание 9. Дополнить схему взаимосвязи таблиц (см. рисунок ниже), указав соответствие первичных и внешних ключей (первичные ключи подчеркнуть).

ВБД таблицы соотносятся как главные и подчиненные и соединяются через первичные и внешние ключи, причем одна строка главной таблицы может быть связана с несколькими строками подчиненной таблицы, что обозначается на схеме линией со стрелками .Внешний ключ - это поле или набор полей подчиненной таблицы, который в главной таблице является первичным ключом.

CUSTOMER

ORDERS

EMPLOYEE

CustNo

. . .

. . .

OrderNo

CustNo

. . .

EmpNo

EmpNo

. . .

. . .

VENDORS

PARTS

ITEMS

?

?

?

Взаимосвязь таблиц в базе данных

Команда Restructure изменяет структуру таблицы в соответствии с изменением описания полей таблицы. Если таблица содержит данные,

то эти данные преобразуются согласно сделанным изменениям, причем преобразование может привести к частичной потере данных.

Задание 10. Изменить структуру таблицы ANIMALS.DBF, уменьшив размер (Size) поля AREA до 15 символов.

Команда Rename изменяет имя таблицы.

Задание 11. Изменить имя таблицы ANIMALS.DBF на ANIMA.DBF.

Команда Sort сортирует строки (записи) таблицы. Если в исходной таблице определен первичный ключ, то при сортировке создается новая упорядоченная таблица, для которой нужно задать имя. Из списка Fields выбираются поля, по которым следует сортировать, и помещаются в список Sort Order. Порядок полей сортировки изменяется кнопками Change Order. Направление сортировки (по возрастанию или убыванию) для каждого поля задается кнопкой Sort Direction.

Опция Sort Just Selected Fields разрешает сортировку таблиц Paradox только по полям из списка Sort Order без учета значений других полей. Опция Display Sorted Table задает отображение отсортированной таблицы после нажатия кнопки ОК.

Задание 12. Отсортировать таблицу ANIMA.DBF в алфавитном порядке названий животных и по убыванию их веса. Результат сортировки поместить в таблицу AN1.

Отсортировать таблицу ANIMA.DBF по убыванию веса животных и в алфавитном порядке их названий. Результат сортировки поместить в таблицу AN2.

Сравнить результаты сортировки.

Задание 13. Отсортировать таблицу CUSTOMER.DB по названиям компаний-покупателей. Результат сортировки поместить в таблицу CUST.

Задание 14. Отсортировать таблицу CUST по названиям штатов. Обратите внимание, что в отличие от таблицы CUSTOMER таблица CUST не имеет первичного ключа!

Команда Empty удаляет все строки (записи) из таблицы, а команда Delete удаляет таблицу или файл.

Задание 15. Очистить таблицу AN2, а затем удалить таблицу AN2.

Команда Add объединяет содержимое одной таблицы с содержимым другой таблицы: A+BB. Имя исходной таблицы A указывается в окне Add records in, а имя результирующей таблицы B - в окне Add records in A to.

Если выбран режим Append, то записи из исходной таблицы A добавляются в результирующую таблицу B.

Задание 16. Объединить таблицы ANIMA и AN1: ANIMA+AN1AN1.

Если для таблиц определены первичные ключи, то при объединении в режиме Append строки (записи) с повторяющимися значениями первичных ключей в результирующую таблицу не добавляются.

Режимы Update и Append&Update действуют только для таблиц с первичными ключами.

Если выбран режим Update, то в результирующей таблице отыскиваются строки, у которых значение первичного ключа совпадает со значением первичного ключа в строке исходной таблицы. В найденной строке результирующей таблицы значения неключевых полей заменяются значениями одноименных неключевых полей из соответствующей строки исходной таблицы.

Если выбран режим Append&Update, то из исходной таблицы строки с несовпадающими значениями ключей добавляются в результирующую таблицу, а строки из исходной таблицы с совпадающими значениями ключей обновляют данные в соответствующих строках результирующей таблицы.

Задание 17. Выполнить команду Restructure для таблицы CUST и отметить поле CustNo как первичный ключ. Для этого признак первичного ключа Key в поле CustNo обозначить звездочкой (*), нажав клавишу пробела. Сохранить изменения в структуре таблицы CUST.

Задание 18. Объединить таблицы CUSTOMER и CUST в режимах Append и Update: CUSTOMER+CUSTCUST.

При выполнении команды Add в режиме Append дополнительно создается временная таблица KEYVOIL со списком строк исходной таблицы, у которых значения первичного ключа совпадают со значениями этого ключа в результирующей таблице.

При выполнении команды Add в режиме Update дополнительно создается временная таблица CHANGED со списком изменяемых строк результирующей таблицы.

Обе таблицы хранятся в личном каталоге PRIV.

Команда Substract вычитает содержимое одной таблицы из другой. Операция вычитания определена только для таблиц типа Paradox. В операции участвуют уменьшаемая или результирующая таблица A и вычитаемая или исходная таблица B: A-BA.

Имя исходной таблицы B набирается в окне Substract records in, а имя результирующей таблицы A - в окне Substract records in B from.

Если в таблицах не заданы первичные ключи, то из таблицы А удаляются строки, которые полностью совпадают со строками таблицы В.

Если в таблицах определены первичные ключи, то из таблицы А удаляются строки, в которых значения первичного ключа совпадают со значениями первичного ключа в строках таблицы В.

Задание 19. Вычесть таблицу CUSTOMER из таблицы CUST (CUST-CUSTOMERCUST).

Редактирование таблицы

Режим редактирования устанавливается командой Table|Edit Data или кнопкой Edit Data, а режим просмотра - командой Table|View Data.

Изменяемое поле выделяется щелчком мышью. Чтобы сделать выделенное поле доступным для изменения, следует еще раз щелкнуть мышью в этом поле.

Изменения, сделанные в строке, сохраняются при переходе к другой строке. Отменить изменения можно до перехода к другой строке командой Edit|Undo.

Задание 20. В таблице ANIMA.DBF изменить значения в полях, содержащих размеры и веса двух животных; вставить одну строку командой Record|Insert, а другую - нажатием клавиши Insert; удалить вставленные строки командой Record|Delete и нажатием клавиш CTRL-Delete; закрыть таблицу командой File|Close.

Использование запросов по образцу QBE (Query By Example) для выборки данных из таблицы

Чтобы задать запрос по образцу, нужно выбрать команду File|New или File|Open и затем команду QBE Query или нажать кнопку Open Query.

Формирование запроса начинается с выбора таблиц, для которых предназначен запрос.

Далее в окне Query задаются отметки (галочки) для указания полей, включаемых в таблицу ответов ANSWER. Для сужения области действия запроса в его полях указываются условия, которым должны соответствовать выбираемые данные.

Когда запрос сформирован, можно выполнить его нажатием клавиши F8, кнопки Run Query на инструментальной панели или командой Query|Run Query. DBD обрабатывает запрос и отображает результаты в таблице ANSWER.

Большинству запросов по образцу соответствует запрос на языке SQL, который можно увидеть в окне SQL Editor, нажав кнопку Show SQL на инструментальной панели. Закрыть это окно можно кнопкой вызова системного меню; при закрытии окна выдается запрос на сохранение SQL-запроса в файле.

Использование отметок. Чтобы включить конкретное поле в таблицу ответов, нужно в окне Query щелчком мыши поставить отметку (галочку) в этом поле. Если установить курсор мыши на маленьком окошке в интересующем поле и нажать правую кнопку мыши, то появится список возможных отметок:

  • выбор неповторяющихся строк и сортировка в порядке возрастания;

  • отмена выбора;

  • выбор всех строк без сортировки;

  • выбор неповторяющихся строк и сортировка в порядке убывания.

Задание 21. Сформировать запрос на просмотр таблицы CUSTOMER.DB.

Задание 22. Отметить поля Company и City, чтобы в таблице ответов строки сортировались: а - в алфавитном порядке названий компаний; б - в обратном алфавитном порядке названий компаний. С помощью команды File|Save As сохранить QBE-запросы в рабочем каталоге под именами QBE22a и QBE22b. Записать в отчет соответствующие SQL-запросы.

Задание 23. Отметить только поле State, чтобы выводились:

  • все строки;

  • только неповторяющиеся названия штатов.

Cохранить QBE-запросы и записать в отчет соответствующие SQL-запросы.

Использование условий. Чтобы выбрать из таблицы строки с данными, удовлетворяющими некоторым условиям, нужно в запросе для отдельных полей справа от окошка записать условие, относящееся к этому полю. Для полей, содержащих текстовую информацию, можно использовать шаблоны, в которых символ @ обозначает любой один символ, а две подряд идущие точки (..) - любую последовательность символов.

Условия можно записывать с использованием знаков сравнения (<, >, =, <>, <=, >=) и логических операций "И" и "ИЛИ", обозначаемых соответственно запятой "," и словом OR.

Задание 24. Вывести список компаний-покупателей, расположенных в штате Гавайи (HI). Cохранить QBE-запрос и записать в отчет соответствующий SQL-запрос.

Задание 25. Вывести список компаний-покупателей, расположенных на Гавайях (HI) или в Калифорнии (CA). Cохранить QBE-запрос и записать в отчет соответствующий SQL-запрос.

Задание 26. Вывести список компаний-покупателей, сделавших заказ в январе 1995 года. Cохранить QBE-запрос и записать в отчет соответствующий SQL-запрос.

Задание 27. Вывести названия компаний-покупателей, начинающиеся на букву "B" и кончающиеся на "s". Cохранить QBE-запрос и записать в отчет соответствующий SQL-запрос.

Задание 28. С помощью шаблона вывести список компаний-покупателей, у которых почтовый индекс от 90000 до 99990. Cохранить QBE-запрос и записать в отчет соответствующий SQL-запрос.

Вычисление и изменение значений полей. Значение поля вычисляется с помощью оператора CALC, записываемого в поле справа от окошка. Форма оператора CALC COUNT используется для подсчета количества значений в столбце. Вычисляемое выражение может содержать элемент образца (example element) - переменную, принимающую текущее значение поля данных. Элемент образца обозначается именем, перед которым набирается символ подчеркивания или нажимается клавиша F5 (символ подчеркивания не отображается, а элемент образца выделяется красным цветом). Элемент образца и оператор CALC разделяются запятой, например: _a , CALC _a+2.

Для изменения значения поля предназначен оператор CHANGETO. При использовании этого оператора все поля должны быть неотмеченными.

Задание 29. Подсчитать количество компаний-покупателей из каждого штата, задав сортировку по штатам и использовав оператор CALC. Cохранить QBE-запрос и записать в отчет соответствующий SQL-запрос.

Задание 30. Для всех компаний-покупателей вычислить ставку налога TaxRate, увеличенную на 2%, без внесения изменений в таблицу. Cохранить QBE-запрос и записать в отчет соответствующий SQL-запрос.

Задание 31. Для всех компаний-покупателей изменить ставку налога TaxRate, увеличив ее на 1%, и внести это изменение в таблицу. Cохранить QBE-запрос и записать в отчет соответствующий SQL-запрос.

Задание 32. Вывести список компаний-покупателей и новые ставки налога.

Вставка и удаление строк (записей). Для выполнения этих действий нужно нажать правую кнопку мыши, когда курсор установлен в первой колонке запроса под именем таблицы, и из появившегося меню выбрать команду INSERT или DELETE.

Для INSERT в окне Query набираются значения полей вставляемой строки и нажимается кнопка Run Query.

Для DELETE в окне Query набираются условия, которым должны удовлетворять значения полей удаляемых строк, и нажимается кнопка Run Query.

При использовании этих команд все поля должны быть неотмеченными.

Задание 33. Ввести в таблицу CUSTOMER несколько строк, указав целое число из диапазона 1-3 в качестве значения поля CustNo и оператор TODAY в качестве значения поля LastInvoiceDate.

Cохранить первый из QBE-запросов и записать в отчет соответствующий SQL-запрос.

Задание 34. Из таблицы CUSTOMER удалить строки, соответствующие компаниям-покупателям, сделавшим заказы после 1 января 2008 года. Cохранить QBE-запрос и записать в отчет соответствующий SQL-запрос.

Удаленные строки помещаются в таблицу DELETED.DB, расположенную в личном каталоге PRIV.

Соединение таблиц. Можно задать запрос для нескольких связанных таблиц. Для этого предварительно таблицы нужно соединить по полям, содержащим однородную информацию.

Задание 35. Соединить таблицы CUSTOMER и ORDERS по полю CustNo (номер покупателя): на инструментальной панели нажать кнопку Add Table (пиктограмма таблицы с зеленым плюсом) для добавления таблицы ORDERS, затем кнопку Join Tables (пиктограмма из двух перекрывающихся таблиц) для задания операции соединения таблиц и щелкнуть мышью на поле CustNo в главной таблице CUSTOMER, а затем на поле CustNo в подчиненной таблице ORDERS. В каждом из полей появится выделенный красным цветом элемент образца join1.

После соединения таблиц можно ставить отметки в полях любой таблицы.

Задание 36. Вывести сведения о компаниях-покупателях, у которых цена заказа (поле AmountPaid) меньше 1000 долларов. Cохранить QBE-запрос и записать в отчет соответствующий SQL-запрос.

Задание 37. Соединить таблицы CUSTOMER, EMPLOYEE, ITEMS, ORDERS, PARTS, VENDORS в соответствии со схемой взаимосвязи таблиц, нарисованной при выполнении задания 9.

Задание 38. Вывести названия компаний-покупателей, фамилии служащих, оформивших заказ, и имена поставщиков заказанных изделий. Cохранить QBE-запрос и записать в отчет соответствующий SQL-запрос.

Задание 39. Вывести названия компаний-покупателей и описания изделий, заказанных в количестве, меньшем 10. Cохранить QBE-запрос и записать в отчет соответствующий SQL-запрос.

Задание 40. Вывести описания изделий и названия компаний-покупателей, заказы которых не могут быть выполнены (OnHand<OnOrder). Cохранить QBE-запрос и записать в отчет соответствующий SQL-запрос.

Сортировка таблицы ответов ANSWER. Для формируемой таблицы ответов может быть задана сортировка нажатием кнопки Sort Answer Table. В появившемся диалоговом окне выбираются поля, по которым следует сортировать таблицу. После закрытия окна нажатием кнопки ОК для выполнения сортировки нажимается кнопка Run Query на инструментальной панели.

Задание 41. Упорядочить последнюю полученную таблицу ответов в алфавитном порядке следования описаний изделий. Cохранить QBE-запрос и записать в отчет соответствующий SQL-запрос.

Задание 42. Завершить работу с запросами по образцу командой File|Close.

Соседние файлы в папке BD_Razrabotki_po_labam