当前位置: 首页 > news >正文

微网站怎么做的好公司查询网全国企业信息查询官网

微网站怎么做的好,公司查询网全国企业信息查询官网,电商网站设计内容,建设部指定招标网站目录 1. 存储函数2. 存储函数的应用3. 错误处理4. 抛出异常5. 事务处理6. 事务隔离级7. 应用实例参考书籍 1. 存储函数 要 创建 存储函数#xff0c;需要用到 CREATE 语句#xff1a; CREATE FUNCTION 存储函数名([参数名 类型, ...])RETURNS 类型[存储函数体]注意#xff1… 目录 1. 存储函数2. 存储函数的应用3. 错误处理4. 抛出异常5. 事务处理6. 事务隔离级7. 应用实例参考书籍 1. 存储函数 要 创建 存储函数需要用到 CREATE 语句 CREATE FUNCTION 存储函数名([参数名 类型, ...])RETURNS 类型[存储函数体]注意存储过程名和存储函数名不能相同 要 调用 存储函数语法格式如下 存储函数名([参数, ...])注存储过程只能采用 CALL 语句直接调用而存储函数则可以出现在各种语句中。 要 修改 存储函数需要用到 ALTER 语句 ALTER FUNCTION 存储函数名 [COMMENT ‘string’| LANGUAGE SQL| {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }| SQL SECURITY { DEFINER | INVOKER } }注上述修改语句只能修改存储函数的属性不能修改功能修改存储函数的功能与修改存储过程功能一样也只能采取先删除后重新定义的方式实现。 要 删除 存储函数需要用到 DROP 语句 DROP FUNCTION [IF EXISTS] 存储函数名注意在创建自定义存储函数的时候需要提供权限 set GLOBAL log_bin_trust_function_creators 1; # 创建自定义函数需要给权限注上述语句只需要在开启数据库时输入一次即可。 2. 存储函数的应用 【例 1】在数据库 score 中创建存储函数要求通过给定的学号输出相对应的姓名。 drop FUNCTION if exists f1; delimiter $ create FUNCTION f1(stu_id char(20)) returns varchar(20) # 返回学生姓名 begindeclare sname varchar(20);select stu.name into snamefrom stuwhere stu.id stu_id;return sname; end$ delimiter ;select f1(20191001) as Name;【例 2】在数据库 score 中创建存储函数要求输出每位学生的所修学分总数。 drop FUNCTION if exists getxf; delimiter $ create FUNCTION getxf(stu_id char(20)) returns decimal(5,1) # 返回学生总学分 begindeclare s decimal(5,1) default 0; # 因为之后要求和所以给个缺省值0select sum(if(score.score 60, lesson.xf, 0)) into sfrom score join lesson on score.LessonId lesson.lessonidwhere score.stuId stu_id;return s; end$ delimiter ;select stu.id, stu.name, IFNULL(getxf(stu.id),0) as 学分 from stu;3. 错误处理 在执行 SQL 语句后可能有时会出错那么大家可以根据报错编号在 MySQL 手册里面查找出错原因。 错误处理语句 DECLARE 处理动作 HANDLER FOR 条件值 ,...处理语句过程体4. 抛出异常 我们还可以自定义错误代码以及抛出异常值 SIGNAL SQLSTATE 错误编号自定义不能与系统已有编号重复 SET message_text 错误提示信息;示例如下 SIGNAL SQLSTATE 12345 set message_text 证件号不存在;5. 事务处理 关闭自动提交 自动提交常用语银行系统中比如小邓给森林转了 1 元的写博客助力费那么这个动作应该是同步的即小邓银行账户扣除 1 元与此同时森林银行账户增加 1 元假设小邓银行账户刚好有 1 元足够扣除。不能说小邓银行账户扣除 1 元但森林银行账户余额不变比如转钱信号传输中受到干扰导致信号未正确传输。 这时候 关闭自动提交 就可以实现解决这种情况。当完成一系列操作后只有手动提交事务才能算是实现了之前的所有操作 SET AUTOCOMMIT 0;注默认是开启自动提交的即 SET AUTOCOMMIT 0; 。 开始事务 START TRANSACTIONSQL语句结束事务 COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]撤销事务 ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]回滚事务到指定点 回滚前需要先设置一个保存点 SAVEPOINT 保存点名然后才可以回滚事务 ROLLBACK [WORK] TO SAVEPOINT 保存点名6. 事务隔离级 脏读dirty reads一个事务读取了另一个未提交的并行事务写的数据。不可重复读non-repeatable reads一个事务重新读取前面读取过的数据 发现该数据已经被另一个已提交的事务修改过。幻读phantom read一个事务重新执行一个查询返回一套符合查询条件的行 发现这些行因为其他最近提交的事务而发生了改变。 以上 3 种情况是我们不想看见的。 SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVELSERIALIZABLE //可序列化| REPEATABLE READ //可重复读| READ COMMITTED //提交读| READ UNCOMMITTED //未提交读如果指定GLOBAL那么定义的隔离级将适用于所有的SQL用户如果指定SESSION则隔离级只适用于当前运行的会话和连接。 基于 ANSI/ISO SQL 规范MySQL 提供了 4 种隔离级序列化、可重复读、提交读和未提交读。 查看当前事务隔离级 SELECT TRANSACTION_ISOLATION;7. 应用实例 请自行创建数据库 bank并在里面新建一个表 account表内容如下 下面完成转账操作 set autocommit 0; # 关闭自动提交功能select * from account;update account set ck ck - 500 where id 001;SAVEPOINT a; # 保存点(rollback时只撤销后面的操作)update account set ck ck 500 where id 002;select * from account;此时还未提交事务大家可以在可视化界面刷新表 account发现数据并没有更新。这是因为我们关闭了自动提交因此要手动提交事务 COMMIT;参考书籍 《MySQL实用教程第4版》 上一篇文章【数据库——MySQL】12过程式对象程序设计——存储过程
http://www.hkea.cn/news/14357960/

相关文章:

  • 北京专门做网站的网站建设策划书色彩设计方案
  • 商城网站的搜索记录代码怎么做德国室内设计网站
  • 佛山门户网站建设公司金融网站织梦模板免费下载
  • 北京 网站建设 公司创建网站时间代码
  • 做图的兼职网站seo关键词排名价格
  • 网站建设免费域名备案和网站备案
  • 精准营销服务seo是什么单位
  • 手机网站建设商场苏州高新区住建局官网
  • 沧州网站建设优化案例企业网站四种类型
  • 织梦网站手机版端设置网站根目录在哪儿
  • 网站推广建设阶段wordpress自建主题
  • 汉鼎中国 网站建设余姚 做网站
  • 如何查企业做网站是否备案过视频发布到哪些平台可以赚钱
  • 大庆免费网站建设公司网站建设布局
  • 织梦网站熊掌号改造怎么做wordpress 幻灯片标签
  • 五星花园网站建设兼职海口网站制作企业
  • 免费的黄冈网站有哪些建筑设计方案
  • 百度做的网站国外可以打开吗中国建筑工程有限公司
  • 京东的网站规划与建设网站建设 骏域网络建设专家广州
  • 燕郊的大型网站建设制作一款app软件大概需要多少费用
  • 做个网站做什么呢wordpress 文章加图片
  • 广州电子商务网站建设费用惠州公司网站建设价格
  • 培训网站设计师东莞网站建设 织梦
  • 中牟高端网站建设天猫网页版
  • wordpress图片间隔东莞seo 公司
  • 灯罩技术支持东莞网站建设个人网站程序下载
  • 烟台网站排名优化公司哪家好wordpress 总数 函数
  • 名师工作室网站建设建议宁阳网页设计
  • 西安北郊网站维护运营好设计购物网站
  • 移动端网站建设的方案建官网公司