MySQL数据库实验九 MySQL应用系统开发

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL数据库实验九 MySQL应用系统开发

一、实验项目:

使用MySQL进行应用系统开发。

二、实验目的

使学生具备使用MySQL技术进行应用系统开发的能力。

三、实验内容

(一):

1、员工管理系统的业务逻辑如下:

实体“员工”的属性有员工编号、姓名、学历、出生日期、性别、工作年限、地址、电话和所属部门。

实体“部门”的属性有部门编号、名称、备注。

实体“员工薪水”的属性有员工编号、收入、支出。

2、创建员工管理数据库yggl。

1. create database yggl;
2. Show databases;

3、在员工管理数据库yggl中创建员工信息表employees、部门信息表departments和员工薪水情况表salary。

1. use yggl;
2. CREATE TABLE departments (
3. deptid char(3) NOT NULL,
4. deptname char(20) NOT NULL,
5. memo text,
6. PRIMARY KEY  (deptid));
7. 
8. CREATE TABLE employees (
9. empid char(6) NOT NULL,
10. empname char(10) NOT NULL,
11. edu char(4) NOT NULL,
12. birth date NOT NULL,
13. sex char(2) NOT NULL,
14. jobyear tinyint,
15. address varchar(20),
16. phone char(12),
17. deptid char(3) NOT NULL,
18. PRIMARY KEY  (empid),
19. foreign key(deptid)
20. references departments(deptid));
21. 
22. CREATE TABLE salary (
23. empid char(6) NOT NULL,
24. inmoney float(8,2) NOT NULL,
25. outmoney float(8,2) NOT NULL,
26. PRIMARY KEY(empid),
27. foreign key(empid)
28. references employees(empid));
29. show tables;

4、对员工管理数据库yggl创建视图emp_view1,包含所有男员工的员工号码、姓名、工作年限和学历。

1. create or replace view emp_view1(员工编号,姓名,工作年限,学历) as
2. select empid,empname,jobyear,edu from employees
3. where sex='男';
4. select * from emp_view1;

5、对employees表中的部门编号列创建普通索引depart_ind。

1. create index depart_ind on employees(deptid);
2. Show index from employees\G

6、创建存储过程,比较两个员工的实际收入,如前者比后者高就输出0,否则输出1,并调用该存储过程比较000001和010008两个员工的收入。

1. delimiter $$
2. create procedure cp(in id1 char(6),in id2 char(6),out bj int)
3. begin
4. declare sr1,sr2 float(8,2);
5. select inmoney-outmoney into sr1 from salary where empid=id1;
6. select  inmoney-outmoney into sr2 from salary where empid=id2;
7. if sr1> sr2 then set bj=0;
8. else set bj=1;
9. end if;
10. end $$
11. delimiter ;
12. call cp('000001','010008',@bj);
13. select @bj;

(二):

1、创建一个存储函数em_num,返回员工的总人数。

1. delimiter $$
2. create function em_num() returns integer
3. begin
4. return ( select count( * ) from employees);
5. end $$
6. delimiter ;
7. select em_num();

2、创建触发器,在employees表中删除员工信息的同时将salary表中与该员工相关的数据全部删除。

1. DELIMITER $$
2. CREATE TRIGGER EM_DELETE AFTER DELETE
3. ON Employees FOR EACH ROW
4. BEGIN
5. DELETE FROM salary WHERE empid=OLD.empid;
6. END$$
7. DELIMITER ;
8. delete from employees where empid='000001';

3、创建事件,在该事件中创建表temp用来保存员工的总人数,每年统计一次,从现在开始。

1. set @@global.event_scheduler=true;
2. create table temp(counts int not null primary key);
3. create event tjemp  on schedule  every 1 year starts now()
4. do insert into temp select count(*) from employees;
5. select * from temp;

4、创建数据库用户user1,密码为1234。

1. create user user1@localhost identified by '1234';
2. select user from mysql.user;

5、授予用户user1对yggl库中employees表的select操作权限。

1. grant select on yggl.employees to user1@localhost;
2. Show grants for user1@localhost;

6、收回用户user1对yggl库中employees表的select操作权限。

1. revoke select on yggl.employees from user1@localhost;
2. Show grants for user1@localhost;

7、备份yggl数据库中departments表的数据到D盘。要求字段值如果是字符就用双引号标注,字段值之间用逗号隔开,每行以“?”为结束标志。

1. SELECT * FROM  departments INTO OUTFILE 'D:/myfile.txt'
2. FIELDS  TERMINATED BY ','
3. OPTIONALLY ENCLOSED BY '"'
4. LINES TERMINATED BY '?';

8、将上题中的备份文件数据导入bk_depart表中。

1. CREATE TABLE bk_depart LIKE departments;
2. LOAD DATA INFILE  'D:/myfile.txt' INTO TABLE bk_depart
3. FIELDS  TERMINATED BY ','
4. OPTIONALLY ENCLOSED BY '"'
5. LINES TERMINATED BY '?';
6. Select * from bk_depart;
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
存储 Oracle 关系型数据库
Oracle数据库的应用场景有哪些?
【10月更文挑战第15天】Oracle数据库的应用场景有哪些?
185 64
|
2月前
|
存储 关系型数据库 MySQL
MySQL在企业内部应用场景有哪些
【10月更文挑战第17天】MySQL在企业内部应用场景有哪些
66 0
|
2月前
|
存储 关系型数据库 MySQL
介绍一下MySQL的一些应用场景
【10月更文挑战第17天】介绍一下MySQL的一些应用场景
236 0
|
22天前
|
架构师 数据库
大厂面试高频:数据库乐观锁的实现原理、以及应用场景
数据库乐观锁是必知必会的技术栈,也是大厂面试高频,十分重要,本文解析数据库乐观锁。关注【mikechen的互联网架构】,10年+BAT架构经验分享。
大厂面试高频:数据库乐观锁的实现原理、以及应用场景
|
17天前
|
关系型数据库 MySQL Java
MySQL索引优化与Java应用实践
【11月更文挑战第25天】在大数据量和高并发的业务场景下,MySQL数据库的索引优化是提升查询性能的关键。本文将深入探讨MySQL索引的多种类型、优化策略及其在Java应用中的实践,通过历史背景、业务场景、底层原理的介绍,并结合Java示例代码,帮助Java架构师更好地理解并应用这些技术。
22 2
|
1月前
|
缓存 NoSQL 数据库
运用云数据库 Tair 构建缓存为应用提速,完成任务得苹果音响、充电套装等好礼!
本活动将带大家了解云数据库 Tair(兼容 Redis),通过体验构建缓存以提速应用,完成任务,即可领取罗马仕安卓充电套装,限量1000个,先到先得。邀请好友共同参与活动,还可赢取苹果 HomePod mini、小米蓝牙耳机等精美好礼!
|
1月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
48 3
|
1月前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
58 2
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
108 2
|
2月前
|
XML 存储 数据库
XML在数据库中有哪些应用?
【10月更文挑战第17天】XML在数据库中有哪些应用?
44 2