`
touchinsert
  • 浏览: 1342916 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

MySQL 触发器 存储过程 自定义函数 视图 简单示例

 
阅读更多

本示例实现如下效果:
0.test数据库有userinfo用户信息表 和userinfolog用户信息日志表
1.建立一个userinfo表新增记录时的触发器 将新增日志加入到userinfolog
2.建立一个向userinfo表新增记录的存储过程
3.根据userinfo表的出生日期字段 我们将建立一个简单算得年龄的自定义函数
4.创建一个userinfo的视图 调用年龄函数
-------------

0.准备相关表
mysql> use test;
mysql> create table userinfo(userid int,username varchar(10),userbirthday date);
mysql> create table userinfolog(logtime datetime,loginfo varchar(100));
mysql> describe userinfo;

1.触发器
mysql> delimiter |
mysql> create trigger beforeinsertuserinfo
-> before insert on userinfo
-> for each row begin
-> insert into userinfolog values(now(),CONCAT(new.userid,new.username));
-> end;
-> |

mysql> delimiter ;
mysql> show triggers;

2.存储过程
mysql> delimiter //
mysql> create procedure spinsertuserinfo(
-> puserid int,pusername varchar(10)
-> ,puserbirthday date
-> )
-> begin
-> insert into userinfo values(puserid,pusername,puserbirthday);
-> end;
-> //

mysql> show procedure status like 'spinsertuserinfo';

mysql> call spinsertuserinfo(1,'zhangsan',current_date);

mysql> select * from userinfo;


3.自定义函数
mysql> update userinfo
-> set userbirthday='2000.01.01'
-> where userid='1';

mysql> drop function if exists fngetage;
mysql> delimiter //
mysql> create function fngetage(pbirthday date)
-> returns integer
-> begin
-> return year(now()) - year(pbirthday);
-> end
-> //

4.视图
mysql> create view viewuserinfo
-> as select * ,fngetage(userbirthday) as userage from userinfo;
mysql> select * from viewuserinfo;

清除日志记录
mysql> truncate table userinfolog;
mysql> delete from userinfolog;

分享到:
评论

相关推荐

    MySQL触发器、存储过程、自定义函数、视图示例

    ### MySQL触发器、存储过程、自定义函数、视图示例 #### 一、MySQL触发器 触发器是一种特殊类型的存储过程,它被设计为在特定事件(如INSERT、UPDATE或DELETE操作)发生时自动执行。触发器可以用来强制业务规则、...

    MYSQL触发器与存储过程.ppt

    1. 存储过程和函数的修改可能影响依赖于它们的其他对象,如视图、触发器等。 2. 触发器可能导致数据更新的隐式行为,需要谨慎设计以避免逻辑复杂性和潜在的问题。 总之,MySQL的存储过程和触发器是强大的工具,用于...

    MySql视图触发器存储过程详解

    MySQL中的视图、触发器和存储过程是数据库管理中常用的功能,它们可以帮助开发者更高效、安全地进行数据操作。下面将分别对这三个概念进行详细解释。 **视图(View)** 视图是一种虚拟表,它是由SQL查询结果形成的...

    mysql触发器实现oracle物化视图示例代码

    oracle数据库支持物化视图–不是基于基表的虚表,而是根据表实际存在的实表,即物化视图的数据存储在非易失的存储设备上。 下面实验创建ON COMMIT 的FAST刷新模式,在mysql中用触发器实现insert , update , delete ...

    mysql基础-视图、存储函数、存储过程、触发器.pdf

    本文详细介绍了MySQL中的四个高级功能:视图、存储函数、存储过程和触发器。这些功能不仅能够增强数据库的性能,还能提高数据的安全性和一致性。通过合理地使用这些工具,可以有效地管理和优化数据库的应用程序。...

    mysql高级部分--包含索引建立优化_函数_存储过程_触发器_及游标

    综上所述,MySQL中的索引、视图、触发器、游标、事务和存储过程都是高级特性,这些工具可以帮助开发人员更好地管理和操作数据库。通过对这些概念的理解和实践,可以大幅提升数据库应用的性能和可靠性。

    linux下mysql的操作与存储过程

    在提供的文件中,`创建存储过程.txt`可能包含了一个或多个存储过程的创建示例,可以将其内容复制到MySQL客户端执行。`table.txt`可能是描述数据库表结构的文件,通常包含`CREATE TABLE`语句,用于创建数据表。 四、...

    mysql sql语句示例2

    插入、更新、删除、索引、过程和函数、视图、触发器、备份与还原

    数据库系列(:MySQL 视图、触发器的原理与实战

    ### 数据库系列:MySQL 视图、触发器的原理与实战 #### 视图原理与实战 ##### 一、视图的基本概念 视图(View)是基于一个或多个表的虚拟表,它本身并不存储数据,而是由一系列定义好的SQL查询构成。视图可以被...

    基于mysql事务、视图、存储过程、触发器的应用分析

    MySQL数据库在进行复杂数据操作时,常常会用到事务、视图、存储过程和触发器。这些特性使得数据库管理更加高效且安全。下面将详细解释这些概念及其应用。 首先,我们来看MySQL中的事务(Transaction)。事务是...

    mysql示例数据库

    7. **存储过程和函数**:学习编写存储过程和自定义函数,提高代码复用和数据库性能。 8. **触发器**:了解如何设置触发器,使得在特定的DML(数据操纵语言)操作后自动执行某些任务。 9. **备份与恢复**:学习如何...

    MySql学习样例-脚本-示例.7z

    6. 存储过程和函数:为了简化重复任务或执行复杂操作,可以创建存储过程和自定义函数。它们可以封装多个SQL语句,提高代码复用性和安全性。 7. 触发器:MySQL中的触发器是在特定数据库事件(如INSERT、UPDATE、...

    Mysql事项,视图,函数,触发器命令(详解)

    ### MySQL触发器 触发器是一种特殊的存储过程,它会在满足特定条件时自动执行。触发器可以用来实现复杂的数据库相关功能。 #### 触发器命令 ```sql DELIMITER // CREATE TRIGGER trigger_name { BEFORE | AFTER }...

    mysql教程.pdf

    MySQL 5.0 版本引入了许多新特性,包括存储过程、触发器、视图、信息架构视图等。本教程旨在为需要了解 5.0 版本新特性的 MySQL 老用户提供指导。 存储过程 存储过程是一种存储在数据库中的程序,准确来说,MySQL ...

    传智Mysql完整视频+上课代码+笔记

    5. **存储过程和函数**:如何编写存储过程和自定义函数,实现复杂的业务逻辑。 6. **视图和触发器**:使用视图简化复杂查询,以及通过触发器实现自动化的数据处理。 7. **事务和并发控制**:理解ACID属性,学习事务...

    mysql 查询数据库中的存储过程与函数的语句

    ### MySQL 查询数据库中的存储过程与函数的语句 在MySQL中,存储过程和函数是非常重要的数据库对象,它们能够封装复杂的SQL逻辑,提高代码的可读性和重用性,并且能够帮助开发者更有效地管理数据库操作。本文将详细...

    mysql思维导图

    - **函数**:MySQL支持自定义函数,可以通过编写自定义函数来执行特定的任务或计算,提高代码的复用性和可读性。 #### 2. 触发器 - **触发器**:是一种特殊类型的存储过程,当特定事件(如INSERT、UPDATE或DELETE)...

    SQL查询出表、存储过程、触发器的创建时间和最后修改时间示例

    在SQL数据库管理中,了解表、存储过程和触发器的创建时间和最后修改时间对于系统维护、版本追踪以及问题排查至关重要。下面将详细讲解如何通过SQL查询获取这些信息,并提供具体的代码示例。 首先,让我们来看如何...

    mysql5.7从入门到精通课本源代码

    源代码中可能包含自定义函数和过程的示例。 7. **事务与并发控制**:在多用户环境中,理解事务的概念及其ACID属性(原子性、一致性、隔离性和持久性)至关重要。源代码会演示如何处理并发问题,如死锁和MVCC(多...

    第10章MySQL视图.docx

    MySQL视图是数据库管理系统中的一个重要概念,它提供了一种方式来组织和抽象数据库中的数据,使得数据查询和管理更为简洁和高效。本章主要探讨了MySQL视图的特性、优点以及使用规则。 首先,理解视图与表的区别是至...

Global site tag (gtag.js) - Google Analytics