Pole v PostgreSQL

PostgreSQL umožňuje nastavit sloupec jako několika rozměrné pole. V tomto příspěvku ukážu vytvoření sloupců, které budou obsahovat jednorozměrné pole.

Vytvoření tabulky favorite a naplnění daty.

create table favorite (
	id serial not null,
	person_id int not null,
	favorite_names varchar(15)[],
	favorite_numbers int[],

	primary key(id)
);

insert into favorite (person_id, favorite_names, favorite_numbers) values
	(4, '{"Petr", "Anna"}', '{7, 11, 23, 999}'),
	(5, array['Alena'], '{1}'),
	(7, '{"Marie", "Aneta", "Petr"}', array[17, 24]),
	(9, array['Pankrác', 'Servác', 'Bonifác'], array[111, 13, 9, 2]);

Třetí sloupec obsahuje pole řetězců a čtvrtý sloupec pole celých čísel. Pole je možné vytvořit pomocí složených závorek a nebo pomocí konstruktoru ARRAY.


Zobrazení tabulky favorite.

select * from favorite;

postgresql_arrays_01


Vypsání záznamů, které mají první záznam v poli favorite_numbers větší, než druhý záznam.

select * from favorite where favorite_numbers[1] > favorite_numbers[2];

Vypíše třetí oblíbené jméno a druhé oblíbené číslo pro každý záznam.

select favorite_names[3] as "Třetí oblíbené jméno", favorite_numbers[2] as "Druhé oblíbené číslo" from favorite;

postgresql_arrays_02


Zobrazí pro každý záznam počet položek v poli favorite_names (počet oblíbených jmen).

select array_length(favorite_names, 1) as pocet_oblibenych_jmen from favorite;

Zdroje:

Napsat komentář