Создание SQL запросов
В том случае, если встроенного языка запросов ZuluGIS недостаточно, запросы могут выполняться с использованием OGC расширения языка SQL.
В программе используется диалект языка SQL основанный на диалекте Transact-SQL, разработанном компаниями Microsoft и Sybase (см. http://msdn.microsoft.com/en-us/library/bb510741(SQL.100).aspx и http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.sqlug/html/sqlug/title.htm). Используемый диалект дополнен в соответствии с OGC расширением языка SQL, информация о котором приводится по адресам http://www.opengeospatial.org/standards/sfa (общая архитектура) и http://www.opengeospatial.org/standards/sfs (SQL расширение).
IntelliSense — технология автодополнения, дописывает название функции при вводе начальных букв. Кроме прямого назначения IntelliSense используется для доступа к документации и для устранения неоднозначности в именах переменных, функций и методов. Подсветка синтаксиса — выделение синтаксических конструкций текста с использованием различных цветов, шрифтов и начертаний. Обычно применяется для облегчения чтения исходного текста компьютерных программ, улучшения визуального восприятия.
Рисунок 710. Написание SQL запроса с IntelliSense
Видеоуроки с примерами выполнения SQL запросов можно посмотреть в разделе: https://www.politerm.com/videos/geosql/.

Для вызова диалога формирования SQL запросов выполните команду меню Карта|Запрос|SQL запрос, либо нажмите кнопку панели инструментов.

Рисунок 711. Диалог SQL запроса
В области ввода задается текст SQL запроса. В правой части диалога расположен навигатор по полям карты (Источник:), позволяющий быстро добавить запрос данных из какого либо поля карты. Для добавления запроса данных поля, выберите в списке требуемый слой, БД и выполните двойной щелчок по названию поля, запрос будет добавлен в область ввода.
Для быстрого поиска нужных полей в списке Источник, введите начало названия требуемого поля в поисковой строке над списком, в списке будут отображаться только поля, начинающиеся с введенных символов.
Для отображения реальных названий полей базы данных в области полей сделайте щелчок правой кнопкой мыши и в контекстном меню выберите Реальные имена полей . Для возврата к пользовательским названиям надо снять опцию Реальные имена полей .
После задания текста запроса нажмите кнопку Выполнить панели инструментов, в области Ответ в нижней части диалога отобразится панель данных с результатами запроса. Панель можно открепить от диалога запроса для дальнейшей работы с результатами, для этого наведите указатель мыши на заголовок панели, нажмите левую кнопку мыши, не отпуская ее, переместите мышь в произвольную часть окна программы ZuluGIS, после чего отпустите кнопку мыши. Подробнее о панели данных см. «Панель данных».
В диалоге SQL запросов предусмотрено сохранение текущего запроса в файл, открытие запроса из файла и создание нового запроса:
- Для открытия запроса из файла (в формате .sql) выполните команду меню Файл|Открыть , или нажмите кнопку панели инструментов –
и выберите требуемый файл в стандартном диалоге выбора файлов; - Для сохранения текущего запроса в файле (формата .sql) выполните команду меню Файл|Сохранить , или нажмите кнопку панели инструментов –
и задайте требуемое название файла в стандартном диалоге сохранения файлов; - Для создания нового запроса выполните команду меню Файл|Новый запрос , либо нажмите кнопку панели инструментов
.
Как сделать sql запрос к базе данных
Чтобы выполнить SQL-запрос к базе данных, можно пойти вот таким путем:
- Открыть соединение с базой данных с помощью специального программного обеспечения или драйвера для языка программирования
- Создать SQL-запрос с использованием соответствующего синтаксиса, учитывая структуру таблиц и данные, которые вы хотите получить
- Выполнить запрос, отправив его в базу данных через открытое соединение
- Обработать результаты запроса, которые обычно представляются в виде таблицы
Например, в языке Python для выполнения SQL-запросов к базе данных можно использовать модуль sqlite3 . Вот пример кода для создания соединения с базой данных, выполнения запроса и получения результатов:
Важно учитывать, что для выполнения запроса к базе данных необходимо иметь права на выполнение соответствующих действий в базе данных. Кроме того, при написании SQL-запроса важно учитывать особенности синтаксиса используемой СУБД.
SQL запрос для создания таблицы базы данных — оператор CREATE TABLE
Продолжим изучение SQL запросов к базе данных. Сегодня, один из простых SQL запросов, SQL запрос для создания таблицы базы данных. Работает запрос на основе оператора CREATE TABLE.
Создание таблицы базы данных
Есть оператор sql, который используется для создания таблиц баз данных. Оператор: CREATE TABLE.
Вспоминаем, что реляционная таблица базы данных должна иметь уникальные:
- Уникальное имя;
- Столбцы (атрибуты);
- Первичный ключ.
- Строки (записи);
Для начала, мы создаем, только таблицу и не заполняем её данными.
Статьи по теме: Классификация баз данных
По-хорошему, общий вид таблицы с уникальными именами строк и столбцов задается при создании концептуальной модели БД. Мы для примера создадим простенькую таблицу БД и обойдемся без концептуальной модели.
В этой статье создадим таблицу БД с покупателями. Покупатели взяты для примера.
Чем идентифицируется покупатель? Решаем, что каждый покупатель идентифицируется следующими данными:
Помним, что в таблице обязательно нужно задать первичный ключ.
Чтобы создать таблицу базы данных, используем оператор sql CREATE TABLE.
Синтаксис оператора такой:
CREATE TABLE имя таблицы (столбец 1, тип столбца (пробел) параметр столбца (пробел), столбец 2, тип столбца (пробел) параметр столбца (пробел), столбец 3, тип столбца (пробел) параметр столбца (пробел), и т.д.)
В нашем варианте, имя таблицы: clients. Даем данным покупателей обозначения столбцов:
- Имя: пусть будет client_customer;
- Фамилия: client_subclient;
- Логин: client_login;
- Пароль: client_password;
- eMail: client_mail;
- Телефон: client_telefon.
Думаем, какой тип данных будет храниться в этих столбцах, и выбираем типы данных CHAR(длина поля постоянно) или VARCHAR(длинна поля переменное). В нашем случае подходит тип данных VARCHAR.
Особое внимание уделяем первичному ключу. Делаем первичным ключом id покупателя. В параметрах ключа задаем, что это первичный ключ, он не может быть нулём и что для следующей записи увеличивается на единицу. Последнее свойство называется автоинкремент. Смотрим подсказку в справочнике (ссылка выше) и получаем столбец с первичным ключом:
client_id integer not null auto_increment primary key
Пишем SQL запрос для создания таблицы базы данных
Суммируем все исходные данные и получаем такой SQL запрос:
/*Таблица пользователей clients*/ create table clients ( /*client_id будет первичный ключ (обязательно целое число) с автоинкрементом (+1), который никогда не будет равен нулю*/ client_id integer not null auto_increment primary key, client_customer varchar(13), /*имя */ client_surclient varchar(22), /*фамилия */ client_login varchar(21), /*логин*/ client_passwd varchar(7), /*пароль*/ client_email varchar(44) /*email*/ client_telefon varchar(26) /*телефон*/ );
Примечание: SQL запрос для создания таблицы создаем в текстовом редакторе типа Notepad++. В скобках ограничиваем длину поля, может быть от 1 до 255.
Виды и типы SQL-запросов
SQL-запросы — это наборы команд для работы с реляционными (табличными) базами данных. Подробнее о структуре, видах и типах SQL-запросов будет рассказано в этой статье.

Виды и типы SQL-запросов
По видам запросы SQL чаще всего делятся на:
- запросы, предназначенные для работы со структурой данных — для создания, описания и модификации БД;
- запросы, используемые непосредственно в работе с данными, с помощью которых можно добавлять, обновлять, сохранять и удалять данные;
- запросы, применяемые для предоставления или отмены прав доступа к БД;
В свою очередь, каждый из видов SQL-запросов подразделяется на типы:
- команды, работающие со структурой БД. К ним относятся CREATE — «создать» (например, CREATE TABLE (создать таблицу), CREATE USER (создать пользователя)), ALTER — «модифицировать» (этот запрос используется при внесении изменений в саму БД или в ее часть), DROP — «удалить» (также относятся к БД и ее частям);
- команды, работающие с данными. К наиболее востребованным запросам относятся: SELECT (выборка данных), INSERT (вставка новых данных), UPDATE (обновление данных), DELETE (удаление данных), MERGE (слияние данных);
- команды, работающие с правами доступа. В их список входят GRANT — разрешение пользователю на проведение определенных операций с БД или данными; REVOKE – отзыв выданного разрешения; DENY – установка запрета, имеющего приоритет над разрешением.
Структура SQL-запросов
При составлении SQL-запроса для работы с базами данных в СУБД (MySQL, Microsoft SQL Server, PostgreSQL) вводятся следующие параметры отбора:
- названия таблиц, из которых необходимо извлечь данные;
- поля, значения которых требуется вернуть к исходным после внесения изменений в БД;
- связи между таблицами;
- условия выборки;
- вспомогательные критерии отбора (ограничения, способы представления информации, тип сортировки).
Например, для составления выборки по клиентам, приносящим интернет-магазину наибольшую прибыль, для работы с БД фирмы строится запрос, имеющий вид:
select col1, col2, col3 (перечисление колонок, которые нужно отобразить) from table (имя таблицы) where (указание на последующий фильтр) clause (критерий отбора);
Благодаря простоте и гибкости систем SQL модифицировать запросы для решения конкретных задач можно очень быстро и удобно.
Центр развития компетенций в бизнес-информатике, логистике и управлении проектами Высшей школы бизнеса НИУ ВШЭ приглашает всех, кто хочет освоить навыки работы с SQL-запросами, пройти переподготовку по программе «Инструментальные средства бизнес-аналитики». Записаться на обучение по данной программе можно на нашем сайте.
