SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
-- Cоздаем таблицу Группа create table sgroup ( id integer not null, group_name varchar(40), primary key (id)); -- уникальный ключ id -- Cоздаем таблицу Студент create table student ( id integer not null, id_group integer not null, -- поле для связи с таблицей Группа student_name varchar(40), last_name varchar(40), middle_name varchar(40), sex char(1), age smallint, primary key (id), -- уникальный ключ id foreign key (id_group) references sgroup (id)); -- определение связи с таблицей Группа -- Cоздаем таблицу Хобби create table hobby ( id integer not null, -- уникальный ключ hobby_name varchar(100), primary key (id)); -- уникальный ключ id -- Cоздаем таблицу Студент-Хобби create table student_hobby ( id_student integer not null, -- поле для связи с таблицей Студент id_hobby integer not null, -- поле для связи с таблицей Хобби primary key (id_student, id_hobby), -- уникальный ключ составной id_student, id_hobby foreign key (id_hobby) references hobby (id), -- определение связи с таблицей Хобби foreign key (id_student) references student (id)); -- определение связи с таблицей Студент -- ##################################### -- Добавляем записи в таблицу Группа insert into sgroup (id, group_name) values (1, 'БВТ2352'); insert into sgroup values (2, 'МТБ-23-2'); insert into sgroup values (3, 'БЭЭ-21-1-2'); -- Добавляем записи в таблицу Студент insert into student (id, id_group, last_name, student_name, middle_name, sex, age) values (1, 2, 'Романов', 'Даниил', 'Игоревич', 'м', 24); insert into student (id, id_group, last_name, student_name, middle_name, sex, age) values (2, 2, 'Мельникова', 'Елизавета', 'Семёновна', 'ж', 23); insert into student (id, id_group, last_name, student_name, middle_name, sex, age) values (3, 1, 'Логуа', 'Александр', 'Дмитриевич', 'м', 22); insert into student (id, id_group, last_name, student_name, middle_name, sex, age) values (4, 3, 'Захарова', 'Елена', 'Романовна', 'ж', 21); -- Добавляем записи в таблицу Хобби insert into hobby values (1, 'Онлайн-игры'); insert into hobby values (2, 'Творчество'); insert into hobby values (3, 'Танцы'); insert into hobby values (4, 'Единоборства'); insert into hobby values (5, 'Плаванье'); insert into hobby values (6, 'Волонтёрство'); -- Добавляем записи в таблицу Студент-Хобби -- Для студента Романова insert into student_hobby values (1, 1); insert into student_hobby values (1, 3); -- Для студентки Мельниковой insert into student_hobby values (2, 1); insert into student_hobby values (2, 4); -- Для студентки Захаровой insert into student_hobby values (4, 1); insert into student_hobby values (4, 5); insert into student_hobby values (4, 6); select s.last_name, s.student_name, s.middle_name from student s where s.age = (select max(s.age) from student s); select s.last_name, s.student_name, s.middle_name from student s, sgroup sg where sg.id = s.id_group and sg.group_name = 'БВТ2352'; select g.group_name, count(s.id) from sgroup g, student s where g.id=s.id_group group by 1; select s.last_name, h.hobby_name from student s left join student_hobby sh on s.id=sh.id_student left join hobby h on sh.id_hobby=h.id; create or replace function maxageplpgsql (in_group varchar(40)) returns smallint language plpgsql as $$ declare maxage smallint; -- объявляем локальную переменную begin select max(s.age) into maxage -- сохраняем результат в переменную from student s, sgroup g where s.id_group=g.id and g.group_name=in_group; return maxage; -- возвращаем значение функции end; $$;

Stuck with a problem? Got Error? Ask ChatGPT!

Copy Clear