ArcGIS for Desktop

  • Документация
  • Стоимость
  • Поддержка

  • My Profile
  • Справка
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS for Desktop

Полноценная профессиональная ГИС

ArcGIS for Server

ГИС предприятия

ArcGIS for Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Стоимость
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

Справка

  • Главная
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительно...

Создать таблицу запроса

  • Краткая информация
  • Использование
  • Синтаксис
  • Пример кода
  • Параметры среды
  • Информация о лицензировании

Краткая информация

Этот инструмент применяет SQL-запрос (query) к базе данных и представляет результаты в виде слоя (layer) или в виде таблицы (table view). Можно использовать запрос для соединения таблиц или вывода поднабора столбцов и строк из исходных данных в базе данных.

Этот инструмент допускает данные из базы геоданных ArcSDE, файловой базы геоданных, персональной базы геоданных или подключения OLE DB.

Использование

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

  • Все входные классы объектов или таблицы должны быть из одной входной рабочей области (workspace).

  • Если в перечень полей добавляется столбец Shape, результатом будет слой; в противном случае, результатом будет представление таблицы.

  • Если результатом является слой, он может быть сохранен в файл слоя с помощью инструмента Сохранить в файл слоя (Save To Layer File) или в класс пространственных объектов с помощью инструмента Копировать объекты (Copy Features).

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

  • Инструмент позволяет обеспечить опции и список ключевого поля. Эта информация определяет, как определяются строки, и используется для добавления динамически генерируемый столбец ObjectID в данные. Без столбца ObjectID, выборки не будут поддерживаться.

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

  • Если используется SQL-выражение, но не выдает соответствующих записей, выходной класс объектов будет пустым.

  • Классы пространственных объектов будут соединены, но список полей должен содержать не более одного поля типа геометрии. Если вы добавляете несколько столбцов геометрии, инструмент покажет сообщение об ошибке при нажатии OK и выполнение приостановится.

  • Более подробно о синтаксисе параметра Выражение (Expression) см. раздел Построение выражения SQL или Основы SQL.

  • В параметрах Поля (Fields) и Ключевые поля (Key Fields) кнопка Добавить поле (Add Field) используется только в ModelBuilder. В ModelBuilder, если предыдущий инструмент не был запущен или его производные данные не существуют, параметры Поля (Fields) и Ключевые поля (Key Fields) могут не быть заполнены именами полей. Кнопка Добавить поле (Add Field) позволяет добавлять нужные поля, так что вы можете завершить диалог Создать таблицу запроса (Make Query Table) и продолжить построение модели.

  • Если входные таблицы из файловой базы геоданных, соединение таблиц в целом происходит в последовательности, перечисленной в параметре Входные таблицы. Например, если Таблица1 находится в списке до Таблицы2, Таблица2 будет присоединена путем получения строки из Таблицы1, затем получения соответствующих строк из Таблицы2. Однако, если это приведет к построению запроса Таблицы2 на непроиндексированном поле, а возвращение порядка приведет к построению запроса Таблицы1 на проиндексированном поле, порядок будет изменен с целью повышения производительности. Это единственная логика оптимизации запроса при использовании данных файловой базы геоданных с этим инструментом. В общем, соединения в файловой базе геоданных наиболее эффективны, когда они один-к-многим и один-к-одному.

Синтаксис

MakeQueryTable_management (in_table, out_table, in_key_field_option, {in_key_field}, {in_field}, {where_clause})
ПараметрОбъяснениеТип данных
in_table
[in_table,...]

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

Входная таблица может быть из базы геоданных ArcSDE, файловой базы геоданных, персональной базы геоданных или подключения OLE DB.

Table View; Raster Layer
out_table

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

Table View;Raster Layer
in_key_field_option

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

  • USE_KEY_FIELDS —Указывает на то, что поля, выбранные в списке ключевых полей, должны использоваться для определения динамического поля ObjectID. Если в списке ключевых полей нет выбранных полей, будет автоматически применена опция ADD VIRTUAL_KEY_FIELD.
  • ADD_VIRTUAL_KEY_FIELD —Эта опция указывает на то, что не было выбрано ни одного ключевого поля, и будет создано динамическое поле ObjectID. Это делается путем копирования данных в локальную, системно-управляемую рабочую область и добавления поля с уникальными значениями в копию. В дальнейшем, результирующий слой или таблица обращаются к копии данных и используют добавленное поле в качестве ключевого.
  • NO_KEY_FIELD —Эта опция указывает на то, что динамическое поле ObjectID не будет создано. Выбор этой опции означает, что для таблицы будет недоступно создание выборки. Обратите внимание, что если уже существует поле типа ObjectID в списке полей, оно будет использоваться как ObjectID, даже если эта опция выбрана.
String
in_key_field
[in_key_field,...]
(дополнительно)

Задает поле или комбинацию полей, которые могут быть использованы для идентификации строки в запросе. Этот параметр используется только при выбранной опции USE_KEY_FIELDS.

Кнопка Добавить поле, которая используется только в ModelBuilder, позволяет добавлять нужные поля, так что вы можете завершить диалог и продолжить построение модели.

Field
in_field
[[Field, {Alias}],...,...]
(дополнительно)

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

Value Table
where_clause
(дополнительно)

SQL-выражение, использованное для выбора поднабора записей. Подробнее о синтаксисе SQL см. в разделе Справка SQL по выражениям запросов, используемым в ArcGIS.

SQL Expression

Пример кода

Создать таблицу запроса. Пример (окно Python)

Пример скрипта Python для выполнения функции Создать таблицу запроса (Make Query Table) с запуском из окна Python в ArcGIS.

import arcpy
arcpy.env.workspace = "C:/data/data.gdb"
arcpy.MakeQueryTable_management (["Counties","codemog"], "queryout","ADD_VIRTUAL_KEY_FIELD", "",
                   [["Counties.OBJECTID", 'ObjectID'],["Counties.NAME", 'Name'],
                    ["codemog.Males", 'Males'], ["codemog.Females", 'Females']],
                   "Counties.FIPS = codemog.Fips and Counties.STATE_NAME = 'California'")
Создать таблицу запроса. Пример 2 (автономный скрипт)

Следующий скрипт является примером использования инструмента Создать таблицу запроса (Make Query Table) в автономном режиме Python.

# MakeQueryTableOLEDB.py
# Description: Create a query table from two OLE DB tables using a limited set of
#               fields and establishing an equal join.
 
# Import system modules
import arcpy
 
try:
    # Local variables...
    tableList = ["Database Connections/balrog.odc/vtest.COUNTIES",\
                 "Database Connections/balrog.odc/vtest.CODEMOG"]
    
    fieldList = [["vtest.COUNTIES.OBJECTID", 'ObjectID'],["vtest.COUNTIES.NAME", 'Name']\
                 ["vtest.CODEMOG.Males", 'Males'],["vtest.CODEMOG.Females", 'Females']]
    whereClause = "vtest.COUNTIES.FIPS = vtest.CODEMOG.Fips" +\
                  "and vtest.COUNTIES.STATE_NAME = 'California'"
    keyField = "vtest.COUNTIES.OBJECTID"
    lyrName = "CountyCombined"
    # Make Query Table...
    arcpy.MakeQueryTable_management(tableList, lyrName,"USE_KEY_FIELDS", keyField, fieldList, whereClause)
 
    # Print the total rows
    print(arcpy.GetCount_management(lyrName))
 
    # Print the fields
    Fields = arcpy.ListFields(lyrName)
    for field in Fields:
        print(Field.name)
        
 
    # Save as a dBASE file
    arcpy.CopyRows_management(lyrName, "C:/temp/calinfo.dbf")
 
except Exception as err:
    print(err.args[0])

Параметры среды

  • Текущая рабочая область (Current Workspace)

Связанные темы

  • Обзор группы инструментов Слои и представления таблицы (Layers and Table Views)
  • Использование слоев и представлений таблиц
  • Работа со слоями и представлениями таблиц
  • Примеры запросов с помощью инструмента Создать таблицу запроса
Отзыв по этому разделу?

ArcGIS for Desktop

  • На главную
  • Документация
  • Стоимость
  • Поддержка

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог сотрудников
  • Конференция пользователей
  • Саммит разработчиков
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | Конфиденциальность | Правовая информация