mysql练习5

devtools/2024/11/14 15:18:19/

    数据准备    
    创建两张表:部门(dept)和员工(emp),并插入数据,代码如下    
    create table dept(    
    dept id int primary key auto increment comment'部门编号',    
    dept_name char(20)comment'部门名称'    
    );    
   insert into dept (dept_name) values('销售部'),('财务部'),('生产部'),('人事部');    



    create table emp(    
    emp_id int primary key auto_increment comment'员工号',    
emp name char(20) not null default '' comment'员工姓名', gender char(2) not null default '男'comment'性别',
birth datetime not null default'1990-1-1'comment'出生日期', salary decimal(10,2) not null default 0 comment'工资',
    address varchar(200) not null default '' comment'通讯地址',    
  dept_id int comment'部门编号'    
    );    



    create index idx name on emp(emp name);    
    create index idx birth on emp(birth);    
    create index idx deptid name on emp(dept id,emp name);    



   insert into emp (emp_name,gender,birth,salary,address,dept_id)    
    values('张晓红','女','1980-1-23',5800,'河南省郑州市中原路10号',1),    
    ('张静静','女','1987-10-3',5400,'河南省新乡市平原路38号',1),    
    ('王云飞',男','1992-11-15',5600,'河南省新乡市人民路28号',1),    
('王鹏飞',男','1987-10-1',6800,'河南省新乡市东明大道12号',1),

    '王大鹏',男,1989-2-11',5900,'河南省郑州市东风路15号',1),    
    ('王萌萌',    女','1986-12-30',5000,'河南省开封市五一路14号',2),    
    ('王大光','男','1988-11-8',6200,'河南省开封市八一路124号'2),    
    ('王小明',男','1998-1-3',4800,'河南省驻马店市雪松路128号',2),    
    ('王娜娜',    女    '1994-3-5',5200,'河南省驻马店市车站路2号',2),    
    ('刘云飞',男','1992-8-13',6800,'河南省南阳市民生路255号',3),    
    ('张陆军',男','1991-9-6',6200,'河南省南阳市张仲景路14号',3);    


   

1、创建视图v_emp_dept_id 1,查询销售部门的员工姓名和家庭住址

create v_emp_dept_id_1

as select emp_name,address

from emp inner join dept

on dept.dept_id = emp.dept_id

where emp.dept_id = (select dept_id from dept where dept_name = '销售部) ;

2、创建视图vempdept,查询销售部门员工姓名和家庭住址及部门名称。

create view v_emp_dept

as select emp_name,address,dept.dept_name

from emp inner join dept

on dept.dept_id = emp.dept_id

where dept_id = (select dept_id from dept where dept_name = '销售部') ;

3、创建视图v_dept_emp_count(dept_name,emp_count,avg_salay),统计每个部门人数并计算平均工资

create view v_dept_emp_count(dept_name,emp_count,avg_salay)

as select emp_name,count(1),avg(salary)

from emp inner join dept

on dept.dept_id = emp.dept_id

group by emp.dept_id;

4、修改视图v_emp_dept,查询销售部门员工姓名、家庭住址、工资和部门名称。

alter view v_emp_dept as

select emp.emp_name,emp.address,emp.salary,dept.dept_name

from   emp inner join dept

on dept.dept_id = emp.dept_id;

5、查看视图名称: 查看视图结构; 查看创建视图语句;

6、删除以上三个视图。

存储过程作业:

1、创建一个提取emp表所有员工工资和的存储过程s1

\d @

create procedure s1()

begin

select sum(salary) from emp;

end @

\d ;

call s1();

2、 调用存储过程s1

3、创建存储过程s2,实现输入员工姓名后返回员工的家庭住址。

\d @

create procedure s2(in sname char(20) ,out saddress char(200))

begin 

select address into saddress from emp where emp.emp_name = sname;

end @

\d ;

4、调用存储过程s2

call s2('王大光',@www);

select @www;

5、创建一个存储过程avg_sai,有3个参数,分别是dept,gender,接收平均工资,功能查询emp表dept

\d @

create procedure avg_sai(in a_dept int, in a_gender char(4),out  avg_salary decimal(10,2)

begin

select avg(salary) into avg_salary from emp

where dept=a_dept and gender=a_gender;

end @

6、调用存储过程avg sai

call avg_sai (1,'男',@avg_salary)

select avg_salary;

7、删除以上存储过程

drop procedure   avg_sai;

drop procedure   s1;

drop procedure       s2;


http://www.ppmy.cn/devtools/100758.html

相关文章

Cyberchef实用功能之-json解析美化和转换

本文将介绍如何使用cyberchef的json操作功能,根据自己的需求处理常见的json问题。 在网络安全日常的运营,护网行动,重保活动的过程中,经常需要查看多种平台的json格式日志,如下: 以json格式存储的防火墙日…

ruoyi-app前端在缓存中添加nick_name和user_id属性值

需求 ruoyi-app原生自带只有avatar、name、roles、permissions;在显示中,我们大多数需要nick_name、user_id;当然获取方式也可以通过name去调用接口查询,但我想偷个懒。 代码 代码已经调好的,复制即用;至…

调用ragflow api实现俩个模型根据知识库的内容来进行对话 简易版

调用ragflow接口实现俩个模型对话 简易版 用到的库流程代码参考文献 用到的库 requests 调用api 发送请求streamlit 做一个简单的页面json 解析接口返回的内容 流程 根据ragflow官方api文档中的内容,我们需要先将api键需要放到请求头中,然后再调用new…

量子计算与未来的渗透技术(壹)

第一篇:量子计算对渗透测试的潜在影响 1. 量子计算概述 量子计算的基本原理:介绍量子比特(qubits)、叠加态、纠缠态等量子计算的核心概念。量子计算对传统计算的优势:解释量子计算在处理复杂计算任务上的潜在优势&am…

ASP.NET Core 入门教程一 创建最小 API

构建最小 API,以创建具有最小依赖项的 HTTP API。 它们非常适合需要在 ASP.NET Core 中仅包括最少文件、功能和依赖项的微服务和应用。 本教程介绍使用 ASP.NET Core 生成最小 API 的基础知识。 启动 Visual Studio 2022 并选择“创建新项目”。 在“创建新项目”…

阿里云ubuntu系统安装jdk + tomcat

一、安装配置JDK 1.下载安装包 1.1安装地址 https://www.oracle.com/cn/java/technologies/downloads/ 注意: 下载的时间需要有oracle账号,可以注册;我们下载的是JDK8版本; 2.压缩文件传输到linux上面 2.1采用的为Xftp软件传…

windows核心编程 内核对象,创建进程(CreateProcess),管道(CreatePipe)

windows核心编程 内核对象,创建进程(CreateProcess),管道(CreatePipe) windows核心编程 内核对象,创建进程(CreateProcess),管道(CreatePipe&…

ptrade排坑日记——一键脚本报错,启动jupyterhub失败。

前言 今天要和大家分享的是在使用ptrade过程中遇见的问题——一键脚本报错,启动jupyterhub失败。 一、问题描述 server_operation.pyc-一键脚本报错,启动jupyterhub失败,jupyterhub.log报错: Traceback(most recent call last)…