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

本文涉及的产品
云数据库 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;
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6天前
|
存储 运维 Kubernetes
多态关联在数据库设计中的应用和解决方案
多态关联在数据库设计中的应用和解决方案
15 0
|
6天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
7天前
|
SQL 关系型数据库 MySQL
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
|
7天前
|
SQL 关系型数据库 MySQL
【MySQL-1】理解关系型数据库&数据的数据模型
【MySQL-1】理解关系型数据库&数据的数据模型
|
8天前
|
关系型数据库 MySQL 数据库
Docker数据库Mysql
Docker数据库Mysql
|
8天前
|
存储 算法 数据库
矢量数据库在图像识别与检索中的应用实践
【4月更文挑战第30天】本文探讨了矢量数据库在图像识别与检索中的应用,通过特征提取(如SIFT、SURF)、编码和相似度度量实现快速识别。在图像检索流程中,经过预处理、特征提取和编码后,矢量数据库用于查询相似特征,排序后展示给用户。实际案例显示,矢量数据库能提升电商平台的商品图像搜索效率和用户体验。随着技术发展,这一领域应用前景广阔。
|
8天前
|
机器学习/深度学习 搜索推荐 数据库
矢量数据库的未来发展趋势:新技术与应用展望
【4月更文挑战第30天】随着AI和机器学习的发展,矢量数据库在处理非结构化数据方面的重要性日益增强。预测到2028年,全球矢量数据库市场将从2023年的15亿美元增长至43亿美元。未来趋势包括:并行计算与分布式架构提升处理能力,硬件加速技术(如TPU和昇腾芯片)提高性能,自适应索引机制优化查询效率。应用领域将拓展至NLP、图像视频分析和推荐系统,为各行业带来更多创新和价值。
|
8天前
|
机器学习/深度学习 存储 人工智能
矢量数据库在机器学习领域的应用与前景
【4月更文挑战第30天】本文探讨了矢量数据库在机器学习领域的应用,包括特征存储、相似性搜索、模型训练与调优及实时分析。随着AI技术发展,矢量数据库将深度融合,提升扩展性和可伸缩性,增强智能化功能,并加强安全性与隐私保护。未来,矢量数据库将在机器学习领域扮演关键角色。
|
8天前
|
存储 数据可视化 关系型数据库
矢量数据库在地理空间数据处理中的应用
【4月更文挑战第30天】矢量数据库在地理空间数据处理中展现优势,高效存储管理高维向量数据,支持快速查询、空间分析与可视化。分布式处理能力适应大数据量需求,提供高效、灵活、可扩展及可视化支持,是处理地理空间数据的理想选择。随着技术进步,其应用将更加广泛。
|
8天前
|
存储 SQL 关系型数据库
mysql查询数据库表大小怎么操作
mysql查询数据库表大小怎么操作
http://www.vxiaotou.com