Као у 9.Верзија 2, ПостгреСКЛ је додао прилично основни ЈСОН тип података. Испод насловнице, ЈСОН тип података је текст, уз проверу да ли је можда изглед тачан ЈСОН унос сличан КСМЛ-у. На крају, тим је открио да би обим ЈСОН обраде и специјализовано претраживање потребно у ПостгреСКЛ-у било тешко или рационално применити преко текстуалне врсте података. Стога су креирали бинарну представу ЈСОН типа података са комплетним опсегом оператора и метода. Ево типа података ЈСОНБ. Тип података ЈСОНБ заиста је свестран бинарни распоред за складиштење са комплетном обрадом, индексирањем и могућностима претраживања. Као резултат, он обрађује ЈСОН информације у унутрашњи распоред, који има само једну вредност по кључу и занемарује додатни размак или удубљење, или можете рећи увлачење. У овом водичу ћете научити како да комуницирате са ЈСОНБ обрасцем података у ПостгреСКЛ-у, као и неке корисне операторе и методе за бављење ЈСОНБ подацима.
Тип података који ће вам највероватније бити потребан и који ћете одлучити да користите је ЈСОНБ, а не ЈСОН рана верзија, који се користи само за повратну компатибилност. Дакле, отворите командну љуску ПостгреСКЛ и наведите имена сервера, базу података, порт и корисничко име.
Пример 01:
Ево кратке илустрације варијација између два типа података. Морамо створити табелу „Ново“, а један од њених ступаца мора бити „ЈСОН“ тип података на следећи начин:
>> СТВОРИ ТАБЕЛУ Ново (ИД серијски ПРИМАРНИ КЉУЧ, Вал ЈСОН);
У колону 'Вал' убаците неке вредности.
>> ИНСЕРТ ИНТО Нев (Вал) ВАЛУЕС ('[1, 2, 3, 4]'), ('[10, 11, 12, 13]'), ('"кеи": "валуе"') ;
Коришћење оператора '@>'
Једном када покушамо да потражимо уносе са целим бројем на листи „додатних“ колона, увек добијемо поруку о грешци као што је приложено у наставку.
>> ОДАБЕРИТЕ * ОД НОВОГ ГДЕ Вал @> '11';
да. ЈСОН је само текст и није врло ефикасан и не садржи конфигурацију оператора. Нека се садржај промени у јсонб.
>> АЛТЕР ТАБЕЛА Нова АЛТЕР КОЛОНА Вал ТИП ЈСОНБ;
Сада извршите исти упит у љусци, а резултат показује један ред који има низ '11' у свом низу као што је дато испод.
>> ОДАБЕРИТЕ * ОД НОВОГ ГДЕ Вал @> '11';
Пример 02:
Направимо табелу „Торба“ која ће се користити на нашим илустрацијама све док не почнемо да разговарамо о методама и операторима употребљивим за ПостгреСКЛ ЈСОНБ тип података. Једна од његових колона, нпр.г. „Бренд“ мора бити „ЈСОНБ“ тип података на следећи начин:
>> ИЗРАДИ ТАБЛИЦУ Торба (ИД серијски ПРИМАРНИ КЉУЧ, марка ЈСОНБ НОТ НУЛЛ);
Користићемо следећу СКЛ ИНСЕРТ декларацију за додавање информација у ПостгреСКЛ табелу 'Торба':
>> ВРАТИТЕ ВРИЈЕДНОСТИ ВРАТА торбе (робне марке) ('"назив": "Гуцци", "боја": ["црвена", "црна"], "цијена": 10000, "продато": тачно,]') , ('"наме": "Аллуре", "цолор": ["ред", "Граи"], "прице": 85000, "солд": фалсе,]'), ('"наме": "Киџа", "боја": ["црна", "бела"], "цена": 75000, "продато": тачно,] ');Видите да су подаци додати у облику речника, нпр.г., кључеви и вредности.
Елементи ове табеле „Торба“ могу се видети помоћу реченице СЕЛЕЦТ, као што се види доле:
>> ОДАБЕРИ * ИЗ Торбе;
Употреба оператора '->'
Потражимо вредности у колони „Бренд“ помоћу кључа „име“ помоћу оператора „->“ у нашем упиту. Добиће све записе кључа „име“ из колоне „Бренд“. Излаз ће бити приказан у новој колони „марка“. Коначни излаз ће се појавити као што је приложено у наставку. Као што видите, имамо три вредности: „Гуцци, Аллуре, кидза“ за кључно „име“.
>> ОДАБЕРИТЕ марку -> 'име' КАО марка ИЗ торбе;
Употреба оператора '->' помоћу клаузуле ВХЕРЕ
Дохватимо све оне редове из табеле „Торба“ где је колона „Бренд“ за кључ „продато“ добила вредност „тачно“. Упит за овај избор је следећи:
>> ОДАБЕРИТЕ * ФРОМ Баг ВХЕРЕ Бранд -> 'солд' = 'труе';Ето видите, упит је дохватио два реда само из табеле „Торба“, јер има само два реда која имају вредност „тачно“ за кључ „продат“.
ПостгреСКЛ ЈСОНБ функције:
Са ЈСОНБ информацијама, чини се да постоји низ уграђених метода које се могу користити. Погледајмо их једног по једног.
ЈСОНБ Свака функција:
ЈСОНБ Свака функција узима податке и претвара их у пар кључ_вредност. Размотрите следећи упит методе јсонб_еацх где смо навели вредности. ЈСОН подаци највишег нивоа проширују се у низ комбинација кључ / вредност у исходу. Добили смо два пара кључ / вредност, као што је приказано доле.
>> ОДАБЕРИТЕ јсонб_еацх ('"наме": "Аллуре", "солд": "труе"' :: јсонб);
Функција тастера објекта ЈСОНБ:
Сада ћемо погледати функцију Јсонб_објецт_кеис. Ова функција узима податке, а сама одваја и идентификује кључне вредности у њима. Испробајте доњи СЕЛЕЦТ упит, у којем смо користили методу јсонб_објецт_кеис и пружили неке вредности. Овај метод ће вратити кључеве највишег нивоа ЈСОН-а за одређене податке, као што је приказано у наставку.
>> ОДАБЕРИТЕ јсонб_објецт_кеис ('"наме": "кидза", "солд": "труе"' :: јсонб);
ЈСОНБ функција екстракције пута:
Функција ЈСОНБ Ектрацт Патх узима пут за приказ вредности у исходу. Испробајте упит испод у командној љусци, где смо навели „бранд“ као пут до ЈСОНБ јсонб_ектрацт_патх методе. Из резултата представљених на доњој слици можете видети да је „Гуцци“ враћена вредност путање „име“.
>> ОДАБЕРИТЕ јсонб_ектрацт_патх ('"наме": "Гуцци", "солд": труе' :: јсонб, 'наме');
ЈСОНБ Прилична функција:
Ако желите да своје ЈСОН датотеке прикажете у облику који се лако чита, тада је најбоља опција функција ЈСОНБ Претти. Испробајте упит у наставку и добићете једноставан излаз.
>> ОДАБЕРИТЕ јсонб_претти ('"наме": "Аллуре", "солд": фалсе' :: јсонб);
Закључак:
Када ускладиштите ЈСОНБ информације у ПостгреСКЛ базама података, добијате најбољи могући исход: једноставност и поузданост НоСКЛ базе података у комбинацији са предностима релационе базе података. Користећи бројне операторе и методе, показали смо како се користи ПостгреСКЛ ЈСОНБ. Бићете способни за рад са ЈСОНБ подацима користећи наше илустрације као референцу.