Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Nieizv - MOI Liektsii po GIZIS_3794.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
483 Кб
Скачать
☆

2. Запросы

Выбор с помощью запросов

Команда ВЫБРАТЬ позволяет создать выборку (подмножество записей) на основании информации из некоторой таблицы MapInfo. Например:

Какие клиенты сделали покупки на 2000000 рублей и более?

Кто из моих клиентов живет в Раменском районе?

Команда SQL-ЗАПРОС позволяет решать следующие задачи в MapInfo:

Создать вычисляемые колонки - колонки, значения в которых вычисляются на основании значений в уже существующих колонках;

Обобщить данные;

Скомбинировать две или более таблицы в одну новую таблицу;

Показывать только интересующие колонки и строки

Пример. Выбор больниц Центрального округа, расположенных рядом с метро

Select bolnicy.name, bolnicy.addres, bolnicy.tel, UNDEGR.R_NAME, distance(CentroidX(bolnicy.obj), CentroidY(bolnicy.obj), CentroidX(undegr.obj), CentroidY(undegr.obj),"m") From  bolnicy, undegr, bolnicy,distr Where BOLNICY.Obj Within DISTR.Obj AND UNDEGR.Obj Within DISTR.Obj and distr.r_name="Центральный" and distance(CentroidX(bolnicy.obj), CentroidY(bolnicy.obj), CentroidX(undegr.obj), CentroidY(undegr.obj),"m")<200

Команда Выбрать

Команда ВЫБРАТЬ позволяет формулировать запросы к таблице. С ее помощью можно выбирать записи и сопоставленные им графические объекты по значениям их атрибутов. Таким образом, можно выделять в окне Карты или Списка объекты, удовлетворяющие некоторому критерию.

Результаты запросов можно сохранять в виде таблиц, просматривать в окнах Списков, Карт и Графиков.

В команде ВЫБРАТЬ можно формулировать такие запросы как:

Покажите все районы, где средний доход жителей превышает 6 000 000 рублей.

Покажите все районы, где средний возраст населения составляет 42 года.

Покажите все районы, где средний доход жителей превышает 6 000 000 рублей, а средний возраст населения составляет 42 года.

Покажите все записи о заказах, сделанных в июле и сентябре.

Покажите все города в Ярославской, Владимирской и Костромской областях, население которых превышает 100 000 жителей.

При работе с окном Списка MapInfo выделяет записи (строки Списка), удовлетворяющие заданному в запросе критерию. При работе с окном Карты выделяются соответствующие этим записям графические объекты. Если же Вы работаете с окнами обоих типов, то выделяются и записи, и графические объекты. Во всех случаях MapInfo автоматически создает рабочую таблицу с названием "Selection" (или "Выборка"), которая содержит результаты обработки запроса. Эту таблицу можно просматривать в окне Списка, Карты или Графика как любую другую таблицу.

Кроме того, ее можно сохранить под другим именем командой СОЗДАТЬ КОПИЮ.

Создание выражений

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

Например, имеется таблица о сдаваемом внаем жилье. Если Вы хотите создать временную таблицу жилья, стоимость аренды которого ниже $800 в месяц, следует задать выражение: РЕНТА < 800 (где РЕНТА - это название колонки, содержащей данные о ежемесячной арендной плате.)

Можно производить арифметические операции над данными.

Пусть надо создать временную таблицу жилья, общая стоимость которого меньше $800. Общая стоимость образуется из арендной платы и ежемесячных коммунальных платежей. Задайте выражение: РЕНТА + ПЛАТЕЖИ < 800

Имеется два способа создания выражений.

1. можно ввести выражение напрямую.

2. можно нажать кнопку "Составить" в диалоге "Выбрать" и построить выражение с помощью окошек в диалоге "Выражение". Такой способ обычно используется при построении сложных выражений.

Диалог "Выражение" содержит три окошка списка, с помощью которых можно составить выражение: "Колонки", "Операторы" и "Функции".

"Колонки"

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

"Операторы"

В этом окошке содержится перечень математических и логических операторов. Среди операторов - сложение, вычитание, умножение, деление, знаки больше, меньше и равно. С помощью этих символов можно создавать математические формулы. В списке "Операторы" содержатся также логические операции, например, AND, NOT, OR и LIKE.

"Функции"

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

Окошко "Функции" содержит много других функций, в том числе функции площади, периметра, синуса, косинуса и дат.

Этапы выполнения команды Выбрать

В общих чертах процесс выбора объектов с помощью команды ВЫБРАТЬ выглядит так:

1. Выполните команду ВЫБРАТЬ из меню Запрос.

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

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

4. Выберите колонку, по которой следует сортировать результаты обработки запроса (это не обязательно). Стандартный режим - без сортировки.

5. Чтобы увидеть выбранные записи в окне Списка, установите флажок "Результат в Список".

6. MapInfo откроет окно Списка для созданной временной таблицы выборки.

MapInfo называет временные таблицы выборок "Запрос1", "Запрос2" и так далее. При выборе записей с помощью команд ВЫБРАТЬ и SQL-ЗАПРОС можно задать свое название таблицы выборки вместо стандартного. Введите это название в окошко "поместить в таблицу".

Создание новой таблицы из подмножества файлов

Многие файлы, которые используются в MapInfo включают в себя больше объектов и информации, чем необходимо для решения конкретной задачи. Во многих случаях легче работать с частями файлов данных, чем с полными файлами. Например, если Вы обрабатываете криминальную статистику для некоторого района, используя данные переписи, то Вам не нужны данные по переписи для всего государства. Необходимо извлечь лишь данные по переписи для этого района.

Существуют два пути для создания новой таблицы, содержащей выборочные записи из изначальной таблицы. Можно интерактивно выбрать объекты, которые Вас интересуют с помощью инструментов выборки и поместить их в новую таблицу. Или можно использовать SQL-Запрос для выбора необходимых объектов, используя при этом функции SQL.