MySQL实验

题目数据

USE dept_emp;    

CREATE TABLE dept (
    deptno INT(2) NOT NULL COMMENT '部门编号',
    dname VARCHAR (15) COMMENT '部门名称',
    loc VARCHAR (20) COMMENT '地理位置' 
);

-- 添加主键
ALTER TABLE dept ADD PRIMARY KEY (deptno);

-- 添加数据
INSERT INTO dept (deptno,dname,loc)VALUES (10,'财务部','高新四路');
INSERT INTO dept (deptno,dname,loc)VALUES (20,'人事部','科技二路');
INSERT INTO dept (deptno,dname,loc)VALUES (30,'销售部','长安区');
INSERT INTO dept (deptno,dname,loc)VALUES (40,'运输部','雁塔区');

-- ---------------------------------------------------------------
CREATE TABLE emp(
    empno INT(4) NOT NULL COMMENT '员工编号',
    ename VARCHAR(10) COMMENT '员工名字',
    job VARCHAR(10) COMMENT '职位',
    mgr INT(4) COMMENT '上司',
    hiredate DATE COMMENT '入职时间',
    sal INT(7) COMMENT '基本工资',
    comm INT(7) COMMENT '补贴',
    deptno INT(2) COMMENT '所属部门编号'
);

-- 添加主键
ALTER TABLE emp ADD PRIMARY KEY (empno);

-- 添加外键约束
ALTER TABLE emp ADD CONSTRAINT f_ed_key
FOREIGN KEY (deptno) 
REFERENCES dept(deptno);

INSERT INTO `emp` VALUES('7369','张倩','办事员','7902','2002-12-17','820',NULL,'20');
INSERT INTO `emp` VALUES('7499','刘博','售货员','7698','1992-02-20','1900','300','30');
INSERT INTO `emp` VALUES('7521','李兴','售货员','7698','1995-07-22','1250','500','30');
INSERT INTO `emp` VALUES('7566','李雷','人事部长','7839','1991-04-02','975',NULL,'20');
INSERT INTO `emp` VALUES('7654','刘浩','售货员','7698','1991-09-28','1250','1400','30');
INSERT INTO `emp` VALUES('7698','刘涛','销售部长','7839','1997-05-01','2850',NULL,'30');
INSERT INTO `emp` VALUES('7782','华仔','人事部长','7839','1995-06-09','2450',NULL,'10');
INSERT INTO `emp` VALUES('7788','张飞','人事专员','7566','1998-04-19','3000',NULL,'20');
INSERT INTO `emp` VALUES('7839','马晓云','董事长',NULL,'1991-11-17','5000',NULL,'10');
INSERT INTO `emp` VALUES('7844','马琪','售货员','7698','1996-09-08','1500','0','30');
INSERT INTO `emp` VALUES('7876','李涵','办事员','7788','1997-05-23','1100',NULL,'20');
INSERT INTO `emp` VALUES('7900','李小涵','销售员','7698','1993-2-13','950',NULL,'30');
INSERT INTO `emp` VALUES('7902','张三','人事组长','7566','1992-10-08','3000',NULL,'20');
INSERT INTO `emp` VALUES('7934','张三丰','人事长','7782','1997-06-23','1300',NULL,'10');

-- ---------------------------------------------------------------------
  
CREATE TABLE salgrade(
grade INT (10) COMMENT '工资等级',
losal INT (10) COMMENT '最低限额',
hisal INT (10) COMMENT '最高限额'
);

INSERT INTO salgrade (grade, losal, hisal)VALUES (1, 700, 1200);
INSERT INTO salgrade (grade, losal, hisal)VALUES (2, 1201, 1400);
INSERT INTO salgrade (grade, losal, hisal)VALUES (3, 1401, 2000);
INSERT INTO salgrade (grade, losal, hisal)VALUES (4, 2001, 3000);
INSERT INTO salgrade (grade, losal, hisal)VALUES (5, 3001, 9999);

要求

USE dept_emp; 

-- 单表查询
-- 1.选择部门30中的所有员工

-- 2.列出所有办事员的姓名,编号和部门编号

-- 3.找出佣金高于薪金的员工

-- 4.找出没有佣金的员工

-- 5.找出佣金高于薪金的60%的员工

-- 6.找出部门10中所有人事部长和部门20中所有办事员的详细资料

-- 7.找出收取佣金的员工

-- 8.找出不收取佣金或收取的佣金低于100的员工

-- 9.找出姓张的员工的信息

-- 10.显示员工的姓名和受雇日期,新的员工排在最前面

-- 11.按工作的降序排序,若工作相同则按薪金排序

-- 12.查出不姓刘的员工的信息

-- 13.取出姓李的员工

-- 多表查询
-- 1. 查询出每一位雇员的编号、姓名、职位、部门名称、位置

-- 2.要求查询出每一位雇员的姓名、职位、领导的姓名

-- 3.查询出每个雇员的编号、姓名、基本工资、职位、领导的姓名、部门名称及位置。

-- 4.列出在部门"销售部"工作的员工的姓名,假定不知道销售部的部门编号。

 

-- 5.列出与"李兴"从事相同工作的所有员工。

-- 6.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。

 

-- 7.列出受雇日期早于其直接上级的所有员工。

-- 分组函数查询
-- 1.按照部门编号分组,求出每个部的人数,平均工资

-- 2.按照职位分组,求出每个职位的最高和最低工资

-- 3.计算出每个各职位的平均工资

-- 4.查询出每个部门的名称、部门的人数、平均工资

-- 5.要求统计出每个部门的详细信息,并且要求这些部门的平均工资高于2000;

-- 6.要求查询出工资比华仔还要高的全部雇员信息

-- 7.要求查询出高于公司平均工资的全部雇员信息

-- 8.查询出每个部门的编号、名称、位置、部门人数、平均工资

-- 9.列出至少有一个员工的所有部门。 

-- 等级查询
-- 1.查询每个工资等级各有多少员工

-- 2.查询部门中(所有人)的平均工资等级

### 关于MySQL实验报告的概述 在构建和撰写MySQL实验报告时,通常会涉及以下几个方面: - **实验目的**:明确说明本次实验的目标是什么。例如,测试新版本MySQL性能改进、评估索引优化效果等。 - **环境搭建**:描述用于执行实验的具体软硬件条件,包括操作系统类型、MySQL服务器版本以及任何必要的客户端工具或库文件[^2]。 - **数据准备**:介绍所使用的样本数据集及其特征;如果适用的话,还应提及创建这些数据的方法论。 - **操作流程**:详尽记录每一步骤的操作细节,确保他人可以按照相同方式重现整个过程。 - **结果展示**:利用图表等形式直观呈现查询响应时间、吞吐量变化趋势等关键指标的表现情况。 - **结论总结**:基于上述发现得出最终判断,并对未来研究方向给出建议。 #### MySQL 实验报告模板实例 ```plaintext 标题:MySQL 性能调优实验报告 一、前言 随着业务增长,现有数据库面临访问延迟增加的问题。为此开展此次针对MySQL 8.0 版本下的性能调整专项试验... 二、准备工作 1. 安装最新版 MySQL Server 和 Workbench; 2. 配置好 JDBC 连接池参数以支持并发连接需求... 三、具体实施步骤 A. 创建测试用表结构并填充随机生成的数据行数达到百万级别规模; B. 对选定字段建立多种类型的索引来观察其对 SELECT 查询效率的影响程度差异; C. 使用 EXPLAIN 分析语句查看 SQL 执行计划的变化规律... 四、数据分析与讨论 通过对比不同场景下各项统计数值可以看出,在适当情况下合理运用覆盖索引能够显著降低磁盘I/O次数从而加快检索速度约30%左右... 五、结束语 综上所述,经过一系列针对性措施之后确实有效缓解了之前存在的瓶颈现象。后续工作中将继续探索更多可行方案进一步提升整体服务水平质量。 ``` #### 结果分析要点 当涉及到具体的实验结果分析部分时,应该注重以下几点: - 尽可能采用图形化手段辅助表达复杂关系,如柱状图比较各组间平均值大小、折线图追踪随时间推移而产生的波动轨迹等。 - 提取具有代表性的案例作为典型事例深入剖析背后原理机制。 - 讨论可能出现异常状况的原因所在,并尝试提出解决方案思路。 #### 下载资源推荐 对于希望获取现成范本的同学而言,网络上有不少公共资源可供下载学习。例如 GitHub 上有许多开源项目包含了详细的文档资料,其中不乏高质量的教学材料。另外,某些学术期刊网站也会公开发布过往发表过的论文全文链接供读者免费查阅参考[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值