知识问答
如何通过Mysql数据库关联练习提升数据库操作技能?
2025-09-22 02:45:29
来源:互联网转载
MySQL数据库关联练习
1. 练习背景
本练习旨在通过实际的数据库操作,加深对MySQL数据库中关联查询(JOIN)的理解和应用,我们将创建两个表,并通过关联这两个表来执行查询。
2. 数据库环境
数据库引擎:InnoDB
数据库版本:MySQL 5.7+
3. 创建表
创建员工表CREATE TABLE employees ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT NOT NULL, department_id INT, FOREIGN KEY (department_id) REFERENCES departments(id));创建部门表CREATE TABLE departments ( id INT AUTO_INCREMENT PRIMARY KEY, department_name VARCHAR(50) NOT NULL);
4. 插入数据
插入部门数据insert INTO departments (department_name) VALUES ('HR'), ('IT'), ('Finance'), ('Marketing');插入员工数据insert INTO employees (name, age, department_id) VALUES('Alice', 30, 1),('Bob', 25, 2),('Charlie', 35, 1),('David', 40, 3),('Eve', 28, 4),('Frank', 22, 2),('Grace', 33, 3);
5. 关联查询练习
5.1 查询所有员工的姓名和所属部门名称
select e.name AS EmployeeName, d.department_name AS DepartmentNameFROM employees eJOIN departments d ON e.department_id = d.id;
5.2 查询所有IT部门的员工信息
select *FROM employees eJOIN departments d ON e.department_id = d.idWHERE d.department_name = 'IT';
5.3 查询所有部门名称以及该部门员工的平均年龄
select d.department_name, AVG(e.age) AS AverageAgeFROM employees eJOIN departments d ON e.department_id = d.idGROUP BY d.department_name;
5.4 查询没有员工的部门名称
select d.department_nameFROM departments dLEFT JOIN employees e ON d.id = e.department_idWHERE e.id IS NULL;
6. 总结
通过上述练习,我们学习了如何使用JOIN语句进行数据库的关联查询,以及如何通过不同的JOIN类型(如INNER JOIN、LEFT JOIN等)来获取所需的数据,这些技能对于日常的数据库操作和数据查询非常重要。
下一篇:域名过期了还可以续费吗?