1. 创建表结构

​(1) 新员工表(employees)​
CREATE TABLE employees (    
    emp_id INT PRIMARY KEY AUTO_INCREMENT,  -- 员工ID(主键)    
    emp_name VARCHAR(50) NOT NULL,         -- 员工姓名    
    dept_id INT,                              -- 部门ID(外键)    
    hire_date DATE                           -- 入职日期
);
​(2) 部门表(departments
CREATE TABLE departments (    
    dept_id INT PRIMARY KEY AUTO_INCREMENT,  -- 部门ID(主键)    
    dept_name VARCHAR(50) NOT NULL             -- 部门名称
);

2. 插入数据

​(1) 插入部门数
INSERT INTO departments (dept_name) VALUES('技术部'),('市场部'),('财务部');
​(2) 插入员工数据
INSERT INTO employees (emp_name, dept_id, hire_date) VALUES('张三', 1, '2023-01-15'),('李四', 2, '2023-03-20'),('王五', 1, '2023-02-28'),('赵六', 3, '2023-04-10');

3. 创建视图

​(1) 员工信息视图(含部门和入职时间)
CREATE VIEW vw_employee_info ASSELECT     e.emp_id,    e.emp_name,    d.dept_name,    e.hire_dateFROM     employees eJOIN     departments d ON e.dept_id = d.dept_id;
​(2) 部门人数统计视图
CREATE VIEW vw_dept_count ASSELECT     d.dept_name,    COUNT(e.emp_id) AS total_employeesFROM     departments dLEFT JOIN     employees e ON d.dept_id = e.dept_idGROUP BY     d.dept_name;

4. 查询数据

​(1) 查询员工信息视图
SELECT * FROM vw_employee_info;
​(2) 查询部门人数统计视图
SELECT * FROM vw_dept_count;
​(3) 带条件的查询(例如:筛选技术部员工)
SELECT emp_name,hire_dateFROM vw_employee_infoWHERE dept_name='技术部';

Logo

一站式 AI 云服务平台

更多推荐