MySQL第六次作业

一、创建部门表

指令:

mysql> CREATE TABLE dept (
    ->  dept_id INT PRIMARY KEY AUTO_INCREMENT COMMENT '部门编号',
    -> dept_name CHAR(20) COMMENT '部门名称'
    -> );

演示:

二、插入部门数据

指令:

mysql> INSERT INTO dept (dept_name) VALUES
    -> ('销售部'),
    -> ('财务部'),
    -> ('生产部'),
    -> ('人事部');

演示:

三、创建员工表

指令:

mysql> 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 DATE NOT NULL DEFAULT '1990-01-01' COMMENT '出生日期',
    -> salary DECIMAL(10,2) NOT NULL DEFAULT 0 COMMENT '工资',
    -> address VARCHAR(200) NOT NULL DEFAULT '' COMMENT '通讯地址',
    -> dept_id INT COMMENT '部门编号',
    -> FOREIGN KEY (dept_id) REFERENCES dept(dept_id)
    -> );

演示:

四、创建索引

指令:

mysql> CREATE INDEX idx_name ON emp(emp_name);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> CREATE INDEX idx_birth ON emp(birth);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> CREATE INDEX idx_deptid_name ON emp(dept_id, emp_name);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

演示:

五、插入员工数据

指令:

mysql> INSERT INTO emp (emp_name, gender, birth, salary, address, dept_id) VALUES
    -> ('张晓红', '女', '1980-01-23', 5800, '河南省郑州市中原路10号', 1),
    -> ('张静静', '女', '1987-10-03', 5400, '河南省新乡市平原路38号', 1),
    -> ('王云飞', '男', '1992-11-15', 5600, '河南省新乡市人民路28号', 1),
    -> ('王鹏长', '男', '1987-10-01', 6800, '河南省新乡市东明大道12号', 1),
    -> ('王大鹏', '男', '1989-02-11', 5900, '河南省郑州市东风路15号', 1),
    -> ('王萌萌', '女', '1986-12-30', 5000, '河南省开封市五一路14号', 2),
    -> ('王大光', '男', '1988-11-08', 6200, '河南省开封市八一路124号', 2),
    -> ('王小明', '男', '1998-01-03', 4800, '河南省驻马店市雪松路128号', 2),
    -> ('王娜娜', '女', '1994-03-05', 5200, '河南省驻马店市车站路2号', 2),
    -> ('刘云飞', '男', '1992-08-13', 6800, '河南省南阳市民生路255号', 3),
    -> ('田田', '男', '1991-09-06', 6200, '河南省南阳市张仲景路14号', 3);

演示:

六、视图练习

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

指令:

mysql> create view v_emp_dept_id_1 as
    -> select emp_name, address
    -> from emp
    -> where dept_id = (select dept_id from dept where dept_name = '销售部');

演示:

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

指令:

mysql> create view v_emp_dept as
    -> select e.emp_name, e.address, d.dept_name
    -> from emp e
    -> join dept d on e.dept_id = d.dept_id
    -> where d.dept_name = '销售部';

演示:

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

指令:

mysql> create view v_dept_emp_count as
    -> select d.dept_name, count(e.emp_id) as emp_count, avg(e.salary) as avg_salary
    -> from dept d
    -> left join emp e on d.dept_id = e.dept_id
    -> group by d.dept_name;

演示:

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

首先,我们需要删除现有的视图,然后重新创建它:

drop view if exists v_emp_dept;

指令:

mysql> create view v_emp_dept as
    -> select e.emp_name, e.address, e.salary, d.dept_name
    -> from emp e
    -> join dept d on e.dept_id = d.dept_id
    -> where d.dept_name = '销售部';

演示:

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

指令:

查看所有视图名称:

show full tables in homework where table_type like 'view';

查看视图结构:

describe v_emp_dept_id_1;
describe v_emp_dept;
describe v_dept_emp_count;

演示:

查看创建视图语句:

指令:

show create view v_emp_dept_id_1;
show create view v_emp_dept;
show create view v_dept_emp_count;

演示:

6、删除以上三个视图;

指令:

drop view if exists v_emp_dept_id_1;
drop view if exists v_emp_dept;
drop view if exists v_dept_emp_count;

演示:

七、存储过程练习

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

指令:

delimiter //
create procedure s1()
begin
select sum(salary) as total_salary from emp;
end //
delimiter ;

演示:

2、调用存储过程s1;

指令:

call s1();

演示:

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

指令:

delimiter //
create procedure s2(in emp_name_input char(20))
begin
select address
from emp
where emp_name = emp_name_input;
end //
delimiter ;

演示:

4、调用存储过程s2;

指令:

 call s2('张晓红');

演示:

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

指令:

delimiter //
create procedure avg_sai(in dept int, in gen char(2), out avg_salary decimal(10,2))
begin
select avg(salary)
into avg_salary
from emp
where dept_id = dept and gender = gen;
end //
delimiter ;

演示:

6、调用存储过程avg_sai;

指令:

set @avg_salary = 0;
call avg_sai(1,'男', @avg_salary);
select @avg_salary as average_salary;

演示:

7、删除以上存储过程;

指令:

mysql> drop procedure if exists s1;
mysql> drop procedure if exists s2;
mysql>  drop procedure if exists avg_sai;

演示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/662624.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何使用GPT-4o?如何使用 GPT-4o API?

如何使用GPT-4o? GPT-4o 也可以通过 ChatGPT 界面使用 如何使用 GPT-4o API 新的 GPT-4o 模型遵循 OpenAI 现有的聊天完成 API,使其向后兼容且易于使用。 ​ 如何升级GPT4Plus? 升级ChatGPTPLSU4需要一张虚拟卡,点击获取​​​…

vue项目集成萤石云在Web系统中实现实时摄像头监控及控制功能

需求 需求: 开发人员在产线上放置一个萤石摄像头,前端在可视化大屏上实时监控,且控制左右上下功能。 效果 萤石云接入web前期准备工作 阅读萤石云API文档:萤石云开放平台开发者文档 阅读萤石云控制API文档:萤石云摄…

企业电脑加密系统是如何发展的,今天最可靠的电脑加密系统是什么

企业电脑加密系统历经了几十年的发展,如今技术已经逐渐成熟,加密强度和防泄密效果越来越显著,那么它是怎么发展的,以及当今使用的加密技术是什么呢? 一、发展历程 1.早期探索阶段: 时间:上世纪…

SELINUX=enforcing时无法启动httpd服务的解决方案(semanage命令以及setroubleshoot-server插件的妙用)

一、问题描述: 当/etc/selinux/conf被要求必须是SELINUXenforcing,不被允许使用setenforce 0宽松模式 我们启动httpd就会报错: Job for httpd.service failed because the control process exited with error code. See "systemctl s…

在outlook的邮件中插入HTML;HTML模板获取;页面组态手动生成HTML

本文介绍如何在outlook发送邮件时,在邮件中插入HTML,此HTML可以从获取模板自行进行修改。 文章目录 一、下载HTML模板(或自己制作好HTML文件)二、outlook新增宏三、新建邮件,插入HTML四、通过图像化页面组态手动生成HT…

sprongboot+vue 游泳馆管理系统

游泳馆管理系统 spring bootvue 主要有游泳课程预约、网上购票、教练预约、游泳器材管理、会员管理等功能; 1、管理员 登录、修改密码 购票管理:查看订单、删除订单、修改订单 教练管理:教练信息查询、修改 课程信息:增删改查课程…

2024-5-29 石群电路-17

2024-5-29,星期三,17:26,天气:晴,心情:晴.今天又是阳光明媚的一天,没有什么特别的事情发生,给女朋友做了好吃的,吃了西瓜,加油学习,嘻嘻嘻~~~~ 今…

JVM之垃圾判断的详细解析

垃圾判断 垃圾介绍 垃圾:如果一个或多个对象没有任何的引用指向它了,那么这个对象现在就是垃圾 作用:释放没用的对象,清除内存里的记录碎片,碎片整理将所占用的堆内存移到堆的一端,以便 JVM 将整理出的内…

ADF: 获取Data Lake Storage上的文件列表并根据文件名删除文件

假设 Data Lake 上有个test的文件夹,有如下文件 目标:使用Azure Data Factory的Pipeline获取这个目录下的文件名列表,并删除掉以"ETC"开头的文件。 步骤: 1. 需要在Linked services中新建一个能连接到Data Lake的连接…

Type ‘null‘ is not assignable to type ‘T‘. - ArkTSCheck

设置泛型将参数配置为 null 时抛出了如下异常: Type null is not assignable to type T. T could be instantiated with an arbitrary type which could be unrelated to null. <ArkTSCheck> 解决办法 在 null 后面添加 ! 即可,以表示该值不会为 null data: T null! 以…

CPU占用率很高,相应很慢排查思路

获取线程状态 通过top -c命令可以动态显示进程及其占用资源的排行榜 可以看到&#xff0c;CPU占用率100%的PID是80972&#xff0c;定位到该进程之后&#xff0c;我们再从线程的dump日志中去定位. 使用top -H -p 80972命令查找到该进程中消耗CPU最多的线程&#xff0c;从下面的…

鸿蒙开发接口图形图像:【@ohos.window (窗口)】

窗口 窗口提供管理窗口的一些基础能力&#xff0c;包括对当前窗口的创建、销毁、各属性设置&#xff0c;以及对各窗口间的管理调度。 该模块提供以下窗口相关的常用功能&#xff1a; [Window]&#xff1a;当前窗口实例&#xff0c;窗口管理器管理的基本单元。[WindowStage]&…

[Qt]关于QListWidget、QScrollArea 为什么在QDesigner上设置了之后界面上仍然不生效的问题

前言 最近做了一些有关QListWidget和QScrollArea的控件&#xff0c;我去&#xff0c;这两个控件是真的坑&#xff0c;明明我在QDesigner的操作界面上对这两个控件的界面进行了修改&#xff0c;但是编译出来的软件就是看上去什么都没有&#xff0c;很坑&#xff0c;Gpt也没解决…

【贪心算法】C++解决回文串、增减字符串匹配、分发饼干、跳跃游戏、加油站问题

1. 前言 贪心算法&#xff08;Greedy Algorithm&#xff09;是一种在每一步选择中都采取当前状态下最优决策的算法。贪心算法通常用来解决最优化问题&#xff0c;其核心思想是通过局部最优解逐步推导出全局最优解。 在贪心算法中&#xff0c;我们并不总是考虑到未来可能发生的…

Centos7网络故障,开机之后连不上网ens33mtu 1500 qdisc noop state DOWN group default qlen 1000

说明 这是Linux系统网络接口的信息&#xff0c;其中"mtu 1500"表示最大传输单元大小为1500字节&#xff0c;“qdisc noop”表示没有设置特殊的队列算法&#xff0c;“state down”表示该接口当前处于关闭状态&#xff0c;“group default”表示该接口属于“default”…

Java设计模式:享元模式实现高效对象共享与内存优化(十一)

码到三十五 &#xff1a; 个人主页 目录 一、引言二、享元设计模式的概念1. 对象状态的划分2. 共享机制 三、享元设计模式的组成四、享元设计模式的工作原理五、享元模式的使用六、享元设计模式的优点和适用场景结语 [参见]&#xff1a; Java设计模式&#xff1a;核心概述&…

企业如何打造通证经济生态闭环详解(下)

一、原始账户&#xff1a;用户注册即生成【原始账户】【托管账户】。 原始账户用于存储用户所获取的通证积分&#xff0c;原始账户的公钥与私钥由用户所有&#xff0c;安全、私密、去中心化。 通过原始账户&#xff0c;用户可进行转账、收款的点对点传输&#xff0c;并可查看…

I2C协议详解

文章目录 概念工作模式 原理工作原理工作流程IIC协议的关键特点IIC通信过程 优点与缺点优点缺点 概念 IIC&#xff08;Inter-Integrated Circuit&#xff09;协议&#xff0c;也常被称为TWI&#xff08;Two-Wire Interface&#xff09;协议&#xff0c;是一种用于短距离通信的…

CyberDAO M级共识交流会·西安站圆满落幕:共筑Web3美好未来

CyberDAO M级共识交流会于2024年5月28日在西安隆重举行&#xff0c;这是一场CyberDAO精英汇聚的盛会&#xff0c;以同心共筑&#xff0c;志在必达为主题口号与DAO精英携手并进&#xff0c;共筑CyberDAO美好宏图。CyberDAO的使命是降低WEB3的门槛&#xff0c;帮助用户轻松抓住行…

STM32的时钟介绍

目录 前言1. 简介1.1 时钟是用来做什么的1.2 时钟产生的方式 2. 时钟树的组成2.1 时钟源2.1.1 内部时钟2.1.2 外部时钟 2.2 PLL锁相环2.3 SYSCLK2.4 AHB和HCLK2.5 APB和PCLK2.6 总结 3. STM32时钟的使用步骤4.我的疑问4.1 使用MSI和HSI有什么区别吗&#xff1f;4.2 MSI的频率为…