结构构建Oracle的三级部门机构结构(oracle三级部门)

结构构建Oracle的三级部门机构结构

在企业管理体系中,部门和员工的结构构建是非常重要的一部分,特别是当企业规模较大时,将部门按照一定的层次进行划分,能够有效地提高管理效率和工作效率。在Oracle数据库中,可以使用表来构建企业的部门和员工结构,本文将介绍如何使用Oracle构建三级部门机构结构。

我们需要创建三个表:部门表、员工表和部门员工关联表。部门表包含以下字段:部门ID、部门名称、部门编码、上级部门ID,其中上级部门ID是指该部门的直接上级部门。员工表包含以下字段:员工ID、员工姓名、所属部门ID、职位、邮箱、电话。部门员工关联表包含以下字段:关联ID、部门ID、员工ID,用于关联部门和员工。

以下是部门表的创建语句:

“`sql

CREATE TABLE department (

dept_id NUMBER(8) PRIMARY KEY,

dept_name VARCHAR2(50),

dept_code VARCHAR2(50),

parent_dept_id NUMBER(8)

);


以下是员工表的创建语句:

```sql
CREATE TABLE employee (
emp_id NUMBER(8) PRIMARY KEY,
emp_name VARCHAR2(50),
dept_id NUMBER(8),
position VARCHAR2(50),
eml VARCHAR2(50),
phone VARCHAR2(50)
);

以下是部门员工关联表的创建语句:

“`sql

CREATE TABLE dept_emp (

rel_id NUMBER(8) PRIMARY KEY,

dept_id NUMBER(8),

emp_id NUMBER(8)

);


接下来,我们需要向这些表中插入数据。为了构建三级部门机构结构,我们需要先插入顶级部门的数据,再插入二级部门及其下属部门的数据,最后插入三级部门及其下属部门的数据。

以下是插入顶级部门的语句:

```sql
INSERT INTO department (dept_id, dept_name, dept_code, parent_dept_id)
VALUES (1, '公司总部', '001', NULL);

以下是插入二级部门的语句:

“`sql

INSERT INTO department (dept_id, dept_name, dept_code, parent_dept_id)

VALUES (2, ‘销售部’, ‘001001’, 1);

INSERT INTO department (dept_id, dept_name, dept_code, parent_dept_id)

VALUES (3, ‘生产部’, ‘001002’, 1);

INSERT INTO department (dept_id, dept_name, dept_code, parent_dept_id)

VALUES (4, ‘财务部’, ‘001003’, 1);

INSERT INTO department (dept_id, dept_name, dept_code, parent_dept_id)

VALUES (5, ‘人力资源部’, ‘001004’, 1);


以下是插入三级部门的语句:

```sql
INSERT INTO department (dept_id, dept_name, dept_code, parent_dept_id)
VALUES (6, '渠道销售部', '001001001', 2);

INSERT INTO department (dept_id, dept_name, dept_code, parent_dept_id)
VALUES (7, '直销部', '001001002', 2);
INSERT INTO department (dept_id, dept_name, dept_code, parent_dept_id)
VALUES (8, '工程部', '001002001', 3);
INSERT INTO department (dept_id, dept_name, dept_code, parent_dept_id)
VALUES (9, '品质部', '001002002', 3);
INSERT INTO department (dept_id, dept_name, dept_code, parent_dept_id)
VALUES (10, '财务管理部', '001003001', 4);
INSERT INTO department (dept_id, dept_name, dept_code, parent_dept_id)
VALUES (11, '预算管理部', '001003002', 4);
INSERT INTO department (dept_id, dept_name, dept_code, parent_dept_id)
VALUES (12, '人力资源管理部', '001004001', 5);
INSERT INTO department (dept_id, dept_name, dept_code, parent_dept_id)
VALUES (13, '招聘部', '001004002', 5);
INSERT INTO department (dept_id, dept_name, dept_code, parent_dept_id)
VALUES (14, '培训部', '001004003', 5);

现在,我们已经创建了部门表,并向其中插入了数据。接下来,我们需要创建员工表,并为每个部门插入若干个员工。以下是插入员工的语句:

“`sql

— 销售部

INSERT INTO employee (emp_id, emp_name, dept_id, position, eml, phone)

VALUES (1, ‘张三’, 2, ‘销售经理’, ‘zhansan@example.com’, ‘186×8888’);

INSERT INTO employee (emp_id, emp_name, dept_id, position, eml, phone)

VALUES (2, ‘李四’, 2, ‘销售主管’, ‘lisi@example.com’, ‘186×8889’);

INSERT INTO employee (emp_id, emp_name, dept_id, position, eml, phone)

VALUES (3, ‘王五’, 2, ‘销售人员’, ‘wangwu@example.com’, ‘186×8890’);

— 生产部

INSERT INTO employee (emp_id, emp_name, dept_id, position, eml, phone)

VALUES (4, ‘小李’, 3, ‘项目经理’, ‘xiaoli@example.com’, ‘186×8891’);

INSERT INTO employee (emp_id, emp_name, dept_id, position, eml, phone)

VALUES (5, ‘小张’, 3, ‘业务员’, ‘xiaozhang@example.com’, ‘186×8892’);

— 财务部

INSERT INTO employee (emp_id, emp_name, dept_id, position, eml, phone)

VALUES (6, ‘王经理’, 4, ‘财务经理’, ‘wangjingli@example.com’, ‘186×8893’);

INSERT INTO employee (emp_id, emp_name, dept_id, position, eml, phone)

VALUES (7, ‘小王’, 4, ‘财务主管’, ‘xiaowang@example.com’, ‘186×8894’);

INSERT INTO employee (emp_id, emp_name, dept_id, position, eml, phone)

VALUES (8, ‘小李’, 4, ‘会计’, ‘xiaoli@example.com’, ‘186×8895’);

— 人力资源部

INSERT INTO employee (emp_id, emp_name, dept_id, position, eml, phone)

VALUES (9, ‘张主管’, 5, ‘人力资源经理’, ‘zhangzhuguan@example.com’, ‘186×8896’);

INSERT INTO employee (emp_id, emp_name, dept_id, position, eml, phone)

VALUES (10, ‘小张’, 5, ‘招聘主管’, ‘xiaozhang@example.com’, ‘186×8897’);


我们需要将员工表和部门员工关联表关联起来,以便能够查询每个部门的员工信息。以下是插入部门员工关联数据的语句:

```sql
-- 销售部
INSERT INTO dept_emp (rel_id, dept_id, emp_id)
VALUES (1, 2, 1);
INSERT INTO dept_emp (rel_id, dept_id, emp_id)
VALUES (2, 2, 2);
INSERT INTO dept_emp (rel_id, dept_id, emp_id)
VALUES (3, 2, 3);
-- 生产部
INSERT INTO dept_emp (rel_id, dept_id, emp_id)
VALUES (4, 3, 4);

INSERT INTO dept_emp (rel_id, dept_id, emp_id)
VALUES (5, 3, 5);
-- 财务部
INSERT INTO dept_emp (rel_id, dept_id, emp_id)
VALUES (6, 4, 6);

INSERT INTO dept_emp (rel_id, dept_id, emp_id)
VALUES (7, 4, 7);
INSERT INTO dept_emp (rel_id, dept_id, emp_id)
VALUES (8, 4, 8);
-- 人力资源部
INSERT INTO dept_emp (rel_id, dept_id, emp_id)
VALUES (9, 5, 9);

INSERT INTO dept_emp (rel_id, dept_id, emp_id)
VALUES (10, 5, 10);

现在,我们已经成功地构建了一个三级部门机构结构,并向其中插入了部门和员工数据。接下来,我们可以通过联合查询部门表、员工表和部门


数据运维技术 » 结构构建Oracle的三级部门机构结构(oracle三级部门)