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: 0mysql> CREATE INDEX idx_birth ON emp(birth);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> 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;

演示:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

去中心化的 S3,CESS 首创去中心化对象存储 DeOSS

Web3 在各个领域的应用和发展已成为讨论的焦点,尽管行业对 Web3 的定义各不相同,但一个普遍的共识是 Web3 赋予了用户对其数据的所有权和自主权。这一转变在我们的生活和工作与数字化越来越深入地融合之际至关重要,这意味着所有人类活动很快将…

ESP8266连接巴法云

AT :测试是否能用 ATCWMODE1 :设置为无线终端模式 ATCWJAP"XXX","XXXXXXXXXX" :ESP8266加入热点网络,热点信息必须是2.4G ATCIPSTARTATCIPSTART"TCP","bemfa.com",8344 &…

Python解析网页-XPath

目录 1、什么是XPath 2、安装配置 3、XPath常用规则 4、快速入门 5、浏览器XPath工具 1.什么是XPath XPath(XML Path Language)是一种用于在XML文档中定位和选择节点的语言。 它是W3C(World Wide Web Consortium)定义的一种标…

SQL面试题练习 —— 连续支付订单合并

目录 1 题目2 建表语句3 题解 1 题目 现有一张用户支付表:t_user_pay 包含字段订单ID,用户ID,商户ID,支付时间,支付金额。 如果同一用户在同一商户存在多笔订单,且中间该用户没有其他商户的支付记录&#…

Python小游戏——打砖块

文章目录 打砖块游戏项目介绍及实现项目介绍环境配置代码设计思路代码设计详细过程 难点分析源代码代码效果 打砖块游戏项目介绍及实现 项目介绍 打砖块游戏是一款经典的街机游戏,通过控制挡板来反弹小球打碎屏幕上的砖块。该项目使用Python语言和Pygame库进行实现…

MVS net笔记和理解

文章目录 传统的方法有什么缺陷吗?MVSnet深度的预估 传统的方法有什么缺陷吗? 传统的mvs算法它对图像的光照要求相对较高,但是在实际中要保证照片的光照效果很好是很难的。所以传统算法对镜面反射,白墙这种的重建效果就比较差。 …

Vue 实例

一、页面效果图 二、代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><script src"../vue.js" type"text/javascript"></script><title>vue 实例</title></head><body>&l…

RAG中常用的索引(Index)方式

在RAG&#xff08;Retrieval-Augmented Generation&#xff09;中&#xff0c;索引是一个关键步骤&#xff0c;它涉及到将文档内容转换为机器可理解的形式&#xff0c;以便进行有效的检索和生成。以下是一些关于RAG中结构化索引的实现方法和步骤&#xff1a; 向量索引&#xf…

图解PHP MySQL:轻松掌握服务器端Web开发

在当今数字化时代&#xff0c;Web开发成为了一个炙手可热的领域&#xff0c;而PHP和MySQL作为Web开发领域的两大基石&#xff0c;其重要性不言而喻。对于初学者和寻求深化理解的开发者而言&#xff0c;一本好的教材就如同灯塔一般&#xff0c;指引着他们前行。《图解PHP & …

50etf期权购是什么意思?

今天带你了解50etf期权购是什么意思&#xff1f;很多刚刚接触50ETF期权的投资者或许不太明白50ETF期权投资是一种什么样的投资&#xff0c;对于50ETF期权投资来说&#xff0c;有认购合约与认沽合约&#xff0c;那么“购”也就是认购的意思。 50etf期权购是什么意思&#xff1f;…

嵌入式交叉编译:timezone/zoneinfo(指定安装路径)

下载 Time Zone Database tzdata2024a.tar.gz tzcode2024a.tar.gz 解压 注意&#xff0c;要解压到一个目录 tar xf tzcode2024a.tar.gz tar xf tzdata2024a.tar.gz 编译 这里直接指定了编译后安装路径&#xff0c;十分方便。 CROSS_NAMEaarch64-mix210-linuxexport P…

三. Stream API

1. 过滤 record Fruit(String cname, String name, String category, String color) { }Stream.of(new Fruit("草莓", "Strawberry", "浆果", "红色"),new Fruit("桑葚", "Mulberry", "浆果", "紫…

Nacos 2.x 系列【13】服务权重管理

文章目录 1. 概述2. 负载均衡器3. 配置权重4. 案例演示4.1 环境搭建4.2 默认权重4.3 权重值为零4.4 权重不一样 1. 概述 Nacos服务管理模块&#xff0c;提供了服务权重管理功能&#xff0c;用于给服务实例设置权重&#xff0c;权重越高&#xff0c;被分配的流量越大&#xff0…

Altium Designer软件下载安装「专业PCB设计软件」Altium Designer安装包获取!

Altium Designer&#xff0c;这款软件凭借其全面的设计流程覆盖&#xff0c;从概念到实现&#xff0c;都能为电子工程师提供强大的支持。 在硬件设计方面&#xff0c;Altium Designer提供了丰富的元件库和灵活的布局选项&#xff0c;使得工程师能够轻松地进行电路设计&#xff…

uniapp登录成功后跳回原有页面+无感刷新token

uniapp登录成功后跳回原有页面 引言 在C端的页面场景中&#xff0c;我们经常会有几种情况到登录页&#xff1a; 区分需要登录和不用登录的页面&#xff0c;点击需要登录才能查看的页面 已经登录但是超时&#xff0c;用户凭证失效等原因 以上情况可以细分为两种&#xff0c;一…

汽车4S店神秘顾客调查方案

本文由群狼调研&#xff08;长沙神秘顾客公司&#xff09;出品&#xff0c;欢迎转载&#xff0c;请注明出处。汽车4S店神秘顾客调查方案包括以下步骤&#xff1a; 1.设定调查目标&#xff1a;明确调查的目的和期望结果&#xff0c;例如评估销售过程、售后服务质量或员工表现等方…

常见Windows命令汇总

1.打开命令提示符或PowerShell&#xff1a; cmd&#xff1a;打开命令提示符。 powershell&#xff1a;打开PowerShell。 2.文件和目录操作&#xff1a; cd&#xff1a;更改当前目录。例如&#xff0c;cd C:\Users\Username\Documents 将当前目录更改为 "Documents" …

单片机/嵌入式小白教程—硬件(三)51单片机最小系统

目录 简介 51单片机器件原理图 复位电路 供电电路 晶振电路 下载电路 最小系统原理图 更加方便的51单片机 简介 传统51单片机最小系统包含&#xff1a;复位电路、供电电路、晶振电路、下载电路 51单片机器件原理图 其中&#xff0c; 第9脚&#xff08;RST&#xff09;…

DOM型XSS

前言 什么是DOM型XSS DOM型XSS漏洞是一种特殊类型的XSS,是基于文档对象模型 Document Object Model (DOM)的一种漏洞。 什么是DOM DOM全称Document Object Model,是一个与平台、编程语言无关的接口&#xff0c;它允许程序或脚本动态地访问和更新文档内容、结构和样式&#xff0…

橙派探险记:开箱香橙派 AIpro 与疲劳驾驶检测的奇幻之旅

目录 引子&#xff1a;神秘包裹的到来 第一章&#xff1a;香橙派AIpro初体验 资源与性能介绍 系统烧录 Linux 镜像&#xff08;TF 卡&#xff09; 调试模式 登录模式 第二章&#xff1a;大胆的项目构想 系统架构设计 香橙派 AIpro 在项目中的重要作用 第三章&#xf…