PostgreSQL

PostgreSQL JSONB Тип данни и функции

PostgreSQL JSONB Тип данни и функции

Както в 9.Версия 2, PostgreSQL добави доста основен тип данни JSON. Под корицата типът данни на JSON е текст, като се проверява дали може оформлението да е правилно Въведете JSON, подобно на XML. В крайна сметка екипът установи, че обемът на JSON обработка и специализирано търсене, необходими в PostgreSQL, би било трудно или рационално да се приложи над текстов тип данни. Следователно те създадоха двоично представяне на типа данни JSON с пълна гама от оператори и методи. Тук идва типът данни JSONB. Типът данни JSONB наистина е универсален двоичен формат за съхранение с пълна обработка, индексиране и възможност за търсене. В резултат на това той обработва предварително JSON информация във вътрешно оформление, което има само една стойност на ключ и игнорира допълнително празно пространство или депресия, или можете да кажете отстъп. В това ръководство ще научите как да взаимодействате с формуляра за данни JSONB в PostgreSQL, както и някои удобни оператори и методи за работа с данни JSONB.

Типът данни, който най-вероятно ще изискате и изберете да използвате, е JSONB, а не JSON ранна версия, която се използва само за обратна съвместимост. И така, отворете командната обвивка на PostgreSQL и предоставете имената на сървъра, базата данни, порта и потребителското име.

Пример 01:

Ето кратка илюстрация на вариациите между двата типа данни. Трябва да създадем таблица „Нова“, като една от колоните й трябва да бъде тип „JSON“, както следва:

>> СЪЗДАВАНЕ НА ТАБЛИЦА Ново (ID сериен ОСНОВЕН КЛЮЧ, Val JSON);

Вмъкнете някои стойности в колоната „Val“.

>> ВЪВЕДЕТЕ В НОВИ (Val) СТОЙНОСТИ ('[1, 2, 3, 4]'), ('[10, 11, 12, 13]'), ('„ключ“: „стойност“') ;

Използване на оператора '@>'

След като се опитаме да потърсим записи с цяло число в списъка с допълнителни колони, винаги получаваме съобщение за грешка, както е приложено по-долу.

>> ИЗБЕРЕТЕ * ОТ НОВО КЪДЕ Val @> '11';

Да. JSON е просто текст и не е много ефективен и не съдържа конфигурация на оператора. Нека съдържанието се промени на jsonb.

>> ALTER TABLE Нова ALTER COLUMN Val TYPE JSONB;

Сега изпълнете същата заявка в черупката и резултатът показва един ред с числото '11' в масива си, както е дадено по-долу.

>> ИЗБЕРЕТЕ * ОТ НОВО КЪДЕ Val @> '11';

Пример 02:

Нека направим таблица „Чанта“, която да се използва в нашите илюстрации, докато започнем да говорим за методите и операторите, използваеми за типа данни PostgreSQL JSONB. Една от колоните му, напр.ж. „Марка“ трябва да е тип данни „JSONB“, както следва:

>> СЪЗДАЙТЕ ЧАСТ ЗА МАСА (ID сериен ОСНОВЕН КЛЮЧ, марка JSONB НЕ НУЛНА);

Ще използваме следната SQL INSERT декларация, за да добавим информация в таблицата PostgreSQL „Чанта“:

>> ВЪВЕДЕТЕ В СТОЙНОСТИ за чанта (марка) ('"name": "Gucci", "color": ["red", "black"], "price": 10000, "sold": true,]') , ('"name": "Allure", "color": ["red", "Grey"], "price": 85000, "sold": false,]'), ('"name": "Kidza", "color": ["черно", "бяло"], "цена": 75000, "продадено": вярно,] ');

Можете да видите, че данните са добавени под формата на речник, напр.ж., ключове и стойности.

Елементите на тази таблица „Чанта“ могат да се видят с помощта на изречение SELECT, както се вижда по-долу:

>> ИЗБЕРЕТЕ * ОТ чанта;

Използване на оператора '->'

Нека потърсим стойностите в колоната „Марка“ чрез ключа „name“, използвайки оператора „->“ в нашата заявка.  Той ще извлече всички записи на ключа „име“ от колоната „Марка“. Резултатът ще бъде показан в новата колона „марка“. Крайният изход ще се появи, както е приложен по-долу. Както можете да видите, имаме три стойности: „Gucci, Allure, kidza“ за ключовото „име“.

>> ИЗБЕРЕТЕ Марка -> 'име' КАТО марка ОТ чанта;

Използване на оператор '->', използващ клауза WHERE

Нека вземем всички тези редове от таблицата „Чанта“, където колоната „Марка“ има стойността „true“ за своя ключ „продаден“. Заявката за този избор е както следва:

>> ИЗБЕРЕТЕ * ОТ чанта КЪДЕ Марка -> 'продадено' = 'вярно';

Там виждате, заявката извлича два реда само от таблицата „Чанта“, защото има само два реда със стойност „true“ за ключа „продаден“.

PostgreSQL JSONB функции:

С информацията за JSONB изглежда има различни вградени методи, които могат да бъдат използвани. Нека ги разгледаме един по един.

JSONB Всяка функция:

JSONB Всяка функция взема данните и ги преобразува в двойката key_value. Обмислете следната заявка за метода jsonb_each, където сме предоставили стойности. JSON данните от най-високо ниво се разширяват в поредица комбинации ключ-стойност в резултата. Имаме две двойки ключ-стойност, както е показано по-долу.

>> ИЗБЕРЕТЕ jsonb_each ('"name": "Allure", "sold": "true"' :: jsonb);

Функция на JSONB обектни клавиши:

Сега ще разгледаме функцията Jsonb_object_keys. Тази функция взема данните и сама отделя и идентифицира ключовите стойности в тях. Опитайте заявката по-долу SELECT, в която използваме метода jsonb_object_keys и предоставихме някои стойности. Този метод ще върне само ключовете на документа от най-високо ниво на JSON за конкретните данни, както е показано по-долу.

>> ИЗБЕРЕТЕ jsonb_object_keys ('"name": "kidza", "sold": "true"' :: jsonb);

Функция за извличане на път JSONB:

Функцията JSONB Extract Path взема пътя, за да покаже стойността в резултата. Опитайте заявката по-долу в командната обвивка, където сме предоставили „марка“ като път към JSONB метод jsonb_extract_path. От изхода, представен на изображението по-долу, можете да видите, че „Gucci“ е върната стойност към пътя „име“.

>> ИЗБЕРЕТЕ jsonb_extract_path ('"name": "Gucci", "sold": true' :: jsonb, 'name');

JSONB Доста функция:

Ако искате да покажете вашите JSON файлове с лесно за четене оформление, тогава функцията JSONB Pretty е най-добрият вариант. Опитайте заявката по-долу и ще получите прост изход.

>> ИЗБЕРЕТЕ jsonb_pretty ('"name": "Allure", "sold": false' :: jsonb);

Заключение:

Когато съхранявате информация за JSONB в базата данни PostgreSQL, получавате възможно най-добрия резултат: простотата и надеждността на база данни NoSQL, съчетана с предимствата на релационната база данни. Използвайки многобройни оператори и методи, ние демонстрирахме как да използваме PostgreSQL JSONB. Ще можете да работите с JSONB данни, като използвате нашите илюстрации като справка.

Как да използвам GameConqueror Cheat Engine в Linux
Статията обхваща ръководство за използването на GameConqueror cheat engine в Linux. Много потребители, които играят игри под Windows, често използват ...
Най-добрите емулатори на игрови конзоли за Linux
Тази статия ще изброи популярния софтуер за емулация на игрова конзола, наличен за Linux. Емулацията е слой за софтуерна съвместимост, който емулира х...
Най-добрите дистрибуции на Linux за игри през 2021 г
Операционната система Linux е изминала дълъг път от първоначалния си, прост, базиран на сървъра външен вид. Тази операционна система се подобри неимов...