Какво представлява масивът PostgreSQL?
В PostgreSQL можем да определим колона като масив от валидни типове данни. Типът данни може да бъде вграден, дефиниран от потребителя или изброен тип. Освен това масивите играят важна роля в PostgreSQL.
Всеки съответстващ тип данни на PostgreSQL се предлага с подходящ тип масив. Например целочисленият тип данни има тип масив integer [], типът символни данни има тип масив [] и т.н.
В този урок на PostgreSQL ще научите:
- Какво представлява масивът PostgreSQL?
- Създаване на масиви PostgreSQL
- Вмъкване на стойности на масив PostgreSQL
- Заявка за данни от масив
- Модифициране на масив PostgreSQL
- Търсене в масив PostgreSQL
- Разширяване на масиви
- Използване на pgAdmin
Създаване на масиви PostgreSQL
В следващия пример ще създадем таблица на име Служители с колоната за контакти, дефинирана като текстов масив:
CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);
Командата трябва да се изпълнява успешно.
Вмъкване на стойности на масив PostgreSQL
Нека сега вмъкнем стойности в горната таблица:
INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);
Вмъкването трябва да се изпълнява успешно.
Стойностите на третата колона, т.е. контакт, са вмъкнати като масив. Това е постигнато чрез използването на конструктора ARRAY.
В този пример ние сме ги затворили в квадратни скоби []. Имаме два контакта със служителката Алис Джон.
Все още е възможно да използваме къдрави скоби {}, както е показано по-долу:
INSERT INTO EmployeesVALUES(2,'Kate Joel','{"(408)-783-5731"}'),(3,'James Bush','{"(408)-745-8965","(408)-567-78234"}');
Командата трябва да се изпълни успешно.
Горните изявления ще вмъкнат два реда в таблицата Служители. Когато се използват къдрави скоби, масивът се увива в единични кавички ('), докато елементите на текстовия масив се увиват в двойни кавички (").
Заявка за данни от масив
За да запитваме елементите на масив, използваме оператора SELECT.
За да видим съдържанието на нашата таблица Служители, изпълняваме следната команда:
SELECT * FROM Employees;
Това връща следното:
Елементите на колоната на масива, т.е. контакт, са затворени в къдрави скоби {}.
За достъп до самите елементи на масива добавяме индекс в квадратни скоби []. Първият елемент в масива е на позиция 1.
Например трябва да получим имената на служителите и само първия им контакт за тези служители с повече от един контакт. Можем да получим достъп до това като контакт [1].
Нека да видим това:
SELECT name, contact[1]FROM Employees;
Това ще върне следното:
Можем да използваме оператора SELECT заедно с клаузата WHERE за филтриране на редове въз основа на колоната на масива.
Например, за да видим служителя с (408) -567-78234 като втори контакт, можем да изпълним следната команда:
SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
Това ще върне следното:
Модифициране на масив PostgreSQL
Можете да актуализирате всички или един елемент от масив.
Ето съдържанието на таблицата със служители:
Нека актуализираме втория телефонен номер на служителя Джеймс Буш, чийто идентификатор е 3:
Изпълнете следната команда:
UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;
Командата трябва да се изпълни успешно:
Нека направим запитване към таблицата, за да проверим дали промяната е била успешна:
Промяната беше успешна.
Търсене в масив PostgreSQL
В момента таблицата ни със служители е както следва:
Да предположим, че трябва да знаем кой притежава контакта (408) -783-5731, независимо от позицията в масива от контакти, можем да използваме функцията ANY (), както е показано по-долу:
SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);
Това ще върне следното:
Разширяване на масиви
Можем да разделим стойностите на масив на редове. Този процес е известен като разширяване на масива.
В примера на таблицата „Служители“ има няколко служители с два контакта в масива от контакти. Можем да ги разделим на отделни редове.
PostgreSQL предоставя функцията unnest (), която може да се използва за това.
Например:
SELECTname,unnest(contact)FROMEmployees;
Това ще върне следното:
Служителите Алис Джон и Джеймс Буш имат два контакта. Можем да се разделим на отделни редове.
Използване на pgAdmin
Създаване на масиви PostgreSQL
За да постигнете същото чрез pgAdmin, направете това:
Стъпка 1) Влезте във вашия pgAdmin акаунт.
Стъпка 2)
- От лентата за навигация вляво - Щракнете върху rbases.
- Щракнете върху бутона Demo
Стъпка 3) Въведете заявката в редактора на заявки, за да създадете таблица Служители:
CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);
Стъпка 4) Щракнете върху бутона за изпълнение.
Вмъкване на стойности на масив PostgreSQL
Стъпка 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) За да комбинирате оператора SELECT с клаузата WHERE:
- Въведете следната команда в редактора на заявки:
SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
- Щракнете върху бутона Изпълнение.
Той трябва да върне следното:
Модифициране на масив PostgreSQL
Стъпка 1) За да актуализирате втория контакт на потребител с идентификатор 3, изпълнете следната команда:
UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;
Стъпка 2) Щракнете върху бутона за изпълнение.
Стъпка 3)
1. Въведете следната команда в редактора на заявки, за да проверите дали промяната е била успешна:
SELECT * FROM Employees;
2. Щракнете върху бутона за изпълнение.
Той трябва да върне следното:
Търсене в масив PostgreSQL
Стъпка 1) Въведете следната заявка в редактора на заявки:
SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);
Стъпка 2) Щракнете върху бутона за изпълнение.
Той трябва да върне следното:
Разширяване на масиви
Стъпка 1) Въведете следната заявка в редактора на заявки:
SELECTname,unnest(contact)FROMEmployees;
Стъпка 2) Щракнете върху бутона за изпълнение.
Той трябва да върне следното:
Резюме:
- PostgreSQL ни позволява да дефинираме колона на таблица като тип масив.
- Масивът трябва да бъде от валиден тип данни, като например цяло число, символ или дефинирани от потребителя типове.
- За да вмъкнем стойности в колона на масив, използваме конструктора ARRAY.
- Ако в един и същи ред на колона с масив има повече от един елемент, първият елемент е на позиция 1.
- Всяка стойност може да бъде достъпна чрез предаване на индекс в квадратни скоби [].
- Елементите на масива могат да бъдат извлечени с помощта на оператора SELECT.
- Стойностите на колоната на масива могат да бъдат затворени в квадратни скоби [] или къдрави скоби {}.
- Можем да търсим стойности на колони в масив с помощта на функцията ANY ().
Изтеглете базата данни, използвана в този урок