收藏 分享(赏)

MySQL实验报告5(存储过程与函数)(1)(1).doc

上传人:精品资料 文档编号:10670669 上传时间:2019-12-18 格式:DOC 页数:4 大小:96KB
下载 相关 举报
MySQL实验报告5(存储过程与函数)(1)(1).doc_第1页
第1页 / 共4页
MySQL实验报告5(存储过程与函数)(1)(1).doc_第2页
第2页 / 共4页
MySQL实验报告5(存储过程与函数)(1)(1).doc_第3页
第3页 / 共4页
MySQL实验报告5(存储过程与函数)(1)(1).doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、四、实验内容及程序代码1.sch 数据表的表结构如表 7.1 所示,sch 表的数据如表 7.2。表 7.1 sch 表结构字段名 数据类型 主键 外键 非空 唯一 自增id INT(10) 是 否 是 是 否name VARCHAR(50) 否 否 是 否 否class VARCHAR(50) 否 否 是 否 否表 7.2 sch 表的内容id name class1 李明 C12 小梅 C21)建表 sch 并插入数据。2)创建一个存储函数,用来统计表 sch 中的记录数。delimiter $create PROCEDURE count_sch5(out size int)BEGINse

2、lect count(*) into size from sch;END$delimiter;3)创建一个存储过程,通过调用存储函数的方法来获取表 sch 中的记录数和 sch 表中 id 的和。delimiter $create PROCEDURE count_sch2(out s_a int,out s_id int)BEGINselect count(*) into s_a from sch;select sum(id) as s_id from sch;END$delimiter;2.创 建 一 存 储 过 程 insert_student_condition_user, 利 用 自

3、定 义 错 误 触 发 条 件 定 义 ,当 插 入 学 生 的 性 别 不 是 “男 ”或 “女 ”时 结 束 存 储 过 程 , 并 提 示 “学 生 性 别 不 正 确 ”。表 7.3 student 表结构字段名 数据类型 主键 外键 非空 唯一 自增sno Char(10) 是 否 是 是 否sname VARCHAR(20) 否 否 是 否 否ssex CHAR(2) 否 否 是 否 否Sage smallint 否 否 是 否 否Sdept VARCHAR(30) 否 否 是 否 否enterdate datetime 否 否 是 否 否delimiter $create PRO

4、CEDURE insert_student_condition_user(in sno int,in sname VARCHAR(20),in ssex varchar(2),in sage int,in sdept varchar(30)BEGINDECLARE continue handler for sqlstate 42S02 select 学 生 性 别 不 正 确 ;if ssex=男 or ssex=女 THENinsert into student values(sno,sname,ssex,sage,sdept);end if;end$ delimiter;call inse

5、rt_student_condition_user(1,pqw,他 ,20,C1);call insert_student_condition_user(4,pqw,1,20,C1);drop PROCEDURE insert_student_condition_user;3.创 建 一 存 储 过 程 update_student_borthyear, 在 学 生 表 ( 表 结 构 如 表 7.3) 中 添加 字 段 ”borthyear”( 出 生 年 份 ) , 在 存 储 过 程 中 利 用 游 标 , 通 过 学 生 年 龄 计 算 出 出生 年 份 并 修 改 表 中 对 应 字

6、 段 。create procedure update_student_borthyear(in s_no char(10)BEGINdeclare s_age char(10);declare state char(20);declare cur cursor for select sage from student;declare exit handler for 1329 set state=error;open cur;REPEATfetch cur into s_age;update student set borthyear=2018-s_age where sno=s_no;until state=errorend repeat;close cur;ENDcall update_student_borthyear(201818);mysql 语句对于大小写不敏感,所以在写的时候要注意区分,整整找了半个小时的错误。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报