Запрос с правым внешним соединением для определения уровня пользователя

MySQLMySQLBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом проекте вы научитесь создавать базу данных, таблицы и выполнять запрос с правым внешним соединением для получения уровня всех пользователей на основе их оценок.

👀 Предварительный просмотр

Изображение предварительного просмотра проекта базы данных

🎯 Задачи

В этом проекте вы научитесь:

  • Как обращаться к MySQL с использованием команды sudo без пароля
  • Как создавать базу данных и таблицы
  • Как вставлять данные в таблицы
  • Как выполнять запрос с правым внешним соединением для получения уровня всех пользователей

🏆 Достижения

После завершения этого проекта вы сможете:

  • Разобраться в основах управления базой данных MySQL
  • Создавать и манипулировать таблицами в базе данных
  • Выполнять сложные запросы SQL, такие как правые внешние соединения, для извлечения данных
  • Применять свои знания SQL в реальных сценариях, таких как управление пользователями в видео- или аудио-приложении

Доступ к MySQL и создание базы данных

В этом шаге вы научитесь обращаться к MySQL с использованием команды sudo без пароля и создавать базу данных vip.

  1. Запустите службу MySQL:
sudo service mysql start
  1. Подключитесь к MySQL:
sudo mysql
  1. Создайте базу данных vip:
CREATE SCHEMA vip CHARSET UTF8;
USE vip;

Теперь вы успешно создали базу данных vip.

Создание таблиц и вставка данных

В этом шаге вы создадите таблицы level и user и вставите в них данные.

  1. Создайте таблицу level:
CREATE TABLE level (
name VARCHAR(64) NOT NULL,
low INT NOT NULL,
high INT NOT NULL
);
  1. Вставьте данные в таблицу level:
INSERT INTO level VALUES
('L1', 0, 9),
('L2', 10, 99),
('L3', 100, 499),
('L4', 500, 999);
  1. Создайте таблицу user:
CREATE TABLE user (
name VARCHAR(32) NOT NULL,
score INT NOT NULL
);
  1. Вставьте данные в таблицу user:
INSERT INTO user VALUES
('Jane', 5),
('John', 15),
('Mary', 155),
('David', 9999);

Теперь вы успешно создали таблицы и вставили в них данные.

Выполнить запрос с правым внешним соединением

В этом шаге вы выполните запрос с правым внешним соединением, чтобы получить уровень всех пользователей.

  1. Откройте файл getLevel.sql и добавьте следующий запрос:
SELECT u.name AS `User`, l.name AS `Level`
FROM `level` l
RIGHT JOIN `user` u ON u.score BETWEEN l.low AND l.high;

Этот запрос выполняет правое внешнее соединение между таблицами level и user и извлекает имя пользователя и соответствующее имя уровня.

  1. Сохраните файл getLevel.sql.

Запустить запрос

В этом шаге вы запустите скрипт getLevel.sql в MySQL.

  1. Запустите скрипт:
SOURCE /home/labex/project/getLevel.sql;

Вы должны увидеть следующий вывод:

MariaDB [vip]> SOURCE /home/labex/project/getLevel.sql;
+-------+-------+
| User  | Level |
+-------+-------+
| Jane  | L1    |
| John  | L2    |
| Mary  | L3    |
| David | NULL  |
+-------+-------+
4 rows in set (0.000 sec)

Вывод показывает имя пользователя и соответствующее имя уровня для каждого пользователя. Если оценка пользователя не попадает в любой из диапазонов уровней, уровень отображается как NULL.

Поздравляем! Вы успешно завершили проект, создав базу данных, таблицы, вставив данные и выполнив запрос с правым внешним соединением, чтобы получить уровень всех пользователей.

✨ Проверить решение и практиковаться

Резюме

Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.