- •Настройка ядра процессора баз данных и использование утилиты Database Desktop для работы с таблицами
- •Теоретические сведения
- •Утилита bde Administrator
- •Утилита dbd
- •Структура таблицы animals.Dbf (Животные)
- •Структура таблицы сustomer.Db (Покупатели)
- •Структура таблицы employee.Db (Служащие)
- •Структура таблицы orders.Db (Заказы)
- •Структура таблицы items.Db (Заказанные изделия)
- •Структура таблицы parts.Db (Поставки партий изделий)
- •Структура таблицы vendors.Db (Поставщики)
- •Лабораторное задание и порядок выполнения работы
- •Требования к отчету
Структура таблицы parts.Db (Поставки партий изделий)
N п/п |
Поле |
Тип |
Размер |
Первичный ключ |
Содержимое |
1 |
PartNo |
N |
|
* |
Номер поставки партии изделий |
2 |
VendorNo |
N |
|
|
Номер поставщика |
3 |
Description |
A |
30 |
|
Описание изделия |
4 |
OnHand |
N |
|
|
Количество изделий в наличии |
5 |
OnOrder |
N |
|
|
Количество заказанных изделий |
6 |
Cost |
$ |
|
|
Стоимость одного изделия |
7 |
ListPrice |
$ |
|
|
Цена одного изделия |
Таблица 7
Структура таблицы vendors.Db (Поставщики)
N п/п |
Поле |
Тип |
Размер |
Первичный ключ |
Содержимое |
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 |
|
|
Имеет предпочтение |
Задание 8. Дополнить схему взаимосвязи таблиц (см. рисунок) посредством первичных ключей (первичные ключи подчеркнуть).
Взаимосвязь таблиц
в базе данных
CUSTOMER ORDERS
EMPLOYEE
CustNo
. . .
. . .
OrderNo
CustNo
. . .
EmpNo
EmpNo
. . .
. . .
VENDORS
PARTS
ITEMS
?
?
?
Команда Restructure изменяет структуру таблицы в соответствии с изменением описания полей таблицы. Если таблица содержит некоторые данные, то эти данные преобразуются согласно сделанным изменениям, причем преобразование может привести к частичной потере данных.
Задание 9. Изменить структуру таблицы ANIMALS.DBF, уменьшив размер (Size) поля AREA до 15 символов.
Команда Rename изменяет имя таблицы.
Задание 10. Изменить имя таблицы ANIMALS.DBF на ANIMA.DBF.
Команда Sort сортирует строки (записи) таблицы. Если в исходной таблице определен первичный ключ, то при сортировке создается новая упорядоченная таблица, для которой нужно задать имя. Из списка Fields выбираются поля, по которым следует сортировать, и помещаются в список Sort Order. Порядок полей сортировки изменяется кнопками Change Order. Направление сортировки (по возрастанию или убыванию) для каждого поля задается кнопкой Sort Direction.
Опция Sort Just Selected Fields разрешает сортировку таблиц Paradox только по полям из списка Sort Order без учета значений других полей. Опция Display Sorted Table задает отображение отсортированной таблицы после нажатия кнопки ОК.
Задание 11. Отсортировать таблицу ANIMA.DBF в алфавитном порядке названий животных и по убыванию их веса. Результат сортировки поместить в таблицу AN1.
Отсортировать таблицу ANIMA.DBF по убыванию веса животных и в алфавитном порядке их названий. Результат сортировки поместить в таблицу AN2.
Сравнить результаты сортировки.
Задание 12. Отсортировать таблицу CUSTOMER.DB по названиям компаний-покупателей. Результат сортировки поместить в таблицу CUST.
Задание 13. Отсортировать таблицу CUST по названиям штатов. Обратите внимание, что в отличие от таблицы CUSTOMER таблица CUST не имеет первичного ключа!
Команда Empty удаляет все строки (записи) из таблицы, а команда Delete удаляет таблицу или файл.
Задание 14. Очистить таблицу AN2, а затем удалить таблицу AN2.
Команда Add объединяет содержимое одной таблицы с содержимым другой таблицы: A+BB. Имя исходной таблицы A указывается в окне Add records in, а имя результирующей таблицы B - в окне Add records in A to.
Если выбран режим Append, то записи из исходной таблицы A добавляются в результирующую таблицу B.
Задание 15. Объединить таблицы ANIMA и AN1: ANIMA+AN1AN1.
Если для таблиц определены первичные ключи, то при объединении в режиме Append строки (записи) с повторяющимися значениями первичных ключей в результирующую таблицу не добавляются.
Режимы Update и Append&Update действуют только для таблиц с первичными ключами.
Если выбран режим Update, то в результирующей таблице отыскиваются строки, у которых значение первичного ключа совпадает со значением первичного ключа в строке исходной таблицы. В найденной строке результирующей таблицы значения неключевых полей заменяются значениями одноименных неключевых полей из соответствующей строки исходной таблицы.
Если выбран режим Append&Update, то из исходной таблицы строки с несовпадающими значениями ключей добавляются в результирующую таблицу, а строки из исходной таблицы с совпадающими значениями ключей обновляют данные в соответствующих строках результирующей таблицы.
Задание 16. Выполнить команду Restructure для таблицы CUST и отметить поле CustNo как первичный ключ. Для этого признак первичного ключа Key в поле CustNo обозначить звездочкой (*), нажав клавишу пробела. Сохранить изменения в структуре таблицы CUST.
Задание 17. Объединить таблицы CUSTOMER и CUST в режимах Append и Update: CUSTOMER+CUSTCUST.
При выполнении команды Add в режиме Append дополнительно создается временная таблица KEYVOIL со списком строк исходной таблицы, у которых значения первичного ключа совпадают со значениями этого ключа в результирующей таблице.
При выполнении команды Add в режиме Update дополнительно создается временная таблица CHANGED со списком изменяемых строк результирующей таблицы.
Обе таблицы хранятся в личном каталоге PRIV.
Команда Substract вычитает содержимое одной таблицы из другой. Операция вычитания определена только для таблиц типа Paradox. В операции участвуют уменьшаемая или результирующая таблица A и вычитаемая или исходная таблица B: A-BA.
Имя исходной таблицы B набирается в окне Substract records in, а имя результирующей таблицы A - в окне Substract records in B from.
Если в таблицах не заданы первичные ключи, то из таблицы А удаляются строки, которые полностью совпадают со строками таблицы В.
Если в таблицах определены первичные ключи, то из таблицы А удаляются строки, в которых значения первичного ключа совпадают со значениями первичного ключа в строках таблицы В.
Задание 18. Вычесть таблицу CUSTOMER из таблицы CUST (CUST-CUSTOMERCUST).
Управление просмотром таблицы
Для просмотра полей и строк таблицы используются полосы прокрутки, для выбора поля - щелчок мышью.
Задание 19. Выбрать таблицу ANIMA.DBF из WORK и ознакомиться со средствами, позволяющими управлять просмотром таблицы.
Изменить ширину колонок (столбцов) в таблице: курсор поместить в первую видимую строку таблицы на разделитель колонок, нажать левую кнопку мыши и переместить разделитель колонок в горизонтальном направлении влево или вправо.
Изменить высоту строк: курсор мыши поместить на разделитель строк в первой видимой строке таблицы в первой колонке, нажать левую кнопку мыши и переместить разделитель строк в вертикальном направлении вниз или вверх.
Изменить высоту заголовка таблицы: курсор мыши разместить на горизонтальной линии, отделяющей заголовок от строк таблицы, нажать левую кнопку мыши и переместить разделитель заголовка в вертикальном направлении.
Изменить положение колонки: курсор мыши установить на заголовок колонки; когда курсор примет форму прямоугольника, нажать левую кнопку мыши и переместить колонку в горизонтальном направлении влево или вправо. Переместить таким способом колонку BMP в таблице ANIMA.DBF на предпоследнее место.
Сдвинуть колонку на последнее место: щелкнуть мышью на любой строке сдвигаемой колонки и нажать клавиши CTRL-R. Сдвинуть таким способом колонку BMP в конец таблицы.
Блокировать прокрутку колонок: поместить курсор мыши на стрелку, расположенную слева над горизонтальной полосой прокрутки; когда курсор изменит форму, нажать левую кнопку мыши и перетащить стрелку на правую границу колонки, которая не должна прокручиваться, например на границу колонки SIZE. Теперь при прокрутке по горизонтали эта и лежащие слева от нее колонки будут оставаться на своих местах.
Сохранить характеристики просмотра таблицы командой Table|Table View Properties|Save, восстановить характеристики - Table|Table View Properties|Restore, удалить сохраненные характеристики - Table|Table View Properties|Delete.
Перемещаться по строкам таблицы можно с помощью команд дополнительного меню Record, навигационных кнопок, клавиш управления курсором.
Редактирование таблицы
Режим редактирования устанавливается командой Table|Edit Data или кнопкой Edit Data, а режим просмотра - командой Table|View Data.
Изменяемое поле выделяется щелчком мышью. Чтобы сделать выделенное поле доступным для изменения, следует еще раз щелкнуть мышью в этом поле.
Изменения, сделанные в строке, сохраняются при переходе к другой строке. Отменить изменения можно до перехода к другой строке командой Edit|Undo.
Задание 20. В таблице ANIMA.DBF изменить размеры и вес двух животных; вставить одну строку командой Record|Insert, а другую - нажатием клавиши Insert; удалить вставленные строки командой Record|Delete и нажатием клавиш CTRL-Delete; закрыть таблицу командой File|Close.
Использование запросов по образцу (QBE) для выборки данных из таблицы
Чтобы задать запрос по образцу, нужно выбрать команду File|New или File|Open и затем команду QBE Query или нажать кнопку Open Query.
В общем случае запросы начинаются с выбора таблиц, для которых предназначен запрос. Далее в окне Query задаются отметки (галочки) для указания полей, включаемых в таблицу ответов ANSWER. Для сужения области действия запроса в нем указываются условия, которым должны соответствовать выбираемые данные.
Когда запрос сформирован, можно выполнить его нажатием клавиши F8, кнопки Run Query на инструментальной панели или командой Query|Run Query. DBD обрабатывает запрос и отображает результаты в таблице ANSWER.
Большинству запросов по образцу соответствует запрос на языке SQL, который можно увидеть в окне SQL Editor, нажав кнопку Show SQL на инструментальной панели. Закрыть это окно можно кнопкой вызова системного меню; при закрытии окна выдается запрос на сохранение SQL-запроса в файле.
Задание 21. Сформировать запрос на просмотр таблицы CUSTOMER.DB.
Использование отметок.Чтобы включить конкретное поле в таблицу ответов, нужно в окне Query поставить отметку (галочку) в этом поле. Если установить курсор мыши на маленьком окошке в интересующем поле и нажать левую кнопку мыши, то появится список возможных отметок:
- выбор неповторяющихся строк и сортировка в порядке воз- растания;
- отмена выбора;
+ - выбор всех строк без сортировки;
- выбор неповторяющихся строк и сортировка в порядке убывания;
G - указание поля, по которому следует группировать строки;
поле в таблицу ответов не выводится.
Задание 22. Отметить поля Company и City, чтобы в таблице ответов строки сортировались: а - в алфавитном порядке названий компаний; б - в обратном алфавитном порядке названий компаний. С помощью команды File|Save As сохранить QBE-запросы в рабочем каталоге под именами QBE22a и QBE22b. Записать в отчет соответствующие SQL-запросы.
Задание 23. Отметить только поле State, чтобы выводились:
все строки;
только неповторяющиеся названия штатов.
Cохранить QBE-запросы и записать в отчет соответствующие SQL-запросы.
Использование условий. Чтобы выбрать из таблицы данные, удовлетворяющие некоторым условиям, нужно в запросе для отдельных полей справа от окошка записать условие, относящееся к этому полю. Для полей, содержащих текстовую информацию, можно использовать шаблоны, в которых символ @ обозначает любой один символ, а две подряд идущие точки (..) - любую последовательность символов.
Задание 24. Вывести список компаний-покупателей, расположенных на Гавайях (State=HI). Cохранить QBE-запрос и записать в отчет соответствующий SQL-запрос.
Задание 25. Вывести список компаний-покупателей, расположенных на Гавайях (State=HI) или в Калифорнии (State=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) - переменную, принимающую текущее значение поля данных. Элемент образца обозначается именем, перед которым набирается символ подчеркивания (символ подчеркивания не отображается, а элемент образца выделяется красным цветом). Элемент образца и оператор CALC разделяются запятой, например: _a,CALC _a+2.
Для изменения значения поля предназначен оператор CHANGETO. При использовании этого оператора все поля должны быть неотмеченными.
Задание 29. Подсчитать количество компаний-покупателей из каждого штата. 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 несколько строк, указав TODAY в качестве значения поля LastInvoiceDate и 1, 2, 3 ... в качестве значения поля CustNo.
Cохранить первый QBE-запрос и записать в отчет соответствующий SQL-запрос.
Задание 34. Из таблицы CUSTOMER удалить строки, соответствующие компаниям-покупателям, сделавшим заказы после 1 января 1998 года. 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 в соответствии со схемой взаимосвязи таблиц, нарисованной при выполнении задания 8.
Задание 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.