<
  • Главная
Статьи

Побудова вираження запиту-Довідка

  1. Просте SQL вираз
  2. синтаксис SQL
  3. Пошук рядків
  4. Ключове слово NULL
  5. Пошук цифрових значень
  6. обчислення
  7. Пріоритет вираження в дужках
  8. комбіновані вираження
  9. підзапити
  10. Запити до дат

Вирази запиту застосовується в ArcGIS для вибору поднабора просторових об'єктів і записів в таблиці. Вирази запиту ArcGIS дотримуються стандарту виразів SQL. Наприклад, цей синтаксис застосовується при використанні інструменту Вибрати по атрибуту (Select By Attributes) або в діалоговому вікні Конструктор запитів (Query Builder), щоб задати визначає запит шару (layer definition query) .

У даній статті описується, як побудувати основне вираз умови WHERE, вона корисна для тих, хто тільки почав працювати з SQL. Більш детальну інформацію див. В розділі Основи SQL для виразів запиту, що застосовуються в ArcGIS .

Просте SQL вираз

SELECT * FROM становить першу частину виразу SQL і виводиться автоматично.

Вираз запиту використовує загальну форму такого вигляду: Select * From <шар або набір даних> Where умова (наприклад частина виразу SQL, яке йде після SELECT * FROM <Імя_слоя> WHERE).

Це загальна форма для вираження запиту ArcGIS:

<Ім'я_поля> <Оператор> <Значення або рядок>

Для складних виразів використовується наступна форма:

<Ім'я_поля> <Оператор> <Значення або рядок> <З'єднувач> <ім'я_поля> <Оператор> <Значення або рядок> ...

Додатково можна використовувати круглі дужки () для визначення порядку операцій в складному запиті.

Так як ви вибираєте стовпці в цілому, ви не можете обмежити SELECT вибором тільки деяких з стовпців у відповідній таблиці, тому що синтаксис SELECT * має жорстку систему кодування. З цієї причини ключові слова, такі як DISTINCT, ORDER BY і GROUP BY, не можна використовувати в запиті SQL в ArcGIS, за винятком використання підзапитів. Інформацію про підзапитах см. В розділі Основи SQL для виразів запиту, що застосовуються в ArcGIS .

У більшості діалогових вікон ArcGIS, де будується вираз запиту, ім'я шару або таблиці виводиться автоматично (або вибирається з спадаючого списку). наприклад:

наприклад:

Наступна частина виразу - умова WHERE, яку ви повинні побудувати самі. Основна умова SQL WHERE виглядає подібно наступного:

STATE_NAME = 'Alabama'

При цьому виберуться просторові об'єкти, що містять "Alabama" в поле, що називається STATE_NAME.

синтаксис SQL

Використовуваний синтаксис SQL різниться в залежності від джерела даних. Кожна СУБД має свій власний SQL діалект.

Для запиту даних на основі файлів, включаючи файлові бази геоданих, покриття, шейп-файли, таблиці INFO, таблиці dBASE, дані САПР і VPF, використовується ArcGIS SQL діалект, що підтримує поднабор функціональних можливостей SQL. Для запитів до персональних баз геоданих використовується синтаксис Microsoft Access. Для запитів до бази геоданих ArcSDE використовується синтаксис SQL, що лежить в основі СУБД (таких як Oracle, SQL Server, DB2, Informix або PostgreSQL).

Діалогові вікна ArcGIS, в яких створюються умови SQL WHERE, допоможуть вам застосувати коректний синтаксис для баз даних, які ви запитуєте. Вони перераховують відповідні імена полів і значення з відповідними роздільниками. Вони також вибирають для вас відповідні ключові слова і оператори SQL.

Пошук рядків

Рядки завжди повинні бути укладені в одиночні лапки. наприклад:

STATE_NAME = 'California'

Рядки в виразах чутливі до регістру, за винятком випадків, коли запитується клас просторових об'єктів або таблиця в персональній базі геоданих. Щоб виконувати чутливий до регістру пошук в інших форматах даних, можна використовувати функцію SQL для перетворення всіх значень в однаковий регістр. Для джерел даних на основі файлів, таких як файлова база геоданих або шейп-файл, використовується або UPPER, або LOWER функції.

Наприклад, за допомогою наступного виразу будуть обрані користувачі, чиє прізвище зберігається як Jones або JONES:

UPPER (LAST_NAME) = 'JONES'

Для інших джерел даних використовуються подібні функції. Для персональної бази геоданих, наприклад використовуються функції UCASE і LCASE, що представляють ту ж операцію.

За допомогою оператора LIKE (замість оператора =) будується пошук частин рядків. Наприклад, цей вислів вибирає Mississippi і Missouri серед назв штатів:

STATE_NAME LIKE 'Miss%'

% Означає, що на цьому місці може бути що завгодно - один символ або сотня, або жодного. Додатково, якщо ви хочете виконати пошук з груповим символом, що представляє 1 символ, використовуйте _.

Наприклад, цей вислів знайде Catherine Smith і Katherine Smith:

OWNER_NAME LIKE '_atherine smith'

Вищезазначені групові символи можуть застосовуватися лише до файловим даними і баз геоданих ArcSDE. У випадку з персональними базами геоданих, використовуються групові символи * для заміни одного або кількох символів і? для заміни одного символу.

Групові символи відображаються як кнопки в діалогових вікнах Вибрати по атрибуту (Select by Attributes) і Конструктор запитів (Query Builder). Можна клацнути на такий кнопці, щоб ввести груповий символ в будівництво вираз. При цьому відображаються тільки ті групові символи, які можна використовувати стосовно запитуваною джерел даних.

Якщо ви використовуєте знак групового символу в рядку разом з оператором =, знак сприймається як частина рядка, а не як груповий символ.

Можна також використовувати оператори більше (>), менше (<), більше або дорівнює (> =), менше або дорівнює (<=) і BETWEEN, щоб вибирати строкові значення на підставі їх сортування. Наприклад, цей запит вибере все міста в покритті, назви яких починаються з літер від М до Z:

CITY_NAME> = 'M'

Оператор не дорівнює (<>) також може використовуватися в запитах до рядків.

Якщо рядок містить одинарні лапки, вам в першу чергу потрібно використовувати іншу одинарні лапки як символ екранування. наприклад:

NAME = 'Alfie''s Trough '

Більш докладно про групових символах

Ключове слово NULL

Ви можете використовувати ключове слово NULL, щоб відбирати об'єкти і записи, що містять порожні поля. Перед ключовим словом NULL завжди варто IS або IS NOT.

Наприклад, щоб знайти міста, для яких не була введена чисельність населення за даними перепису 1996 року, можна використовувати такий вираз

POPULATION96 IS NULL

Або можна знайти все міста, для яких вказана чисельність населення

POPULATION96 IS NOT NULL

Пошук цифрових значень

Можна запитувати цифрові значення, використовуючи оператори рівності (=), не дорівнює (<>), більше (>), менше (<), більше або дорівнює (> =), менше або дорівнює (<=) і BETWEEN (між).

наприклад:

POPULATION96> = 5000

Цифрові значення завжди відображаються з точкою після десяткових розрядів, незалежно від ваших регіональних налаштувань. У виразах як роздільник десяткових знаків не можна використовувати кому.

обчислення

Обчислення можна включити в запити за допомогою математичних операторів +, -, * і /.

Можна використовувати обчислення між полем і числом.

наприклад:

AREA> = PERIMETER * 100

Обчислення також можуть проводитися між полями.

Наприклад щоб знайти райони з щільністю населення меншим або рівним 25 осіб на 1 квадратну милю, можна використовувати ось такий запит:

POP1990 / AREA <= 25

Пріоритет вираження в дужках

Вирази виконуються в послідовності, яка визначається стандартними правилами. Наприклад, укладена в круглі дужки частина виразу виконується раніше, ніж частина виразу за дужками.

приклад

HOUSEHOLDS> MALES * POP90_SQMI + AREA

виконується в порядку, відмінному від

HOUSEHOLDS> MALES * (POP90_SQMI + AREA)

Можна клацанням мишки додати в вираз круглі дужки, а потім ввести всередині вираз, або виділити існуюче вираз і клацнути на кнопку Круглі дужки (Parentheses), щоб укласти його в них. Можна клацанням мишки додати в вираз круглі дужки, а потім ввести всередині вираз, або виділити існуюче вираз і клацнути на кнопку Круглі дужки (Parentheses), щоб укласти його в них щоб укласти його в них.

комбіновані вираження

Складні запити можуть комбінуватися шляхом з'єднання виразів операторами AND (І) та OR (АБО).

Ось приклад запиту для вибірки всіх будинків із загальною площею більше 1500 квадратних футів і гаражем більш ніж на три машини:

AREA> 1500 AND GARAGE> 3

Коли ви використовуєте оператор OR (АБО), принаймні одне з двох розділених оператором виразів, має бути вірно для обраній записи.

наприклад:

RAINFALL <20 OR SLOPE> 35

Використовуйте оператор NOT (НЕ) на початку виразу, щоб знайти об'єкти або записи, що не відповідають умові вирази.

наприклад:

NOT STATE_NAME = 'Colorado'

Оператор NOT можна комбінувати з AND і OR.

Ось приклад запиту, що вибирає всі штати Нової Англії за винятком штату Maine:

SUB_REGION = 'New England' AND NOT STATE_NAME = 'Maine'

підзапити

Підзапит - це запит, вкладений в інший запит і підтримуваний тільки в базах геоданих. Підзапити можуть використовуватися в SQL-виразі для застосування предикативних або агрегуються функцій, або для порівняння даних зі значеннями, що зберігаються в іншій таблиці і т.п. Наприклад цей запит вибере тільки ті країни, які не мають в таблиці indep_countries:

COUNTRY_NAME NOT IN (SELECT COUNTRY_NAME FROM indep_countries)

Більш детально див. Основи SQL для виразів запиту, що застосовуються в ArcGIS .

Запити до дат

Діалогові вікна ArcGIS, в яких ви створюєте SQL умови WHERE допоможуть вам використовувати правильний синтаксис дат для запитуваних баз даних. Як правило, досить клацнути один раз на поле, один раз на операторі і потім на значенні, щоб згенерувати запит з правильним синтаксисом.

Відгук з цього розділу?

У випадку з персональними базами геоданих, використовуються групові символи * для заміни одного або кількох символів і?
Відгук з цього розділу?


Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью