Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите пожалуйста с этим заданием по MySQL.

Стасик Данилов Ученик (108), на голосовании 1 год назад
Создать и заполнить таблицу classroom. Таблица включает в себя поля:
class. Формат: символьный (текстовый), максимум 3 символа. Содержит класс с литерой в формате “11а”.
student. Формат: символьный (текстовый), максимум 60 символов. Содержит ФИО ученика.
Ключевое поле.
Создать и заполнить таблицу classroom_teacher. Таблица включает в себя поля:
class. Формат: символьный (текстовый), максимум 3 символа. Содержит класс с литерой в формате “11а”. Является ключевым.
teacher. Формат: символьный (текстовый), максимум 60 символов. Содержит ФИО учителя.
Для таблицы classroom примените команду GROUP BY и функцию COUNT(), чтобы найти количество учащихся в каждом классе. Т.е. в выборке должен быть уникальным столбец class, а также должен присутствовать столбец COUNT(student).
С помощью оператора JOIN соединить таблицы classroom_teacher и classroom
Можно ли использовать команду UNION для полных таблиц classroom_teacher и classroom (т.е. которые включают в себя все свои столбцы)? Если нет, то почему?
Пример заполненной таблицы classroom:
Голосование за лучший ответ
бабуин гибонович Оракул (50154) 1 год назад
Для начала, вам нужно создать и заполнить таблицу "classroom" с полями "class" и "student". Вот SQL-запрос для этого:

```sql
CREATE TABLE classroom (
class VARCHAR(3),
student VARCHAR(60),
PRIMARY KEY (class)
);

INSERT INTO classroom (class, student)
VALUES
('11a', 'Иванов Иван Иванович'),
('11a', 'Петров Петр Петрович'),
('11b', 'Сидорова Анна Сергеевна'),
('11b', 'Смирнов Дмитрий Алексеевич'),
('10a', 'Козлова Ольга Николаевна');
```

Теперь у вас есть заполненная таблица "classroom". Чтобы найти количество учащихся в каждом классе, вы можете использовать команду `GROUP BY` и функцию `COUNT()`. Вот SQL-запрос, выполняющий это:

```sql
SELECT class, COUNT(student) AS student_count
FROM classroom
GROUP BY class;
```

Результат будет содержать уникальные значения столбца "class" и количество учащихся ("student_count") в каждом классе.

Для создания и заполнения таблицы "classroom_teacher" с полями "class" и "teacher" используйте следующие SQL-запросы:

```sql
CREATE TABLE classroom_teacher (
class VARCHAR(3),
teacher VARCHAR(60),
PRIMARY KEY (class)
);

INSERT INTO classroom_teacher (class, teacher)
VALUES
('11a', 'Иванова Анна Сергеевна'),
('11b', 'Петров Петр Петрович'),
('10a', 'Сидорова Ольга Николаевна');
```

Теперь, чтобы соединить таблицы "classroom_teacher" и "classroom" с использованием оператора JOIN, вы можете выполнить следующий SQL-запрос:

```sql
SELECT c.class, c.student, t.teacher
FROM classroom c
JOIN classroom_teacher t ON c.class = t.class;
```

Этот запрос соединяет строки из обеих таблиц на основе значения столбца "class" и возвращает столбцы "class", "student" и "teacher" для соответствующих строк.

Команда UNION используется для объединения результатов двух или более запросов, но предполагается, что объединяемые запросы имеют одинаковую структуру столбцов. В случае полных таблиц "classroom_teacher" и "classroom", которые содержат все свои столбцы, необходимо использовать оператор JOIN, как показано выше, чтобы объединить строки на основе совпадающих значений столбца "class".
Похожие вопросы