Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
10
Добавлен:
31.03.2015
Размер:
43.52 Кб
Скачать

МАТЕРИАЛЫ

для самостоятельной подготовки в период учебной практики на 2 курсе

Тема 4: «Создание и использование запросов к данным»

Цель работы: Освоение основных понятий и методов поиска информации в БД и формирования запросов к данным, содержащимся в базе данных. Изучение языка SQL.

Изучаемые команды СУБД Visual FoxPro: LOCATE, CONTINUE, SEEK, select…From…, CREATE TABLE, INSERT INTO, UPDATE, ALTER TABLE, CREATE CURSOR

  1. Обратиться к Visual FoxPro. Установить путь по умолчанию к своей папке на рабочем диске. Открыть БД KOM_FIRM, созданную при выполнении предыдущей темы. Открыть для использования все 3 таблицы и установить между ними связи так, как это делалось в п.3 предыдущей темы. С помощью команды

SELECT POS

перейти к таблице POSTAVKI и отключить упорядочивание в этой таблице командой

SET ORDER TO 0

Найти в таблице первую запись, относящуюся к поставке товаров в фирму с кодом 190. Для этого ввести команду поиска информации по заданному условию в неупорядоченной таблице

LOCATE FOR KOD_FIRM=’190’

Просмотреть таблицу и убедиться, что текущая запись, действительно, относится к искомой фирме. Найти в ней следующую запись о поставке в эту фирму, введя команду продолжения поиска, заданного командой LOCATE

CONTINUE

Просмотреть таблицу и убедиться, что текущей стала следующая запись о поставке в фирму с кодом 190. Несколько раз повторить команду продолжения поиска.

Включить в таблице POSTAVKI упорядочивание по коду фирмы

SET ORDER TO I_FIRM

Применить команду быстрого поиска информации с использованием индекса по аспекту поиска

SEEK ‘190’

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

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

select firm,adres,gorod from klienty where ; alltrim(klienty. gorod)='Москва' or ; alltrim(klienty. gorod)='Санкт-Петербург' into table example1

Открыть созданную в результате исполнения запроса таблицу EXAMPLE1.DBF и просмотрев ее записи, убедиться в корректности полученного результата.

Создать таблицу EXAMPLE2 c выборкой из 3-х таблиц информации о поставке товаров клиентам фирмы, включающей дату поставки, название фирмы, название города, в котором находится фирма-клиент, название товара, его количество и стоимость. С этой целью создать SQL-запрос:

select b.dat_zanes,a.firm,a.CITY,c.nazvanie,b.koliz,b.stoim from klienty a, postavki b,tovary c where a.kod=b.kod_firm and b.kod_tov=c.kod_tov into table example2

Открыть таблицу EXAMPLE2.DBF, просмотреть ее содержание и сравнить его с содержанием обзора данных TEK_SVED, созданного при выполнении предыдущей темы. Для этого вывести эти таблицы в двух подокнах, расположив их на двух половинках экрана. Сделать вывод по итогам сравнения.

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

CREATE TABLE EXAMPLE3 (FIO C(40), TAB_NUM C(8), ;

GRUPPA C(7), STIPEND N(4,2))

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

INSERT INTO EXAMPLE3 (FIO, TAB_NUM, GRUPPA, STIPEND);

VALUES ("Иванов И.И.","71001025","A-2-03",92.58)

Проверить корректность выполнения этого оператора.

Добавить в таблицу EXAMPLE3 5-6 записей, заполняя только поле FIO , например, фамилиями студентов своей группы. После этого, выполнить SQL-оператор

UPDATE EXAMPLE3 SET GRUPPA="A-1-03", STIPEND=1258

Сделать вывод о назначении примененного оператора.

  1. Используя SQL-оператор CREATE TABLE, создать таблицу SQL_TEST с 3 полями: F1 - календарная дата, F2 - символьное (до 50 символов), F3 - числовое, на 10 знакомест с 4 знаками в дробной части. Внести в таблицу SQL_TEST с помощью оператора INSERT две произвольные записи и отобразить их на экране.

Обратиться к помощи и изучить назначение и синтаксис SQL-оператора ALTER TABLE. С помощью этого оператора изменить структуру таблицы SQL_TEST: удалить поле F3, увеличить размер поля F2 до 70 символов, добавить еще одно поле F4 типа календарной даты.

  1. Используя SQL-оператор SELECT , создать на основе таблиц BDW1, BDW2 новую таблицу EXAMPLE4 с 4 полями: FF1(поле DN из BDW1), FF2(поле WB из BDW1 ), FF3(поле FIOO из BDW2), FF4(поле SPLAV из BDW2); записать в эти поля информацию из исходной таблицы для записей, отвечающих условию: BDW1.DN=BDW2.DN и, одновременно, BDW2.FIOE='ПЕТРОВ П.П.'.

Записи в результирующей таблице EXAMPLE4 должны быть упорядочены по полю FF1. Просмотреть полученный результат и проверить его корректность.

  1. Выполнить SQL-оператор создания курсора (временной таблицы)

CREATE CURSOR EXAMPLE5 (FIO C(40), TAB_NUM C(8),;

GRUPPA C(7), STIPEND N(4,2))

Просмотреть структуру созданной таблицы. Отличается ли она от структуры таблицы EXAMPLE3 ?

  1. Открыть БД OTD_KADR, созданную при выполнении предыдущей темы. С помощью SQL-запроса создать таблицу EXAMPLE6 – список отделов предприятия, включающую информационные аспекты: код отдела и название отдела.

Написать SQL-запрос, позволяющий получить на основе содержащейся в этой БД информации таблицу EXAMPLE7 со списком работающих на предприятии сотрудников, включающую следующие аспекты: фамилия И.О., название отдела, должность, размер оклада. Список сотрудников должен быть упорядочен по отделам.

По информации из той же БД подготовить таблицу EXAMPLE8 со сведениями о выплатах сотрудникам денежных средств в марте 2004 г., включающую следующие информационные аспекты: дата выплаты, фамилия И.О. сотрудника, название отдела, размеры выплат в счет оклада и в виде надбавки.

Контрольные вопросы.

  • Какие способы могут применяться для поиска интересующей пользователя информации в БД? Чем различаются команды поиска LOCATE и SEEK?

  • Можно ли осуществлять поиск информации в упорядоченной таблице с помощью команды LOCATE?

  • Можно ли осуществлять поиск информации в неупорядоченной таблице с помощью команды SEEK?

  • Как из имеющейся БД получить подборку информации с аспектами, интересующими пользователя?

  • Если в БД не установлены связи между таблицами, можно ли использовать SQL-запрос для получения информации, включающей аспекты из разных таблиц?

  • Можно ли применять SQL-запросы к отдельным таблицам или только к тем, которые входят в состав БД? Требуется ли при этом обязательно упорядочить таблицы по какому-то столбцу?

  • Какие способы могут применяться для создания таблицы с требуемой структурой? Как можно изменить структуру уже имеющейся таблицы? Что происходит с информацией, содержащейся в таблице, при изменении ее структуры?

  • Какие способы могут применяться для наполнения информацией ранее созданной таблицы? Как исправить выявленные ошибки в информации, занесенной в таблицу?

  • Должна ли быть предварительно открыта таблица, в которой мы собираемся изменить содержащуюся информацию?

  • Какое указание надо вставить в SQL-запрос для выборки информации из БД, чтобы в результирующей таблице не было повторяющихся записей?

  • Какое указание надо вставить в SQL-запрос для выборки информации из БД, чтобы в результирующей таблице данные были упорядочены по одному из столбцов?

  • Чем различаются таблицы, создаваемые с помощью SQL-операторов CREATE TABLE … и CREATE CURSOR… ? В каких ситуациях надо применять ту или другую из этих команд?

  • Написать SQL-оператор, позволяющий в таблице KLIENTY в записи, относящейся к фирме «ЦОЗ» изменить название города-местоположения на «Кукуев».

  • Написать SQL-оператор, позволяющий получить список разных товаров, поставленных в фирму с кодом 190. Определить, сколько всего поставок товаров сделано в эту фирму.

Соседние файлы в папке TEMA4
  • #
    31.03.20156.14 Кб9kom_firm.DCX
  • #
    31.03.2015798.21 Кб9postavki.CDX
  • #
    31.03.20153.9 Mб9postavki.DBF
  • #
    31.03.20154.1 Кб9tovary.CDX
  • #
    31.03.201540.05 Кб9tovary.DBF
  • #
    31.03.201543.52 Кб10VFP_T4.doc