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

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

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

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


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