JSON повсюду, так почему бы и не в SQL Server? Новая функция в SQL Server 2016

Tags: SQL Server, SQL Server 2016, JSON

Новая функция в SQL Server 2016


Если вы разработчик, то наверняка вы могли бы использовать JSON (JavaScript Object Notation), но если нет, то не беспокойтесь, вы начнете использовать его рано или поздно. JSON - это своего рода экосистема, которая наиболее популярна в различных областях для обмена данными. Если вы говорите о графическом решении, AJAX, мобильных услугах или любой сторонней интеграции, то, как правило, JSON является первым выбором разработчиков.

Как вы возможно заметили, в настоящее время большинство баз данных NOSQL, таких как Microsoft Azure Document DB, MONGODB и т. д., также используют экосистему JSON, а некоторые из них основаны на JSON.

Потому что популярность этой системы растет с каждым днем. Итак, почему бы не использовать ее в SQL SERVER?

В SQL SERVER 2016 был представлен JSON. Это можно сказать, это шаг или мост между NON-реляционной базой данных и реляционной базой данных Microsoft SQL SERVER.

SQL Server 2016 предоставляет следующие возможности при использовании JSON:

  1. Разбор JSON по запросу отношения
  2. Вставка и обновление JSON с использованием запроса
  3. Хранение JSON в базе данных

 Концептуально, это похоже на тип данных XML, который вы можете использовать в SQL SERVER.
 Хорошим моментом для  JSON в SQL Server 2016 является то, что в нем нет собственного типа данных. Это поможет в миграции с любого NOSQL на SQL SERVER.

SQL Server обеспечивает двунаправленное форматирование JSON, которое можно использовать различными способами. Предположим, что данные поступают из внешнего источника в формате JSON, тогда вы можете его проанализировать и сохранить в структуре таблицы (если требуется), в другом случае для внешнего источника требуются данные в формате JSON, а данные в SQL SERVER - в табличном формате, поэтому обе цели могут легко быть достигнуты с помощью функции JSON SQL SERVER.

Теперь давайте перейдем непосредственно к практическому рассмотрению возможностей JSON в SQL SERVER.

1) ДЛЯ JSON AUTO
Он похож на FOR XML AUTO. Он вернет объект JSON выбранного столбца, где имя столбца будет рассматриваться как ключ или, другими словами, мы можем сказать, что он будет форматировать результат запроса в JSON.

Когда вы запустите указанную выше команду, результат будет таким, как показано на рисунке ниже:

2) ДЛЯ JSON PATH
Он точно такой же, как JSON auto - единственная разница с SQL SERVER в том, что мы имеем полный контроль над форматом. JSON Auto принимает предопределенную схему столбца, а с помощью пути JSON PATH мы можем создать сложный объект.

Например, мы используем таблицу заказов AdventureWorks Sales и объединяем ее с таблицей продуктов, чтобы получить подузел. Как вы видите на рисунке ниже, мы добавили узел Root. Этот корневой узел может быть добавлен и в JSON auto, если потребуется.

Теперь, когда вы выполняете указанный выше запрос, мы можем получить сложный объект JSON следующим образом:

3) Функция IsJSON
По названию понятно, что это проверяющая функция.

Чтобы перекрестно проверить, является ли предоставленная строка допустимым JSON или нет, мы можем запустить ISJSON.

4) JSON_VALUE
По названию понятно, что если вы хотите получить значение конкретного ключа JSON, вы можете использовать эту прекрасную функцию JSON_VALUE.

5) Функция OPENJSON
Это очень хорошая функция, которую вы можете использовать для анализа внешней схемы. Предположим, у вас есть строка JSON из мобильной службы, которую вы передаете непосредственно в SQL Sever, а хранимая процедура SQL SERVER выполнит оставшуюся часть операции для ее анализа. OPENJSON может легко обрабатывать синтаксический анализ и другие операции. Единственная настройка здесь заключается в том, что для этого требуется уровень совместимости базы данных 130, который вам нужно настроить (если он не совместим с уровнем 130).

Есть много других интересных вещей, которые мы рассмотрим позже.

No Comments

Add a Comment