期末考核快要来了,好紧张鸭

一、实验目的

  • 掌握存储过程中的异常声明
  • 当存储过程执行出现异常时,会处理异常

二、实验准备

上次实验17已经设计了一个main过程,它能实现以下功能

  1. 创建表xs1
  2. 调用get_name过程得到随机生成的姓名和性别
  3. 通过循环语句将10000个学生的学号、姓名、性别插入到xs1表中
  4. 查看xs1表的记录

三、实验内容

复制和修改main过程,另存为main2过程,在main2存储过程中需要增加这些内容

  1. 声明异常
  2. 用创建xs1表同样的方式创建表xs2
  3. 给xs2表的姓名列添加唯一索引
  4. 调用get_name过程得到随机生成的姓名和性别
  5. 通过循环语句将1000个学生的学号、姓名、性别插入到xs2表中(由于姓名列增加了唯一索引,当插入的姓名与已有的姓名重复时会出现异常)
  6. 当出现异常时,显示xh、xm和出错信息(出错信息为‘重名了’)
  7. 循环结束后查看xs2表的记录

本存储过程核心流程图如图1所示。

get_word过程delimiter $$
drop procedure if exists get_word;
create procedure get_word(in s char(100),out w char(1))
begin
declare len tinyint;
set len = char_length(s);
set @a = floor(rand()*(len+1)+1);
set w = substring(s,@a,1);
end $$
delimiter ;no.1 以下是一个过程get_a_character的部分代码,需要大家完善代码。该过程实现输入任意一个字符串(s),该过程执行后从s字符串中任意抽取一个字符,并将此字符返回给变量w.可以通过以下语句测试get_word过程是否编写成功.delimiter $$
drop procedure if exists get_a_character;
create procedure  get_a_character(in s char(100),out w char(1))
begin
call get_word(s,w);
end  $$
delimiter ;
set @x = '刘王张赵李钱朱何孙曾陈吴黄刘邓周毛江胡';call get_a_character(@x,@k);
select @k;no.2 编写存储过程get_name,该过程根据cd变量的值判断名字是1字还是2字,再根据xb的值判断m是取m2(男)的值还是取m1(女)的值delimiter $$
drop procedure if exists get_name;
create procedure  get_name(out m varchar(2),out xb int)
begin
declare cd int;
declare ms1,ms2 varchar(50);
declare m1,m2,m3 varchar(2);
set ms1='依秋香巧紫萱莉玉碧丽念雅红燕艳莲荷蕾紫莹颖琪';
set ms2='澄德海超阳昌瀚亮锋涵煦杰俊诚毅峰衍浩广邈言博畅';
set xb = floor(rand()*2);
set cd = floor(rand()*2+1);if  xb = 0 thencall get_word(ms1,m1); call get_word(ms1,m2); set m3 = concat(m1,m2);elseif xb = 1 thencall get_word(ms2,m1); call get_word(ms2,m2); set m3 = concat(m1,m2);end if;if cd = 1 then set m = m1;elseif cd = 2 then set m = m3;end if;
end $$
delimiter ;
call get_name(@name,@sex);
select @name,@sex;no.3 main2 过程delimiter $$
drop procedure if exists main2;
create procedure main2()
begin
declare x varchar(100);
declare xing,ming,xm varchar(3);
declare sex,n,f int;
declare xh varchar(8);
declare continue handler for sqlexception set f=2;
drop table if exists xs2;
create  table xs2 as select 学号,姓名,性别 from xs limit 0 ;
create unique index index_name on xs2(姓名);
set xh = '191100';
while xh<='191999' docall get_a_character(@x,@k);set xing = @k;call get_name(@name,@sex);set ming = @name;set sex = @sex;set xm = concat(xing,ming);insert into xs2 values(xh,xm,sex);if f=2 then select xh,xm,'重名了';set f=1;
elseif f=1 thenset xh = xh+1;end if;
end while;
end $$
delimiter ;
call main2();
select * from xs2;

加油鸭,我们会到达梦想的彼岸的,对吧!

MySQL数据库 *实验18错误处理相关推荐

  1. mysql数据库实验+cmd界面运行基本操作总结(sql:数据增删改查,表格,视图,备份恢复)

    文章目录 mysql数据库实验--建表准备 1.dos界面中数据库的登录操作 #这里解决一个bug 2.数据库及表格创建 (1)利用sql语句创建数据库DBtest (2)表格创建 3.导入数据至数据 ...

  2. MySQL数据库实验二 数据基本查询

    ★观前提示:本篇内容为mysql数据库实验,代码内容经测试过,可能一小部分有所疏漏,也有会不符合每个人实验的要求的地方,因此以下内容建议仅做思路参考,. 一.实验目的 1.掌握SQL查询语句的一般格式 ...

  3. MySQL数据库实验五 触发器和存储过程

    ★观前提示:本篇内容为mysql数据库实验,代码内容经测试过,可能一小部分有所疏漏,也有会不符合每个人实验的要求的地方,因此以下内容建议仅做思路参考,. 一.实验目的 1.掌握某主流DBMS支持的SQ ...

  4. linux连接mysql数据库出现1405错误原因的一些解决方法

    linux连接mysql数据库出现1405错误原因的一些解决方法 在使用yum于腾讯云服务器安装了mysql之后,从家里的电脑尝试连接mysql数据库的时候,就出现了1405错误,经过我不断地查找资料 ...

  5. mysql数据库报1205错误的解决方法

    mysql数据库报1205错误的解决方法 解决办法 解决办法 查看数据库的进程表 show full processlist; 查看事物表 select* from information_schem ...

  6. MySQL数据库实验六 简单数据库应用系统设计与实现

    ★观前提示:本篇内容为mysql数据库实验,代码内容经测试过,可能一小部分有所疏漏,也有会不符合每个人实验的要求的地方,因此以下内容建议仅做思路参考,. 一.实验目的 1.理解并能运用数据库设计的常见 ...

  7. mysql数据库实验报告一

    实验报告一 前言 实验操作指导 解决方法 实验目的 实验内容及操作步骤 实验遇到的问题及体会 前言 <数据库原理I>实验指导书 实验课程性质:非独立开课 开课学期:第4学期 适用专业:计算 ...

  8. mysql数据库实验查询_MySQL数据库表数据的查询操作实验

    实验3.MySQL数据库表数据的查询操作实验(1) 一.实验目的 掌握SELECT 语句的基本语法格式. 掌握SELECT 语句的执行方法. 掌握SELECT 语句的 GROUP BY 和 ORDER ...

  9. mysql数据库实验实训5,数据查询yggl数据库查询(详细)

    数据库实验yggl数据库,实训5(详细版) 1.SELECT语句的基本使用: 1-1:查询employees 表的员工部门号和性别,要求消除重复行 select distinct '员工部门号','性 ...

最新文章

  1. 年度第一效率神器:你一定不想错过它!
  2. 浅析MySQL InnoDB的隔离级别
  3. 矩阵-----对称矩阵及其压缩存储稀疏矩阵
  4. .NET程序员应该理解的几种软件保护方法 辛苦开发的程序需要建立有效的保护机制...
  5. redis 数据结构
  6. 前端学习(1247):购物车1
  7. 数据结构第六篇——顺序存储结构与链式存储结构的特点
  8. 那些不用上班的老人每天是不是很幸福?
  9. matlab里转置det,matlab矩阵转置命令
  10. 数字电路基础知识(一) 复位设计-同步复位与异步复位
  11. 电脑使用者必备的文本编辑器,哪款适合你?
  12. 使用GDAL实现DEM的地貌晕渲图(三)
  13. 我的世界服务器修改武器伤害,我的世界:8张特性图,武器伤害没上限,物品全靠刷,老mc秒懂!...
  14. 男人健康八年一个转折
  15. 为什么 UDP 有时比 TCP 更有优势
  16. 大牛证券解析恒指大跌800点+全球股市大跌
  17. TC神器应用——颜色与备注
  18. mysql 过滤emoji表情_用JS过滤Emoji表情的输入
  19. 四/六旋翼迷你无人机设计制造(一)硬件设计制作
  20. 计算机教师幽默介绍,教师幽默自我介绍

热门文章

  1. ARP网络欺骗——手机/平板/电脑欺骗测试
  2. redash开发环境搭建
  3. 【Linux学习】Linux必备命令(一)--之mv命令详解
  4. 树莓派I2C发送大数据的坑 lattice crosslink配置
  5. 手机移动端加载更多(表格首行首列固定vue + vant完整版)
  6. 财务怎么搞副业?有哪些副业能增加月收入?
  7. 期末周总结-矩阵理论-非负矩阵分解
  8. Android频道管理集成
  9. MATLAB函数——newff()
  10. 【笔记】android录音权限遇到的问题和兼容8.0权限请求的方案