ПостгреСКЛ низ: функције, тип, пример

Преглед садржаја:

Anonim

Шта је ПостгреСКЛ низ?

У ПостгреСКЛ-у можемо да дефинишемо колону као низ важећих типова података. Тип података може бити уграђени, кориснички дефинисан или набројан. Осим овога, низови играју важну улогу у ПостгреСКЛ-у.

Сваки одговарајући тип података ПостгреСКЛ долази са одговарајућим типом низа. На пример, целобројни тип података има целобројни [] тип низа, тип података о знаковима има тип поља [], итд.

У овом упутству за ПостгреСКЛ научићете:

  • Шта је ПостгреСКЛ низ?
  • Креирање ПостгреСКЛ низова
  • Уметање вредности низа ПостгреСКЛ
  • Упит за податке низа
  • Измена низа ПостгреСКЛ
  • Претраживање у ПостгреСКЛ низу
  • Проширивање низова
  • Коришћење пгАдмин

Креирање ПостгреСКЛ низова

У следећем примеру креираћемо табелу названу Запослени са контакт колоном дефинисаном као низ текста:

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)

  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) Да бисте видели прве контакте запослених:

  1. Унесите следећи упит у уређивач упита:
    SELECT name, contact[1]FROM Employees;
  2. Кликните на дугме Екецуте.

Требало би да врати следеће:

Корак 4) Да бисте комбиновали наредбу СЕЛЕЦТ са клаузулом ВХЕРЕ:

  1. Откуцајте следећу команду у уређивачу упита:
    SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
  2. Кликните на дугме Екецуте.

Требало би да врати следеће:

Измена низа ПостгреСКЛ

Корак 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.
  • Свакој вредности се може приступити прослеђивањем индекса у угластим заградама [].
  • Елементи низа могу се добити помоћу наредбе СЕЛЕЦТ.
  • Вредности колоне низа могу бити затворене у углате заграде [] или коврџаве заграде {}.
  • Вредности ступаца низа можемо претраживати помоћу функције АНИ ().

Преузмите базу података кориштену у овом водичу