右外连接查询用户等级

MySQLMySQLBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本项目中,你将学习如何创建数据库、表,并执行右外连接查询以根据用户分数获取所有用户的等级。

👀 预览

数据库项目预览图片

🎯 任务

在本项目中,你将学习:

  • 如何使用sudo命令无密码访问MySQL
  • 如何创建数据库和表
  • 如何向表中插入数据
  • 如何执行右外连接查询以获取所有用户的等级

🏆 成果

完成本项目后,你将能够:

  • 理解MySQL数据库管理的基础知识
  • 在数据库中创建和操作表
  • 执行复杂的SQL查询,如右外连接,以检索数据
  • 将你的SQL知识应用于实际场景,如视频或音频应用中的用户管理

访问MySQL并创建数据库

在这一步中,你将学习如何使用sudo命令无密码访问MySQL,并创建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文件。

运行查询

在这一步中,你将在MySQL中运行getLevel.sql脚本。

  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中练习更多实验以提升你的技能。