ПостгреСКЛ

ПостгреСКЛ ЈСОНБ Тип података и функције

ПостгреСКЛ ЈСОНБ Тип података и функције

Као у 9.Верзија 2, ПостгреСКЛ је додао прилично основни ЈСОН тип података. Испод насловнице, ЈСОН тип података је текст, уз проверу да ли је можда изглед тачан ЈСОН унос сличан КСМЛ-у. На крају, тим је открио да би обим ЈСОН обраде и специјализовано претраживање потребно у ПостгреСКЛ-у било тешко или рационално применити преко текстуалне врсте података. Стога су креирали бинарну представу ЈСОН типа података са комплетним опсегом оператора и метода. Ево типа података ЈСОНБ. Тип података ЈСОНБ заиста је свестран бинарни распоред за складиштење са комплетном обрадом, индексирањем и могућностима претраживања. Као резултат, он обрађује ЈСОН информације у унутрашњи распоред, који има само једну вредност по кључу и занемарује додатни размак или удубљење, или можете рећи увлачење. У овом водичу ћете научити како да комуницирате са ЈСОНБ обрасцем података у ПостгреСКЛ-у, као и неке корисне операторе и методе за бављење ЈСОНБ подацима.

Тип података који ће вам највероватније бити потребан и који ћете одлучити да користите је ЈСОНБ, а не ЈСОН рана верзија, који се користи само за повратну компатибилност. Дакле, отворите командну љуску ПостгреСКЛ и наведите имена сервера, базу података, порт и корисничко име.

Пример 01:

Ево кратке илустрације варијација између два типа података. Морамо створити табелу „Ново“, а један од њених ступаца мора бити „ЈСОН“ тип података на следећи начин:

>> СТВОРИ ТАБЕЛУ Ново (ИД серијски ПРИМАРНИ КЉУЧ, Вал ЈСОН);

У колону 'Вал' убаците неке вредности.

>> ИНСЕРТ ИНТО Нев (Вал) ВАЛУЕС ('[1, 2, 3, 4]'), ('[10, 11, 12, 13]'), ('"кеи": "валуе"') ;

Коришћење оператора '@>'

Једном када покушамо да потражимо уносе са целим бројем на листи „додатних“ колона, увек добијемо поруку о грешци као што је приложено у наставку.

>> ОДАБЕРИТЕ * ОД НОВОГ ГДЕ Вал @> '11';

да. ЈСОН је само текст и није врло ефикасан и не садржи конфигурацију оператора. Нека се садржај промени у јсонб.

>> АЛТЕР ТАБЕЛА Нова АЛТЕР КОЛОНА Вал ТИП ЈСОНБ;

Сада извршите исти упит у љусци, а резултат показује један ред који има низ '11' у свом низу као што је дато испод.

>> ОДАБЕРИТЕ * ОД НОВОГ ГДЕ Вал @> '11';

Пример 02:

Направимо табелу „Торба“ која ће се користити на нашим илустрацијама све док не почнемо да разговарамо о методама и операторима употребљивим за ПостгреСКЛ ЈСОНБ тип података. Једна од његових колона, нпр.г. „Бренд“ мора бити „ЈСОНБ“ тип података на следећи начин:

>> ИЗРАДИ ТАБЛИЦУ Торба (ИД серијски ПРИМАРНИ КЉУЧ, марка ЈСОНБ НОТ НУЛЛ);

Користићемо следећу СКЛ ИНСЕРТ декларацију за додавање информација у ПостгреСКЛ табелу 'Торба':

>> ВРАТИТЕ ВРИЈЕДНОСТИ ВРАТА торбе (робне марке) ('"назив": "Гуцци", "боја": ["црвена", "црна"], "цијена": 10000, "продато": тачно,]') , ('"наме": "Аллуре", "цолор": ["ред", "Граи"], "прице": 85000, "солд": фалсе,]'), ('"наме": "Киџа", "боја": ["црна", "бела"], "цена": 75000, "продато": тачно,] ');

Видите да су подаци додати у облику речника, нпр.г., кључеви и вредности.

Елементи ове табеле „Торба“ могу се видети помоћу реченице СЕЛЕЦТ, као што се види доле:

>> ОДАБЕРИ * ИЗ Торбе;

Употреба оператора '->'

Потражимо вредности у колони „Бренд“ помоћу кључа „име“ помоћу оператора „->“ у нашем упиту.  Добиће све записе кључа „име“ из колоне „Бренд“. Излаз ће бити приказан у новој колони „марка“. Коначни излаз ће се појавити као што је приложено у наставку. Као што видите, имамо три вредности: „Гуцци, Аллуре, кидза“ за кључно „име“.

>> ОДАБЕРИТЕ марку -> 'име' КАО марка ИЗ торбе;

Употреба оператора '->' помоћу клаузуле ВХЕРЕ

Дохватимо све оне редове из табеле „Торба“ где је колона „Бренд“ за кључ „продато“ добила вредност „тачно“. Упит за овај избор је следећи:

>> ОДАБЕРИТЕ * ФРОМ Баг ВХЕРЕ Бранд -> 'солд' = 'труе';

Ето видите, упит је дохватио два реда само из табеле „Торба“, јер има само два реда која имају вредност „тачно“ за кључ „продат“.

ПостгреСКЛ ЈСОНБ функције:

Са ЈСОНБ информацијама, чини се да постоји низ уграђених метода које се могу користити. Погледајмо их једног по једног.

ЈСОНБ Свака функција:

ЈСОНБ Свака функција узима податке и претвара их у пар кључ_вредност. Размотрите следећи упит методе јсонб_еацх где смо навели вредности. ЈСОН подаци највишег нивоа проширују се у низ комбинација кључ / вредност у исходу. Добили смо два пара кључ / вредност, као што је приказано доле.

>> ОДАБЕРИТЕ јсонб_еацх ('"наме": "Аллуре", "солд": "труе"' :: јсонб);

Функција тастера објекта ЈСОНБ:

Сада ћемо погледати функцију Јсонб_објецт_кеис. Ова функција узима податке, а сама одваја и идентификује кључне вредности у њима. Испробајте доњи СЕЛЕЦТ упит, у којем смо користили методу јсонб_објецт_кеис и пружили неке вредности. Овај метод ће вратити кључеве највишег нивоа ЈСОН-а за одређене податке, као што је приказано у наставку.

>> ОДАБЕРИТЕ јсонб_објецт_кеис ('"наме": "кидза", "солд": "труе"' :: јсонб);

ЈСОНБ функција екстракције пута:

Функција ЈСОНБ Ектрацт Патх узима пут за приказ вредности у исходу. Испробајте упит испод у командној љусци, где смо навели „бранд“ као пут до ЈСОНБ јсонб_ектрацт_патх методе. Из резултата представљених на доњој слици можете видети да је „Гуцци“ враћена вредност путање „име“.

>> ОДАБЕРИТЕ јсонб_ектрацт_патх ('"наме": "Гуцци", "солд": труе' :: јсонб, 'наме');

ЈСОНБ Прилична функција:

Ако желите да своје ЈСОН датотеке прикажете у облику који се лако чита, тада је најбоља опција функција ЈСОНБ Претти. Испробајте упит у наставку и добићете једноставан излаз.

>> ОДАБЕРИТЕ јсонб_претти ('"наме": "Аллуре", "солд": фалсе' :: јсонб);

Закључак:

Када ускладиштите ЈСОНБ информације у ПостгреСКЛ базама података, добијате најбољи могући исход: једноставност и поузданост НоСКЛ базе података у комбинацији са предностима релационе базе података. Користећи бројне операторе и методе, показали смо како се користи ПостгреСКЛ ЈСОНБ. Бићете способни за рад са ЈСОНБ подацима користећи наше илустрације као референцу.

Портови комерцијалних игара отвореног кода
Бесплатне рекреације покретачких игара са отвореним кодом и више платформи могу се користити за играње старих, као и неких прилично недавних наслова и...
Најбоље игре командне линије за Линук
Командна линија није само ваш највећи савезник када користите Линук - она ​​такође може бити извор забаве јер је можете користити за играње многих заб...
Најбоље апликације за мапирање гамепада за Линук
Ако волите да играте игре на Линуку са гамепадом уместо са типичним системом за унос тастатуре и миша, за вас постоје неке корисне апликације. Многе и...