SAP HANA SQL: изучите базовые операторы за 10 минут

⚡ Умное резюме

SAP HANA SQL — это основной язык баз данных платформы. Он отвечает за определение схемы, манипулирование данными, контроль доступа и управление сессиями, следуя стандарту, обеспечивающему переносимость SQL между реляционными базами данных.

  • 🗣️ Основная роль: SQL — это основной язык для взаимодействия с SAP HANA, как и другие реляционные системы.
  • ???? ️ Работа со схемой: Команда CREATE SCHEMA создает пространство имен, которому принадлежат таблицы, представления и процедуры.
  • 📋 Операторы DML: Операторы SELECT, INSERT и UPDATE считывают и изменяют строки, хранящиеся в таблице.
  • 🧱 Операторы DDL: Функции CREATE, ALTER и DROP определяют и изменяют форму самих объектов.
  • 🔐 Заявления DCL: GRANT и REVOKE определяют, какой пользователь может выполнять ту или иную операцию.
  • 💬 Стили комментариев: Double Дефис обозначает комментарий в одну строку, а косая черта и звездочка заключают комментарий в несколько строк.
  • ⚙️ Администрация: Управление системой, сессиями и транзакциями осуществляется с помощью SQL-запросов.

SAP Хана SQL

Большинство баз данных РСУБД использует SQL Причина популярности языка баз данных в том, что он мощный, независимый от поставщика и стандартизированный. SAP HANA также поддерживает SQL.

In SAP HANA, SQL — основной язык баз данных.

Что такое SAP ХАНА SQL?

SQL означает язык структурированных запросов. Это стандартный язык для общения с реляционными базами данных, такими как Oracle, MySQL и т. д. SQL используется для хранения, извлечения и изменения данных в базе данных.

Используя SQL в SAP HANA, мы можем выполнить следующие работы:

  • Определение и использование схемы (CREATE SCHEMA).
  • Оператор DML (SELECT, UPDATE, INSERT).
  • Оператор DDL (CREATE, ALTER, DROP)
  • Заявление DCL (ПРЕДОСТАВЛЕНИЕ, ОТМЕНА)
  • Управление системой
  • Управление сеансом
  • Управление транзакциями

Операторы выполняются из SQL-консоли. SAP HANA Studioиз клиента командной строки или из приложения, подключающегося через JDBC или ODBC. Сам язык программирования в обоих случаях идентичен.

Категории SQL-запросов в SAP HANA

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

Категория Полное имя Типичные утверждения Цель
DDL Язык определения данных СОЗДАТЬ, ИЗМЕНИТЬ, УДАЛИТЬ, ПЕРЕИМЕНОВАТЬ Определяет и изменяет такие объекты, как схемы, таблицы и представления.
DML Язык манипулирования данными ВЫБОР, ВСТАВКА, ОБНОВЛЕНИЕ, УДАЛИТЬ, ДОПОЛНИТЕЛЬНАЯ ВСТАВКА Считывает и изменяет строки, содержащиеся внутри объектов.
DCL Язык управления данными ПРЕДОСТАВИТЬ, ОТМЕНИТЬ Определяет, какой пользователь или роль может выполнять какое действие.
TCL Язык управления транзакциями ПОДТВЕРЖДЕНИЕ, ОТКАТ, СОХРАНЕНИЕ ТОЧКИ Подтверждает или отклоняет единицу работы.
Сессия управление сессиями SET SCHEMA, CONNECT, SET TRANSACTION Настраивает текущее соединение.
Система Управление системой ИЗМЕНИТЬ СИСТЕМУ, мониторинг представлений Управляет самим экземпляром базы данных.

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

Комментарий в SQL

Мы можем добавить комментарий, чтобы улучшить читаемость и удобство обслуживания операторов SQL. Комментарий к SQL можно добавить двумя способами:

  • Однострочный комментарий – Double Дефис «–». Это комментарий в одну строку.
  • Многострочный комментарий – “/* */”.

Весь закомментированный текст игнорируется анализатором SQL.

-- This is a single line comment
SELECT ELEMENT FROM DHK_SCHEMA.TABLE1;

/* This is a multiple line comment.
   Everything between the markers is ignored
   by the SQL parser. */
SELECT COUNT(*) FROM DHK_SCHEMA.TABLE1;

Примеры базового синтаксиса SQL в SAP HANA

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

1) Создайте схему. Схема владеет объектами, созданными внутри неё, и является первым элементом, необходимым для нового проекта.

CREATE SCHEMA DHK_SCHEMA;
SET SCHEMA DHK_SCHEMA;

2) Создайте таблицу со столбцами. Столбцовое хранилище является хранилищем по умолчанию и объясняет высокую скорость анализа в HANA. Построчное хранилище выбирается только для небольших таблиц с высокой интенсивностью записи.

CREATE COLUMN TABLE DHK_SCHEMA.EMPLOYEE (
  EMP_ID    INTEGER NOT NULL,
  EMP_NAME  NVARCHAR(100),
  HIRE_DATE DATE,
  SALARY    DECIMAL(10,2),
  PRIMARY KEY (EMP_ID)
);

3) Вставить и обновить строки. Оператор INSERT добавляет строку, а UPDATE изменяет существующие. Оператор UPDATE всегда следует использовать в сочетании с условием WHERE, если только не требуется изменить все строки.

INSERT INTO DHK_SCHEMA.EMPLOYEE
  VALUES (1, 'Anita Sharma', '2026-01-15', 55000.00);

UPDATE DHK_SCHEMA.EMPLOYEE
  SET SALARY = 60000.00
  WHERE EMP_ID = 1;

4) Выполните запрос к данным. Оператор SELECT поддерживает привычные предложения WHERE, GROUP BY, HAVING и ORDER BY.

SELECT EMP_NAME, SALARY
  FROM DHK_SCHEMA.EMPLOYEE
  WHERE SALARY > 50000
  ORDER BY SALARY DESC;

5) Предоставьте доступ и подтвердите действие. DCL контролирует, кто может читать таблицу, а COMMIT делает изменения постоянными.

GRANT SELECT ON DHK_SCHEMA.EMPLOYEE TO REPORT_USER;
COMMIT;

Подробная информация об определении каждого столбца на уровне отдельных полей приведена в разделе... SAP Типы данных HANAа также символы, используемые в предложении WHERE в SAP операторы HANA.

SAP HANA SQL против стандартного SQL

SAP HANA строго следует стандарту SQL, поэтому опытный разработчик быстро достигает высокой производительности. Важные отличия — это дополнения, а не отклонения от него.

Район Стандартный SQL SAP Хана SQL
Хранение на столе По умолчанию используется ориентация по строкам. По умолчанию используется столбцовое хранение, построчное хранение является необязательным.
Вставить или обновить данные одним оператором Слияние (MERGE) там, где это поддерживается. UPSERT — более простой синтаксис для достижения того же результата.
Ограничение на количество результатов Диалектные особенности ЛИМИТОВОЕ значение со смещением, плюс ВЕРХНЯЯ ЧАСТЬ
Процедурное расширение Зависит от поставщика SQLScript с использованием табличных переменных и параллельным выполнением.
Полнотекстовый поиск Обычно это дополнительная опция. Встроено через столбцы TEXT и SHORTTEXT.
Чувствительность к регистру Зависит Идентификаторы без разделителей пишутся заглавными буквами, идентификаторы с разделителями сохраняют свой регистр.

Правило идентификатора вызывает больше всего неожиданностей. Написание имени таблицы строчными буквами без двойных кавычек приводит к его отображению в верхнем регистре, а последующий поиск внутри двойных кавычек в нижнем регистре не удаётся её найти. Правила изложены в [ссылка на правило]. типы данных и идентификаторы учебное пособие, а более широкая платформа рассматривается в разделе... SAP Учебное пособие по HANA серии.

Часто задаваемые вопросы (FAQ)

SQL обрабатывает отдельные операторы. SQLScript добавляет процедурную логику, такую ​​как переменные, циклы и табличные переменные, позволяя выполнять несколько шагов внутри базы данных, а не на уровне приложения.

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

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

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

Нет. Парсер отбрасывает их перед выполнением, поэтому комментарии ничего не стоят во время выполнения. Это самый дешевый способ сделать длинный аналитический вывод поддерживаемым.

Подведем итог этой публикации следующим образом: