人事管理系统数据库设置

SQLBeginner
立即练习

介绍

在本项目中,你将学习如何使用 MySQL 创建一个人事管理系统数据库。该数据库将存储员工信息、工作单位信息和居住详情。

👀 预览

MariaDB [companySys]> DESC company;
+--------------+-------------+------+-----+---------+-------+
| 字段         | 类型        | 空值 | 键  | 默认值  | 额外  |
+--------------+-------------+------+-----+---------+-------+
| company_name | varchar(50) | 否   | 主键| NULL    |       |
| city         | varchar(10) | 是   |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+
2 rows in set (0.001 sec)

🎯 任务

在本项目中,你将学习:

  • 如何使用sudo命令访问 MySQL
  • 如何创建一个名为companySys的数据库
  • 如何创建三个表:companyworkemploy
  • 如何为每个表设置适当的主键和外键约束
  • 如何向表中插入数据

🏆 成果

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

  • 理解数据库创建和管理的基础知识
  • 在关系型数据库上实现 CRUD(创建、读取、更新、删除)操作
  • 使用主键和外键建立表之间的关系
  • 在人事管理系统数据库中管理和操作数据

访问 MySQL 并创建数据库

在本步骤中,你将学习如何使用sudo命令访问 MySQL 并创建companySys数据库。

  1. 打开终端并运行以下命令启动 MySQL 服务:
sudo service mysql start
  1. 使用sudo命令访问 MySQL:
sudo mysql
  1. 打开creatComDatabase.sql文件。
  2. creatComDatabase.sql文件中,创建字符集为 UTF-8 的companySys数据库:
CREATE DATABASE IF NOT EXISTS companySys DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  1. 使用companySys数据库:
USE companySys;
✨ 查看解决方案并练习

创建表

在本步骤中,你将创建三个表:companyworkemploy

  1. 打开creatComDatabase.sql文件,并按顺序在该文件中创建以下表。
  2. 创建company表:
CREATE TABLE IF NOT EXISTS company (
  company_name varchar(50) NOT NULL,
  city varchar(10),
  PRIMARY KEY (company_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  1. 创建work表:
CREATE TABLE IF NOT EXISTS work (
  per_name varchar(10) NOT NULL,
  company_name varchar(50),
  salary decimal(10,2),
  PRIMARY KEY (per_name),
  FOREIGN KEY (company_name) REFERENCES company(company_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  1. 创建employ表:
CREATE TABLE IF NOT EXISTS employ (
  id int NOT NULL,
  person_name varchar(10),
  street varchar(100),
  city varchar(10),
  PRIMARY KEY (id),
  FOREIGN KEY (person_name) REFERENCES work(per_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
✨ 查看解决方案并练习

插入数据

在本步骤中,你将把数据插入到三个表中。

  1. 打开creatComDatabase.sql文件,并从上一步继续,添加以下 SQL 语句。
  2. company表中插入数据:
INSERT INTO company (company_name, city) VALUES
  ('ABC Company', '纽约'),
  ('LabEx', '伦敦'),
  ('Company 3', '巴黎');
  1. work表中插入数据:
INSERT INTO work (per_name, company_name, salary) VALUES
  ('John', 'ABC Company', 5000.00),
  ('Jane', 'LabEx', 6000.00),
  ('Mary', 'Company 3', 5500.00);
  1. employ表中插入数据:
INSERT INTO employ (id, person_name, street, city) VALUES
  (1, 'John', '123 Main Street', '纽约'),
  (2, 'Jane', '456 Park Avenue', '伦敦'),
  (3, 'Mary', '789 Broadway', '巴黎');
✨ 查看解决方案并练习

验证数据库

在本步骤中,你将通过描述表来验证数据库。

  1. 在 MySQL 客户端中,运行以下命令来执行 SQL 脚本:
MariaDB [(none)]> SOURCE /home/labex/project/creatComDatabase.sql;
  1. 描述company表:
DESC company;
MariaDB [companySys]> DESC company;
+--------------+-------------+------+-----+---------+-------+
| 字段         | 类型        | 空值 | 键  | 默认值  | 额外  |
+--------------+-------------+------+-----+---------+-------+
| company_name | varchar(50) | 否   | 主键| NULL    |       |
| city         | varchar(10) | 是   |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+
2 rows in set (0.001 sec)
  1. 描述employ表:
DESC employ;
MariaDB [companySys]> DESC employ;
+-------------+--------------+------+-----+---------+-------+
| 字段        | 类型         | 空值 | 键  | 默认值  | 额外  |
+-------------+--------------+------+-----+---------+-------+
| id          | int(11)      | 否   | 主键| NULL    |       |
| person_name | varchar(10)  | 是   | 索引| NULL    |       |
| street      | varchar(100) | 是   |     | NULL    |       |
| city        | varchar(10)  | 是   |     | NULL    |       |
+-------------+--------------+------+-----+---------+-------+
4 rows in set (0.001 sec)
  1. 描述work表:
DESC work;
MariaDB [companySys]> DESC work;
+--------------+---------------+------+-----+---------+-------+
| 字段         | 类型          | 空值 | 键  | 默认值  | 额外  |
+--------------+---------------+------+-----+---------+-------+
| per_name     | varchar(10)   | 否   | 主键| NULL    |       |
| company_name | varchar(50)   | 是   | 索引| NULL    |       |
| salary       | decimal(10,2) | 是   |     | NULL    |       |
+--------------+---------------+------+-----+---------+-------+
3 rows in set (0.001 sec)

你现在已经成功创建了人事管理系统数据库并插入了数据。恭喜!

✨ 查看解决方案并练习

总结

恭喜!你已完成本项目。你可以在 LabEx 中练习更多实验以提升技能。