Шта је ПостгреСКЛ низ?
У ПостгреСКЛ-у можемо да дефинишемо колону као низ важећих типова података. Тип података може бити уграђени, кориснички дефинисан или набројан. Осим овога, низови играју важну улогу у ПостгреСКЛ-у.
Сваки одговарајући тип података ПостгреСКЛ долази са одговарајућим типом низа. На пример, целобројни тип података има целобројни [] тип низа, тип података о знаковима има тип поља [], итд.
У овом упутству за ПостгреСКЛ научићете:
- Шта је ПостгреСКЛ низ?
- Креирање ПостгреСКЛ низова
- Уметање вредности низа ПостгреСКЛ
- Упит за податке низа
- Измена низа ПостгреСКЛ
- Претраживање у ПостгреСКЛ низу
- Проширивање низова
- Коришћење пгАдмин
Креирање ПостгреСКЛ низова
У следећем примеру креираћемо табелу названу Запослени са контакт колоном дефинисаном као низ текста:
CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);
Команда треба успешно да се покрене.
Уметање вредности низа ПостгреСКЛ
Убацимо сада вредности у горњу табелу:
INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);
Уметање би требало успешно да се изводи.
Вредности треће колоне, односно контакта, уметнуте су као низ. То је постигнуто употребом конструктора АРРАИ.
У овом примеру смо их затворили у углате заграде []. Имамо два контакта за запослену Алице Јохн.
Још увек је могуће да користимо коврџаве заграде {} као што је приказано доле:
INSERT INTO EmployeesVALUES(2,'Kate Joel','{"(408)-783-5731"}'),(3,'James Bush','{"(408)-745-8965","(408)-567-78234"}');
Команда треба успешно да се покрене.
Горње изјаве убациће два реда у табелу запослених. Када се користе витичасте заграде, низ је умотан у појединачне наводнике ('), док су ставке текстног низа у двоструке наводнике (").
Упит за податке низа
За испитивање елемената низа користимо наредбу СЕЛЕЦТ.
Да бисмо видели садржај наше табеле Запослени, извршавамо следећу команду:
SELECT * FROM Employees;
Ово враћа следеће:
Елементи колоне низа, односно контакт, затворени су у витичасте заграде {}.
Да бисмо приступили самим елементима низа, додајемо индекс у угластим заградама []. Први елемент у низу је на позицији 1.
На пример, морамо добити имена запослених и само њихов први контакт за оне запослене који имају више контаката. Можемо приступити овом контакту [1].
Да видимо ово:
SELECT name, contact[1]FROM Employees;
Ово ће вратити следеће:
Израз СЕЛЕЦТ можемо користити заједно са клаузулом ВХЕРЕ за филтрирање редова заснованих на колони низа.
На пример, да бисмо видели запосленика са (408) -567-78234 као другим контактом, можемо покренути следећу команду:
SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
Ово ће вратити следеће:
Измена низа ПостгреСКЛ
Можете да ажурирате све или један елемент низа.
Ево садржаја табеле Запослени:
Ажурирајмо други телефонски број запосленог Јамеса Бусха, чији је ид 3:
Покрените следећу команду:
UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;
Команда треба успешно да се покрене:
Упитајмо табелу да бисмо проверили да ли је промена била успешна:
Промена је била успешна.
Претраживање у ПостгреСКЛ низу
Тренутно је наша табела запослених:
Претпоставимо да морамо знати ко је власник контакта (408) -783-5731, без обзира на положај у низу контаката, можемо користити функцију АНИ () као што је приказано доле:
SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);
Ово ће вратити следеће:
Проширивање низова
Вредности низа можемо поделити у редове. Овај процес је познат као проширивање низа.
У примеру табеле Запослени постоје неки запослени са два контакта у низу контаката. Можемо их поделити у посебне редове.
ПостгреСКЛ пружа функцију уннест () која се може користити за ово.
На пример:
SELECTname,unnest(contact)FROMEmployees;
Ово ће вратити следеће:
Запослени Алице Јохн и Јамес Бусх имају два контакта. Можемо се поделити у одвојене редове.
Коришћење пгАдмин
Креирање ПостгреСКЛ низова
Да бисте то постигли путем пгАдмин-а, урадите ово:
Корак 1) Пријавите се на свој пгАдмин налог.
Корак 2)
- На траци за навигацију лево- кликните рбасес.
- Кликните на демо дугме
Корак 3) Унесите упит у уређивач упита да бисте креирали табелу Запослени:
CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);
Корак 4) Кликните на дугме Изврши.
Уметање вредности низа ПостгреСКЛ
Корак 1) Унесите следећи упит у уређивач упита:
INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);
Корак 2) Кликните на дугме Екецуте:
Корак 3)
Да бисте користили витичасте заграде у упиту
Корак 1) Унесите следећи упит у уређивач упита:
INSERT INTO EmployeesVALUES(2,'Kate Joel','{"(408)-783-5731"}'),(3,'James Bush','{"(408)-745-8965","(408)-567-78234"}');
Корак 2) Кликните на дугме Екецуте:
Упит за податке низа
Корак 1) Да бисте видели садржај табеле Запослени, откуцајте следећи упит у уређивачу упита:
SELECT * FROM Employees;
Корак 2) Кликните на дугме Екецуте:
Требало би да врати следеће:
Корак 3) Да бисте видели прве контакте запослених:
- Унесите следећи упит у уређивач упита:
SELECT name, contact[1]FROM Employees;
- Кликните на дугме Екецуте.
Требало би да врати следеће:
Корак 4) Да бисте комбиновали наредбу СЕЛЕЦТ са клаузулом ВХЕРЕ:
- Откуцајте следећу команду у уређивачу упита:
SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
- Кликните на дугме Екецуте.
Требало би да врати следеће:
Измена низа ПостгреСКЛ
Корак 1) Да бисте ажурирали други контакт корисника са ИД-ом 3, покрените следећу команду:
UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;
Корак 2) Кликните на дугме Изврши.
Корак 3)
1. Укуцајте следећу наредбу у уређивачу упита да бисте проверили да ли је промена била успешна:
SELECT * FROM Employees;
2. Притисните дугме Екецуте.
Требало би да врати следеће:
Претраживање у ПостгреСКЛ низу
Корак 1) Унесите следећи упит у уређивач упита:
SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);
Корак 2) Кликните на дугме Изврши.
Требало би да врати следеће:
Проширивање низова
Корак 1) Унесите следећи упит у уређивач упита:
SELECTname,unnest(contact)FROMEmployees;
Корак 2) Кликните на дугме Изврши.
Требало би да врати следеће:
Резиме:
- ПостгреСКЛ нам омогућава да колону табеле дефинишемо као тип низа.
- Низ мора бити важећег типа података као што су цели број, знак или кориснички дефинисани типови.
- Да бисмо уметнули вредности у колону низа, користимо конструктор АРРАИ.
- Ако се у истом реду ступца низа налази више елемената, први елемент је на позицији 1.
- Свакој вредности се може приступити прослеђивањем индекса у угластим заградама [].
- Елементи низа могу се добити помоћу наредбе СЕЛЕЦТ.
- Вредности колоне низа могу бити затворене у углате заграде [] или коврџаве заграде {}.
- Вредности ступаца низа можемо претраживати помоћу функције АНИ ().
Преузмите базу података кориштену у овом водичу