powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Array + Composite Type SQL
9 сообщений из 9, страница 1 из 1
Array + Composite Type SQL
    #37160007
Sanchez_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток всем!

Я создал составной тип:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 CREATE TYPE employee AS
  (   
   name text,
   age numeric,
   position text, 
   salary numeric 
   );

Затем таблицу, одно из полей которой является массивом таких типов:
Код: plaintext
1.
2.
3.
4.
5.
  CREATE TABLE departments(
    id numeric,
    depname text,   
    employes employee[]
   );

Далее заполнил таблицу:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
   INSERT INTO departments VALUES( 34 , 'Information Systems Developmet Group', 
   ARRAY[('Arcadiy Pereguda',  29 , 'Scientist',  15000 )::employee,
         ('Alexandr Pushkin',  59 , 'Project Manager',  30000 )::employee,  
         ('Kurt Cobain',  29 , 'Team Lead',  10000 )::employee,  
         ('Andrey Knyazev',  27 , 'Programmer',  7000 )::employee,  
         ('Stepan Ivanov',  26 , 'DBA',  10000 )::employee  
   ]);

Так я могу выбрать инфу по сотруднику 34-го отдела:
Код: plaintext
1.
 SELECT id, depname, employes[ 3 ].name, employes[ 3 ].age, employes[ 3 ].position, employes[ 3 ].salary FROM departments WHERE id= 34 ;     


А как мне выбрать одним запрососм всех сотрудников у которых оклад > 10000?


Спасибо за внимание!

С уважением, Sanchez
...
Рейтинг: 0 / 0
Array + Composite Type SQL
    #37160041
ГГость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
о_О
а че мелочиться - может сразу создать таблицу с одной единственной ячейкой, и там в виде текста хранить все данные?
...
Рейтинг: 0 / 0
Array + Composite Type SQL
    #37160048
V&N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
V&N
Гость
Sanchez_83,
Код: plaintext
select * from (select id, (unnest(employes)).* from departments) u where u.salary >  10000 
...
Рейтинг: 0 / 0
Array + Composite Type SQL
    #37160072
Sanchez_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V&N, СПАСИБО ОГРОМНОЕ!!!
...
Рейтинг: 0 / 0
Array + Composite Type SQL
    #37160077
V&N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
V&N
Гость
ГГость , поддерживаю - даже ректальный криптоанализ не спасет нуждающихся.
...
Рейтинг: 0 / 0
Array + Composite Type SQL
    #37160096
Sanchez_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, мне это нужно для изучения возможностей вообще. Я не проектипрую БД сейчас.
...
Рейтинг: 0 / 0
Array + Composite Type SQL
    #37161256
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sanchez_83, поучаствуйте в каком-нибудь проекте.
На сферической задаче в вакууме вы ничего не поймёте.
Почитайте про нормальный формы, нормализацию/денормализацию.
Поставьте себе субд, залейте базу местных задач,
попробуйте их решить, пользуясь функционалом 8.3,
потом попробуйте применить функционал 8.4 и посмотрите как он тут подойдёт.
Попробуйте оптимизировать структуру данных, например "корабли"
и перепишите запросы.
Потом поставьте девятку и поразбирайтесь с ограничениями.
Почитайте местный FAQ
...
Рейтинг: 0 / 0
Array + Composite Type SQL
    #37166272
Sanchez_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОКТОГЕН, Спасибо БОЛЬШОЕ, Уважаемый!

Я, конечно, не вчера узнал что такое БД и какие бывают модели данных. ;) Просто мне было необходимо проверить реализацию конкретной возможности в конкретной СУБД. Именно то что я описал в моем первом посте. И не больше не меньше! С PostgreSQL я только начинаю знакомиться. Покопавшись как следует в документации не нашел там ответа на свой вопрос. Поэтому и написал сюда, ибо считаю этот ресурс наиболее авторитетным среди всех прочих аналогичных. Далее, разумеется, я постраюсь более подробно изучить сначала архитектуру и возможности PostgreSQL.

С уважением.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Array + Composite Type SQL
    #38985303
Откопаю пожалуй стюардессу.
Подскажите плз, а как в этом случае создать индекс по зарплате сотрудника?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Array + Composite Type SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]