MySQL:存储过程与函数、视图

这篇具有很好参考价值的文章主要介绍了MySQL:存储过程与函数、视图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、学习目标

  1. 掌握如何创建存储过程
  2. 掌握如何创建存储函数
  3. 熟悉变量的使用方法
  4. 熟悉如何定义条件和处理程序
  5. 了解光标的使用方法
  6. 掌握流程控制的使用
  7. 掌握如何调用存储过程和函数
  8. 熟悉如何查看存储过程和函数
  9. 掌握修改存储过程和函数的方法
  10. 熟悉如何删除存储过程和函数
  11. 掌握创建存储过程和函数的方法和技巧
  12. 了解视图的含义和作用
  13. 掌握创建视图的方法
  14. 熟悉如何查看视图
  15. 掌握修改视图的方法
  16. 掌握更新视图的方法
  17. 掌握删除视图的方法
  18. 掌握视图应用的方法和技巧

二、实验内容

  1. 通过实例掌握存储过程和函数的创建和使用,步骤如下:

①创建一个名称为sch的数据表,表结构如下所示,将下面sch表内容中的数据插入到sch表中

sch表结构

字段名

数据类型

主键

外键

非空

唯一

自增

id

INT(11)

name

VARCHAR(50)

glass

VARCHAR(50)

sch表内容

id

name

glass

1

xiaoming

glass1

2

xiaojun

glass2

②创建一个存储函数,用来统计表sch中的记录数

③创建一个存储过程,通过调用存储函数的方法来获取表sch中的记录数和sch表中id的和

  1. 掌握视图的创建、查询、更新和删除操作。

假如HenanHebei的3个学生参加Tsinghua University、Peking University的自学考试,现在需要用数据对其考试的结果进行查询和管理,Tsinghua University的分数线为40,Peking University的分数线为41。学生表包含了学生的学号、姓名、家庭住址和电话号码;报名表包含学号、姓名、所在学校和报名的学校,表结构以及表中的内容分别如下列各表所示。

stu表结构

字段名

数据类型

主键

外键

非空

唯一

自增

s_id

INT

s_name

VARCHAR(20)

addr

VARCHAR(50)

tel

VARCHAR(50)

sign表结构

字段名

数据类型

主键

外键

非空

唯一

自增

s_id

INT

s_name

VARCHAR(20)

s_sch

VARCHAR(50)

s_sign_sch

VARCHAR(50)

stu_mark表结构

字段名

数据类型

主键

外键

非空

唯一

自增

s_id

INT

s_name

VARCHAR(20)

mark

INT

stu表内容

s_id

s_name

addr

tel

1

XiaoWang

Henan

0371-12345678

2

XiaoLi

Hebei

1336312XXXX

3

XiaoTian

Henan

0371-12345670

sign表内容

s_id

s_name

s_sch

s_sign_sch

1

XiaoWang

Middle School1

Peking University

2

XiaoLi

Middle School2

Tsinghua University

3

XiaoTian

Middle School3

Tsinghua University

stu_mark表内容

s_id

s_name

mark

1

XiaoWang

80

2

XiaoLi

71

3

XiaoTian

70

步骤如下:

①创建学生表stu,插入3条记录

②创建报名表sign,插入3条记录

③创建成绩表stu_mark,插入3条记录

④创建考上Peking University的学生的视图

⑤创建考上Tsinghua University的学生的视图

⑥XiaoTian的成绩在录入的时候录入错误,多录了50分,对其录入成绩进行更正

⑦查看更新过后视图和表的情况

⑧查看视图的创建信息

⑨删除创建的视图

1.1

 create table sch(id int(11) primary key not null unique,name varchar(50) not null,glass varchar(50) not null);

MySQL:存储过程与函数、视图

 1.2

 insert into sch (id,name,glass)values(1,'xiaoming','glass1'),(2,'xiaojun','glass2');

MySQL:存储过程与函数、视图

 1.3

create function count_sch()
returns int reads sql data
return (select count(*) from sch);

MySQL:存储过程与函数、视图

 1.4

delimiter

create procedure add_id(out count int)
begin declare itmp int;
declare cur_id cursor for select id from sch;
declare exit handler for not found close cur_id;
select count_sch() into count;
set @sum=0;
open cur_id;
repeat
fetch cur_id into itmp;
if itmp < 10
then set @sum = @sum + itmp;
end if;
until 0 end repeat;
close cur_id;
end //

delimiter ;
call add_id(@a);

MySQL:存储过程与函数、视图

 2.1

 create table stu(s_id int primary key not null unique,s_name varchar(20) not null,addr varchar(50) not null,tel varchar(50) not null);

MySQL:存储过程与函数、视图

 2.2

insert into stu (s_id,s_name,addr,tel)values
(1,'XiaoWang','Henan','0371-12345678'),
(2,'XiaoLi','Hebei','1336312xxxx'),
(3,'XiaoTian','Henan','0371-12345670');

 MySQL:存储过程与函数、视图

 2.3

create table sign(s_id int primary key not null unique,s_name varchar(20) not null,s_sch varchar(50) not null,s_sign_sch varchar(50) not null);

MySQL:存储过程与函数、视图

2.4 

 insert into sign (s_id,s_name,s_sch,s_sign_sch)values
(1,'XiaoWang','Middle School1','Peking University'),
(2,'XiaoLi','Middle School2','Tsinghua University'),
(3,'XiaoTian','Middle School3','Tsinghua University');

MySQL:存储过程与函数、视图

 2.5

 create table stu_mark(s_id int primary key not null unique,s_name varchar(20) not null,mark int not null);

 MySQL:存储过程与函数、视图

 2.6

insert into stu_mark (s_id,s_name,mark)values
(1,'XiaoWang',80),
(2,'XiaoLi',71),
(3,'XiaoTian',70);

 MySQL:存储过程与函数、视图

 2.7

create view beida(id,name,addr,tel,s_sch,mark,sign_sch) as
select stu_mark.s_id,stu_mark.s_name,stu.addr,stu.tel,sign.s_sch,stu_mark.mark,sign.s_sign_sch
from stu_mark,sign,stu
where stu_mark.s_id=sign.s_id and stu.s_id=stu_mark.s_id
and sign.s_sign_sch='Peking University';

MySQL:存储过程与函数、视图

 2.8

create view qinghua(id,name,addr,tel,s_sch,mark,sign_sch) as
select stu_mark.s_id,stu_mark.s_name,stu.addr,stu.tel,sign.s_sch,stu_mark.mark,sign.s_sign_sch
from stu_mark,sign,stu
where stu_mark.s_id=sign.s_id and stu.s_id=stu_mark.s_id
and sign.s_sign_sch='Tsinghua University';

 MySQL:存储过程与函数、视图

 2.9

 update stu_mark set mark=mark-50 where s_name='XiaoTian';

MySQL:存储过程与函数、视图

 2.10

show create view qinghua;
show create view beida;

 MySQL:存储过程与函数、视图

2.11 

drop view beida;
drop view qinghua;

 文章来源地址https://www.toymoban.com/news/detail-446015.html

到了这里,关于MySQL:存储过程与函数、视图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL小记——存储过程、触发器、函数、视图

    目录 存储过程 procedure 语法 参数 调用存储过程 call 删除存储过程 drop 带有IF逻辑的存储过程 if then elseif else 带有循环的存储过程 while do 变量 触发器 Trigger 语法 old和new 视图 View 函数 自定义函数 内置函数 存储过程是数据库中的一个对象,存储在服务端,用来封装多条SQL语句

    2024年02月08日
    浏览(34)
  • 【MySQL速通篇003】MySQL视图,MySQL触发器,MySQL函数,MySQL存储过程(参数分类,存储过程的增删改查等),SQL的动态执行,支持事务的存储过程,pymysql

    这篇万字博客主要包括了我对: MySQL视图,MySQL触发器,MySQL函数,MySQL存储过程(参数分类,存储过程的增删改查等),SQL的动态执行,支持事务的存储过程,pymysql等的总结,可谓非常的详细😃 文章毕竟这么长,对于文章中的一些语法,概念,例子等错误,欢迎并感谢各位读

    2023年04月27日
    浏览(55)
  • MySQL之视图,触发器与存储过程

    视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据

    2024年02月08日
    浏览(35)
  • mysql高级语句之视图、连接查询与存储过程

    目录 视图 视图和表的区别 视图和表的联系 视图命令 视图特点 NULL 值 null、空值和零的区别 连接查询 内连接 左连接 右连接 存储过程 概述 简介 存储过程的优点 语法 调用存储过程 存储过程的参数 查看存储过程 查看指定存储过程信息 修改存储过程 删除存储过程 数据库中

    2024年02月10日
    浏览(37)
  • SQL Server判断数据库、表、列、视图、存储过程、函数是否存在

    在写一些业务逻辑相对复杂点的存储过程的时候,经常会用到临时表或者数据表作为临时结果的保存。但每次在作表是否存在的判断时,往往想不起完整的SQL写法。因此,记录一些常用的数据库对象是否存在的判断方法,可以达到快速查找的目的。正是:好记性不如烂笔头。

    2024年02月02日
    浏览(49)
  • Mysql 存储过程 / 存储函数

    目录 0 课程视频 1 基本语法 1.0 作用 -在数据库中 封装sql语句 - 复用 - 减少网络交互 -可接收参数返回数据 1.1 创建 1.2 调用 1.3 查看 1.4 删除 1.5 ; 封号结束符 改成 $$ 双刀符合结束语句 - 因为打包封号结束有冲突 1.6 在cmd 中定义 存储过程 打包的事务 - 打包完 可以改回 封号  

    2024年02月01日
    浏览(39)
  • MySQL——存储过程与存储函数

    MySQL从 5.0版本 开始支持 存储过程 和 存储函数 。存储过程和函数能够将复杂的SQL逻辑封装在一起,应用程序无须关注存储过程和函数内部复杂的SQL逻辑,而只需要简单地调用存储过程和函数即可。 1.1 理解 含义 :存储过程的英文是 Stored Procedure 。它的思想很简单,就是一组

    2024年02月10日
    浏览(31)
  • MySQL存储函数与存储过程习题

    创建表并插入数据: 1、创建一个可以统计表格内记录条数的存储函数 ,函数名为count_sch() 先创建一个表并插入一些数据: mysql d // mysql create function count_sch() - returns int - begin - declare i int default 0; - select count(*) into i from sch; - return i; - end // Query OK, 0 rows affected (0.00 sec) mysql sel

    2024年01月19日
    浏览(38)
  • MySQL之存储过程和存储函数

    能够将完成特定功能的SQL指令进行封装(SQL指令集),编译之后存储在数据库服务器上,并且为之取一个名字,客户端可以通过名字直接调用这个SQL指令集,获取执行结果。 2.1 优点 (1)SQL指令无需经客户端编写通过网络传送,可以节省网络开销,同时避免使用SQL指令在网络传

    2024年02月05日
    浏览(40)
  • 存储过程、触发器、游标、视图、自定义函数 字段类型、字段可空、统计字段、逻辑删除 权限系统数据库&无限极类别设计

    在数据库设计中,存储过程、触发器、游标、视图、自定义函数、字段类型、字段可空、统计字段、逻辑删除以及权限系统和无限级类别设计都是重要的概念。下面我将逐一解释这些概念,并提供相关的设计建议。 存储过程 (Stored Procedure) 定义 :存储过程是一组为了完成特定

    2024年03月09日
    浏览(86)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包