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

建设网站企业无锡市滨湖区建设局网站

建设网站企业,无锡市滨湖区建设局网站,石家庄兼职建站,响应式网站建设必推全网天下游标 系统为用户开设的一个数据缓冲区 —— 存T-SQL语句从数据库检索出来的结果集 对结果集处理#xff1a;结果集一条条提取记录#xff0c;这时要用游标 使用 利用基于变量的select into语句#xff0c;只能处理单条记录使用游标循环处理 声明游标#xff1a; DECLA…游标 系统为用户开设的一个数据缓冲区 —— 存T-SQL语句从数据库检索出来的结果集 对结果集处理结果集一条条提取记录这时要用游标 使用 利用基于变量的select into语句只能处理单条记录使用游标循环处理 声明游标 DECLARE cursor_name CURSOR FOR select_statement打开游标 OPEN cursor_name使用游标 FETCH cursor_name INTO var_name [, var_name] …关闭游标 CLOSE cursor_name 顺序 游标声明在处理程序之前在变量和条件之后select 语句 不能出现INTO语句 特性 允许应用程序对 查询语句 select 返回结果集“某一行”进行操作rather than一次对整体做同一个操作只读 不可能新基础表数据不可滚动按确定顺序获取行不能以相反顺序获取不可跳行敏感 敏感游标指向实际数据类似指针引用不敏感游标使用临时副本类似传参 前者比后者更快因为不需要copy临时数据但其他数据做的更改会影响前者的数据。 create procedure qq_cursor_insert() begindeclare a varchar(15);declare b int;declare cur1 cursor for select qqno, tid from qq;declare exit handler for not found close cur1;open cur1;repeatfetch cur1 into a, b;insert into new_qq(a, b) values(a, b);until 0end repeatl;close cur1; end;触发器 定义了一系列操作这一系列操作称为触发程序当触发事件发生时触发程序会自动运行 主要监视以下情况 insertupdatedelete 行驶时间可设置为 beforeafter 特点 安全性使users具有操作数据库的某种权利比如基于时间限制规定时间外不能修改比如基于数据限制不允许分数为负数审计 跟踪user对数据库的操作复杂的数据完整性规则: 完整性检查和约束如触发器可回退 任何企图吃进超过自己保证金的期货复杂的非标准的数据库相关完整性规则 cascade 修改 或删除匹配行/设置null或default/拒绝、回退破坏相关完整性的变化 创建 触发程序是与表有关的命名数据库对象创建后该对象在MySQL中 语法 create trigger trigger_name trigger_time trigger_event on tbl_name for each row trigger_stmttrigger_name 名字唯一名称trigger_time 触发器被触发的时间 BEFORE验证新数据是否满足使用的限制 | AFTER激活触发器的语句执行之后完成几个或更多的改变trigger_event 激活触发器的语句的类型tbl_name与触发器相关联的表名不能为TEMPORARY表或VIEW同一个表不能拥有两个具有相同触发时刻和事件的触发器可能其他版本会有差异for each row用来指定对于受触发事件影响的每一行都要激活触发器的动作trigger_stmt是当触发程序激活时执行的语句。 多个语句用 BEGIN END结构 example – 限制某些字段在 60 150 230内 delimiter $$ create trigger course_insert_before_trigger before insert beginif(new.up_limit 60 || new.up_limit 150 )then set new.up_limit new.up_limit;else insert into mytable values(0); -- 注意 mytable并不存在于数据库中--原理是创造一个error终止这次insertend if end; delimiter ;OLD和NEW访问受trigger影响的字段值 INSERT 只能用 NEWDELETE 只能用 OLDUPDATE 可以用OLD引用更新前的值也可能用 NEW引用更新后的值 OLD只读不可改 example – update触发器限制某些字段在 60 150 230内 delimiter $$ create trigger course_update_before_trigger before update on course for each row beginif(new.up_limit!60||new.up_limit!150||new.up_limit!230) then set new.up_limitold.up_limit; end if; end; $$ delimiter ;查看触发器 show triggers 查看当前数据库中所有触发器的信息select *from information_schema.triggers 触发器的定义都存放在information_schema数据库下的triggers表中show create trigger 检查特定触发器定义创建触发器后MySQL自动在数据库目标下创建TRN以及TRG触发器文件可以自行打开 删除触发器 drop trigger [schema_name.]trigger_nameschema_name.可选项 指定数据库trigger_name 触发器drop trigger要super权限删除一个表的同时也会自动删除表上的触发器trigger不可更新覆盖 注意事项 创建 trigger内部select语句不能返回结果集同一个表不能创建两个相同触发时间、触发事件的触发程序5.7.2版本之后可以不可使用事务相关语句 start transactioncommitrollbackset autocommit0 MySQL触发器针对记录进行操作当批量更新数据时引入触发器会导致批量更新操作的性能降低 引擎执行的过程 MySQL存储引擎 MyISAM中 trigger不能保证原子性 更新表的同时trigger实现另一个表的更新若trigger程序失败了不会回滚这次更新前一个表的操作。InnoDB引擎支持十五trigger保持更新操作和trigger操作的原子性 —— 把他们视为同一个transaction InnoDB存储引擎实现外键约束关系时建议使用级联选项维护外键数据 —— 先维护 子表数据再维护父表 触发器的使用过程 trigger内部不能使用update用set代替before处罚程序中auto_increament字段的new值为0 instead of 实际插入新纪录时自动生成的自增型字段值 例子 维护冗余数据 —— 避免数据不一致问题的发生模拟外键级联选项 对于InnoDB存储引擎的表而言由于支持外键约束在定义外键约束时通过设置外键的级联选项cascade、set null或者no actionrestrict外键约束关系可以交由InnoDB存储引擎自动维护如果InnoDB存储引擎的表之间存在外键约束关系但是不存在级联选项或者使用数据库表为MyISAM该表不支持外键约束关系则可以使用触发器模拟实现“外键约束”之间的“级联选项 游标 系统为用户开设的一个数据缓冲区 —— 存T-SQL语句从数据库检索出来的结果集 对结果集处理结果集一条条提取记录这时要用游标 使用 利用基于变量的select into语句只能处理单条记录使用游标循环处理 声明游标 DECLARE cursor_name CURSOR FOR select_statement打开游标 OPEN cursor_name使用游标 FETCH cursor_name INTO var_name [, var_name] …关闭游标 CLOSE cursor_name 顺序 游标声明在处理程序之前在变量和条件之后select 语句 不能出现INTO语句 特性 允许应用程序对 查询语句 select 返回结果集“某一行”进行操作rather than一次对整体做同一个操作只读 不可能新基础表数据不可滚动按确定顺序获取行不能以相反顺序获取不可跳行敏感 敏感游标指向实际数据类似指针引用不敏感游标使用临时副本类似传参 前者比后者更快因为不需要copy临时数据但其他数据做的更改会影响前者的数据。 create procedure qq_cursor_insert() begindeclare a varchar(15);declare b int;declare cur1 cursor for select qqno, tid from qq;declare exit handler for not found close cur1;open cur1;repeatfetch cur1 into a, b;insert into new_qq(a, b) values(a, b);until 0end repeatl;close cur1; end;触发器 定义了一系列操作这一系列操作称为触发程序当触发事件发生时触发程序会自动运行 主要监视以下情况 insertupdatedelete 行驶时间可设置为 beforeafter 特点 安全性使users具有操作数据库的某种权利比如基于时间限制规定时间外不能修改比如基于数据限制不允许分数为负数审计 跟踪user对数据库的操作复杂的数据完整性规则: 完整性检查和约束如触发器可回退 任何企图吃进超过自己保证金的期货复杂的非标准的数据库相关完整性规则 cascade 修改 或删除匹配行/设置null或default/拒绝、回退破坏相关完整性的变化 创建 触发程序是与表有关的命名数据库对象创建后该对象在MySQL中 语法 create trigger trigger_name trigger_time trigger_event on tbl_name for each row trigger_stmttrigger_name 名字唯一名称trigger_time 触发器被触发的时间 BEFORE验证新数据是否满足使用的限制 | AFTER激活触发器的语句执行之后完成几个或更多的改变trigger_event 激活触发器的语句的类型tbl_name与触发器相关联的表名不能为TEMPORARY表或VIEW同一个表不能拥有两个具有相同触发时刻和事件的触发器可能其他版本会有差异for each row用来指定对于受触发事件影响的每一行都要激活触发器的动作trigger_stmt是当触发程序激活时执行的语句。 多个语句用 BEGIN END结构 example – 限制某些字段在 60 150 230内 delimiter $$ create trigger course_insert_before_trigger before insert beginif(new.up_limit 60 || new.up_limit 150 )then set new.up_limit new.up_limit;else insert into mytable values(0); -- 注意 mytable并不存在于数据库中--原理是创造一个error终止这次insertend if end; delimiter ;OLD和NEW访问受trigger影响的字段值 INSERT 只能用 NEWDELETE 只能用 OLDUPDATE 可以用OLD引用更新前的值也可能用 NEW引用更新后的值 OLD只读不可改 example – update触发器限制某些字段在 60 150 230内 delimiter $$ create trigger course_update_before_trigger before update on course for each row beginif(new.up_limit!60||new.up_limit!150||new.up_limit!230) then set new.up_limitold.up_limit; end if; end; $$ delimiter ;查看触发器 show triggers 查看当前数据库中所有触发器的信息select *from information_schema.triggers 触发器的定义都存放在information_schema数据库下的triggers表中show create trigger 检查特定触发器定义创建触发器后MySQL自动在数据库目标下创建TRN以及TRG触发器文件可以自行打开 删除触发器 drop trigger [schema_name.]trigger_nameschema_name.可选项 指定数据库trigger_name 触发器drop trigger要super权限删除一个表的同时也会自动删除表上的触发器trigger不可更新覆盖 注意事项 创建 trigger内部select语句不能返回结果集同一个表不能创建两个相同触发时间、触发事件的触发程序5.7.2版本之后可以不可使用事务相关语句 start transactioncommitrollbackset autocommit0 MySQL触发器针对记录进行操作当批量更新数据时引入触发器会导致批量更新操作的性能降低 引擎执行的过程 MySQL存储引擎 MyISAM中 trigger不能保证原子性 更新表的同时trigger实现另一个表的更新若trigger程序失败了不会回滚这次更新前一个表的操作。InnoDB引擎支持十五trigger保持更新操作和trigger操作的原子性 —— 把他们视为同一个transaction InnoDB存储引擎实现外键约束关系时建议使用级联选项维护外键数据 —— 先维护 子表数据再维护父表 触发器的使用过程 trigger内部不能使用update用set代替before处罚程序中auto_increament字段的new值为0 instead of 实际插入新纪录时自动生成的自增型字段值 例子 维护冗余数据 —— 避免数据不一致问题的发生模拟外键级联选项 对于InnoDB存储引擎的表而言由于支持外键约束在定义外键约束时通过设置外键的级联选项cascade、set null或者no actionrestrict外键约束关系可以交由InnoDB存储引擎自动维护如果InnoDB存储引擎的表之间存在外键约束关系但是不存在级联选项或者使用数据库表为MyISAM该表不支持外键约束关系则可以使用触发器模拟实现“外键约束”之间的“级联选项
http://www.hkea.cn/news/14562356/

相关文章:

  • 跨境电商网站开发技术学校网站建设工作计划
  • 全屏的翻页网站这么做o2o网站建设方案ppt
  • wordpress移动端视频做seo网站标题用什么符号
  • 佛山企业网站建设服务濮阳做网站公司
  • 网站备案初审过了理财网站开发
  • 如何填写网站开发验收单外贸网站搭建服务商
  • 网站建设哪个公司的好简单网站建设报价单
  • 如何写网站建设策划案网站建设中请期待
  • 做网站加一个定位功能要多少钱翻译建设企业网站
  • 广州网站建设设计哪家好如何搭建一个网站步骤
  • 建站 discuz广告门网站
  • 怎么查询网站开通时间网站建设课程中的收获
  • 企业为何要做网站安徽省建设厅网站职称申报
  • 梅州建站网络有限公司中国中建设计集团有限公司
  • 给别人做网站挣钱么网站案例分析
  • asp网上书店网站开发网站建设怎么做更好
  • 沈阳网站推广优化排名公司成都百度推广公司联系电话
  • 建设环保网站的目的与功能分析中国十大影视公司排名
  • 网站建设项目验收报告书杭州专业网站优化公司
  • 网站开发视频下载游戏平台搭建
  • 公司网站建设应注意哪些企业宣传片制作app
  • 在阿里巴巴做网站多少钱2019线上商城app
  • 如何做登陆界面的网站免费html网站代码
  • 简单分析网站的外链 以及优化的策略.网站仿站建设
  • 给个网站急急急202wordpress 百度推荐
  • 三国曹魏古城建设网站排版设计作品欣赏
  • 胶州网站建设案例广州编程培训机构
  • 深圳航空公司官方网站首页襄阳 网站建设
  • 网站商城支付接口怎么直接做免费网站
  • seo推广网站深圳百度网站排名优化