SQL или Structured Query Language (язык структурированных запросов) – язык программирования, предназначенный для управления данными в системах управления реляционными базами данных.
Рассмотрим ключевые моменты обращения к данным карт из SQL-запросов:
Карта делиться на отдельные слои. В запросах SQL запрашиваются данные из одного или нескольких слоев карты.
У каждого пространственного объекта слоя есть уникальный для этого слоя идентификатор
Sys
.
Все поля данных БД слоя привязываются к пространственным объектам слоя по номерам
Sys
, причем названия таблиц БД слоя в запросах не
учитываются.
В системе ZuluGIS в результате выполнения запроса SQL может выводиться таблица с выборкой данных из слоев текущей карты и результатами вычисления выражений.
В данном руководстве приняты следующие соглашения по отображению элементов SQL:
SELECT – ключевые слова языка.
Название поля
– названия полей баз данных слоев и названия слоев
карт ZuluGIS.
Пример кода
– примеры запросов SQL в тексте.
<Описание элементов>
– подстановочные поля, используемые в
данном документе для удобства описания и к синтаксису SQL не относящиеся. На месте
подстановочного поля в SQL запросе подставляются элементы описанные отдельно, либо
описанные в самом подстановочном поле.
[Элементы в квадратных скобках] – необязательные элементы выражения.
A|B – вертикальной чертой отделяются возможные варианты ключевых слов или значений.
При составлении выражений SQL следует руководствоваться следующими правилами написания отдельных его элементов:
Регистр символов ключевых слов SQL, названий полей и слоев не учитываются. Ключевое
слово введенное прописными буквами, строчными и в смешанном регистре воспринимаются как
одно ключевое слово. Например, ключевое слово SELECT может быть
записано как Select, или select, а поле
perimeter
может быть записано так же, как и
Perimeter
, либо PERIMETER
.
Тем не менее, для удобства восприятия, в данном документе ключевые слова языка SQL будут записываться прописными буквами.
Длинная команда, состоящая из нескольких ключевых слов, может разбиваться на несколько строк.
Команды запроса разделяются знаком «;» После последней команды знак «;»ставить необязательно.
Названия полей и слоев в запросах, содержащие пробелы, должны заключаться в квадратные
скобки, например название поля Номер источника
должно быть записано как
[Номер источника]
.
Все строковые значения в запросах заключаются в одинарные или двойные кавычки. Если требуется использовать данные символы в самой строке, следует их дублировать, либо использовать кавычки отличающиеся от тех, что окружают данную строку (например, допускается использовать одинарные кавычки в строке окруженной двойными кавычками и двойные кавычки в строке окруженной одинарными кавычками).
Примеры задания строковых значений:
«Текстовая строка» – строковое значение в двойных кавычках;
'Текстовая строка' – строковое значение в одинарных кавычках;
«Строка с текстом в кавычках - ""
дублированных ""
и 'нет'»– Использование кавычек в текстовой строке.
При необходимости задания в запросе поля данных с указанием слоя, которому он
принадлежит, название поля задается в формате: <Название
слоя>
.<Название поля>
. Например, для задания поля
Номер источника
слоя Пример тепловой сети
в
запросе следует ввести строку [Пример тепловой сети].[Номер
источника]
.
В строках запроса значения могут не только вводиться непосредственно и получаться из полей БД, но вычисляться с помощью строковых и численных выражений. Такие выражения могут включать в себя различные константы, названия полей данных, функции и подзапросы, объединенные арифметическими или побитовыми операторами и скобками («Работа с пространственными данными в запросах»);
В текст запроса могут добавляться комментарии, не влияющие на ход выполнения запроса. Комментарии могут использоваться для пояснения деталей запроса, либо для временного исключения отдельных команд из запроса.
Предусмотрены два вида комментариев:
Комментарий строки. Такой комментарий начинается с сочетания символов «--», комментарием считаются все символы до конца строки после знаков начала комментария;
Комментарий фрагмента. Такие комментарии начинаются сочетанием символов «/*», а заканчивается сочетанием «*/». Все символы между начальными и конечными символами считаются комментарием. Такие комментарии могут занимать несколько строк, либо часть строки, но не могут разрывать собой ключевые слова, названия функций.