介绍
在本项目中,你将学习如何使用 MySQL 创建一个人事管理系统数据库。该数据库将存储员工信息、工作单位信息和居住详情。
👀 预览
MariaDB [companySys]> DESC company;
+--------------+-------------+------+-----+---------+-------+
| 字段 | 类型 | 空值 | 键 | 默认值 | 额外 |
+--------------+-------------+------+-----+---------+-------+
| company_name | varchar(50) | 否 | 主键| NULL | |
| city | varchar(10) | 是 | | NULL | |
+--------------+-------------+------+-----+---------+-------+
2 rows in set (0.001 sec)
🎯 任务
在本项目中,你将学习:
- 如何使用
sudo命令访问 MySQL - 如何创建一个名为
companySys的数据库 - 如何创建三个表:
company、work和employ - 如何为每个表设置适当的主键和外键约束
- 如何向表中插入数据
🏆 成果
完成本项目后,你将能够:
- 理解数据库创建和管理的基础知识
- 在关系型数据库上实现 CRUD(创建、读取、更新、删除)操作
- 使用主键和外键建立表之间的关系
- 在人事管理系统数据库中管理和操作数据
访问 MySQL 并创建数据库
在本步骤中,你将学习如何使用sudo命令访问 MySQL 并创建companySys数据库。
- 打开终端并运行以下命令启动 MySQL 服务:
sudo service mysql start
- 使用
sudo命令访问 MySQL:
sudo mysql
- 打开
creatComDatabase.sql文件。 - 在
creatComDatabase.sql文件中,创建字符集为 UTF-8 的companySys数据库:
CREATE DATABASE IF NOT EXISTS companySys DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- 使用
companySys数据库:
USE companySys;
创建表
在本步骤中,你将创建三个表:company、work和employ。
- 打开
creatComDatabase.sql文件,并按顺序在该文件中创建以下表。 - 创建
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;
- 创建
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;
- 创建
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;
插入数据
在本步骤中,你将把数据插入到三个表中。
- 打开
creatComDatabase.sql文件,并从上一步继续,添加以下 SQL 语句。 - 向
company表中插入数据:
INSERT INTO company (company_name, city) VALUES
('ABC Company', '纽约'),
('LabEx', '伦敦'),
('Company 3', '巴黎');
- 向
work表中插入数据:
INSERT INTO work (per_name, company_name, salary) VALUES
('John', 'ABC Company', 5000.00),
('Jane', 'LabEx', 6000.00),
('Mary', 'Company 3', 5500.00);
- 向
employ表中插入数据:
INSERT INTO employ (id, person_name, street, city) VALUES
(1, 'John', '123 Main Street', '纽约'),
(2, 'Jane', '456 Park Avenue', '伦敦'),
(3, 'Mary', '789 Broadway', '巴黎');
验证数据库
在本步骤中,你将通过描述表来验证数据库。
- 在 MySQL 客户端中,运行以下命令来执行 SQL 脚本:
MariaDB [(none)]> SOURCE /home/labex/project/creatComDatabase.sql;
- 描述
company表:
DESC company;
MariaDB [companySys]> DESC company;
+--------------+-------------+------+-----+---------+-------+
| 字段 | 类型 | 空值 | 键 | 默认值 | 额外 |
+--------------+-------------+------+-----+---------+-------+
| company_name | varchar(50) | 否 | 主键| NULL | |
| city | varchar(10) | 是 | | NULL | |
+--------------+-------------+------+-----+---------+-------+
2 rows in set (0.001 sec)
- 描述
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)
- 描述
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 中练习更多实验以提升技能。
