1. Главная
  2. Библиотека
  3. Решение задач по базам данных
  4. Решение задачи на тему: «Придумай задание для каждых пунктов и напиши запрос к каждому их них 1.Внутренне...»
Решение задачи

Придумай задание для каждых пунктов и напиши запрос к каждому их них 1.Внутреннее соединение (10 запросов в комбинации с различными ви- дами...

Базы данных

Условие:

Придумай задание для каждых пунктов и напиши запрос к каждому их них 1.Внутреннее соединение (10 запросов в комбинации с различными ви- дами условий) 2.Внешнее полное, левое и правое соединение (5 запросов)

3.Замыкание таблицы на саму себя (1 запрос, если невозможно сделать на вашей базе данных, то выполнить на «вымышленной») 4.Подзапросы в части

Решение:

Задание 1: Внутреннее соединение

  1. Запрос: Вывести список всех студентов и их оценки по предмету "Математика". SELECT students.name, grades.math_grade FROM students INNER JOIN grades ON students.id = grades.student_id WHERE grades.subject = 'Математика';

  2. Запрос: Вывести список всех книг и их авторов, у которых количество страниц больше 500. SELECT books.title, authors.name FROM books INNER JOIN authors ON books.author_id = authors.id WHERE books.pages > 500;

  3. Запрос: Вывести список всех заказов и их статусы, сделанных клиентом с именем "Иванов". SELECT orders.order_number, statuses.status FROM orders INNER JOIN statuses ON orders.status_id = statuses.id INNER JOIN clients ON orders.client_id = clients.id WHERE clients.name = 'Иванов';

  4. Запрос: Вывести список всех фильмов и их режиссеров, выпущенных после 2010 года. SELECT movies.title, directors.name FROM movies INNER JOIN directors ON movies.director_id = directors.id WHERE movies.release_year > 2010;

  5. Запрос: Вывести список всех продуктов и их цены, у которых количество на складе больше 10. SELECT products.name, prices.price FROM products INNER JOIN prices ON products.id = prices.product_id WHERE products.quantity > 10;

  6. Запрос: Вывести список всех сотрудников и их должностей, работающих в отделе "Продажи". SELECT employees.name, positions.position FROM employees INNER JOIN positions ON employees.position_id = positions.id INNER JOIN departments ON employees.department_id = departments.id WHERE departments.name = 'Продажи';

  7. Запрос: Вывести список всех автомобилей и их владельцев, у которых год выпуска больше 2015. SELECT cars.make, owners.name FROM cars INNER JOIN owners ON cars.owner_id = owners.id WHERE cars.year > 2015;

  8. Запрос: Вывести список всех задач и их статусов, принадлежащих проекту с названием "Web Development". SELECT tasks.name, statuses.status FROM tasks INNER JOIN statuses ON tasks.status_id = statuses.id INNER JOIN projects ON tasks.project_id = projects.id WHERE projects.name = 'Web Development';

  9. Запрос: Вывести список всех студентов и их преподавателей, у которых средний балл выше 4.5. SELECT students.name, teachers.name FROM students INNER JOIN teachers ON students.teacher_id = teachers.id INNER JOIN grades ON students.id = grades.student_id GROUP BY students.name, teachers.name HAVING AVG(grades.grade) > 4.5;

  10. Запрос: Вывести список всех заказов и их клиентов, у которых сумма заказа больше 1000. SELECT orders.order_number, clients.name FROM orders INNER JOIN clients ON orders.client_id = clients.id WHERE orders.total_amount > 1000;

Задание 2: Внешнее полное, левое и правое соединение

  1. Запрос: Вывести список всех студентов и их оценки по предмету "Математика", включая студентов без оценок. SELECT students.name, grades.math_grade FROM students LEFT JOIN grades ON students.id = grades.student_id WHERE grades.subject = 'Математика';

  2. Запрос: Вывести список всех книг и их авторов, включая книги без авторов. SELECT books.title, authors.name FROM books LEFT JOIN authors ON books.author_id = authors.id;

  3. Запрос: Вывести список всех заказов и их статусы, включая заказы без статусов. SELECT orders.order_number, statuses.status FROM orders RIGHT JOIN statuses ON orders.status_id = statuses.id;

  4. Запрос: Вывести список всех фильмов и их режиссеров, включая фильмы без режиссеров. SELECT movies.title, directors.name FROM movies LEFT JOIN directors ON movies.director_id = directors.id;

  5. Запрос: Вывести список всех продуктов и их цены, включая продукты без цен. SELECT products.name, prices.price FROM products RIGHT JOIN prices ON products.id = prices.product_id;

Задание 3: Замыкание таблицы на саму себя

  1. Запрос: Вывести список всех сотрудников и их непосредственных руководителей. SELECT employees.name, managers.name FROM employees INNER JOIN employees AS managers ON employees.manager_id = managers.id;

Задание 4: Подзапросы в части

  1. Запрос: Вывести список всех студентов, у которых средний балл выше среднего по всем студентам. SELECT name FROM students WHERE average_grade > (SELECT AVG(average_grade) FROM students);

  2. Запрос: Вывести список всех книг, написанных авторами, у которых есть книги с количеством страниц больше 500. SELECT title FROM books WHERE author_id IN (SELECT author_id FROM books WHERE pages > 500);

  3. Запрос: Вывести список всех заказов, сделанных клиентами, у которых сумма заказа больше средней суммы заказов. SELECT order_number FROM orders WHERE total_amount > (SELECT AVG(total_amount) FROM orders);

  4. Запрос: Вывести список всех фильмов, выпущенных режиссерами, у которых есть фильмы с рейтингом выше 8. SELECT title FROM movies WHERE director_id IN (SELECT director_id FROM movies WHERE rating > 8);

  5. Запрос: Вывести список всех продуктов, у которых цена выше средней цены по всем продуктам. SELECT name FROM products WHERE price > (SELECT AVG(price) FROM products);

Похожие работы

Попробуй и другие функции

  • ИИ для любых учебных целей

    • Научит решать задачи

    • Поможет решать задачи

    • Исправит ошибки в решении

    • Ответит на вопросы за минуту

    Попробовать
  • База готовых рефератов

    • Свыше 1,2 млн работ

    • Больше 160 предметов

    • Работы написали студенты вместе с AI

    • База ежедневно обновляется

    Попробовать

Решения по другим предметам