本实验完成如下结果:
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);
这时userinfo里应该能看到插入的数据。
而且触发器beforeinsertuserinfo应该被触发执行,即 userinfolog 里应该有了数据。
mysql> select * from userinfo;
mysql> select * from userinfolog;
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;
作者:张庆(网眼) 2009-3-7
来自“网眼视界”:http://blog.why100000.com
“十万个为什么”电脑学习网:http://www.why100000.com
分享到:
相关推荐
### MySQL触发器、存储过程、自定义函数、视图示例 #### 一、MySQL触发器 触发器是一种特殊类型的存储过程,它被设计为在特定事件(如INSERT、UPDATE或DELETE操作)发生时自动执行。触发器可以用来强制业务规则、...
1. 存储过程和函数的修改可能影响依赖于它们的其他对象,如视图、触发器等。 2. 触发器可能导致数据更新的隐式行为,需要谨慎设计以避免逻辑复杂性和潜在的问题。 总之,MySQL的存储过程和触发器是强大的工具,用于...
这个系统利用了MySQL的一些高级特性,包括外键、触发器、函数和视图,以实现高效、安全的数据操作。下面将详细解释这些概念及其在仓库管理系统中的应用。 1. **外键(Foreign Key)**: 外键是数据库表之间关联的...
MySQL中的视图、触发器和存储过程是数据库管理中常用的功能,它们可以帮助开发者更高效、安全地进行数据操作。下面将分别对这三个概念进行详细解释。 **视图(View)** 视图是一种虚拟表,它是由SQL查询结果形成的...
下面实验创建ON COMMIT 的FAST刷新模式,在mysql中用触发器实现insert , update , delete 刷新操作 1、基础表创建,Orders 表为基表,Order_mv为物化视图表 代码如下: mysql> create table Orders( -> order_id int...
本文详细介绍了MySQL中的四个高级功能:视图、存储函数、存储过程和触发器。这些功能不仅能够增强数据库的性能,还能提高数据的安全性和一致性。通过合理地使用这些工具,可以有效地管理和优化数据库的应用程序。...
MySQL 数据库结构管理小工具,MySQL 表、视图、触发器、函数、过程结构同步管理,支持MySQL5.x ~ MySQL8,可保存创建对象的选择,导出SQL,当表、过程超过100着实令人头大,特意读取了表等的创建时间,可根据时间...
CHM文件是一种Windows帮助文件,包含了大量的MySQL知识,如数据库概念、安装配置、SQL语法、索引、视图、触发器、存储过程和函数等。这个手册可以帮助用户快速查找并理解MySQL的各种功能和操作,尤其对于初学者来说...
综上所述,MySQL中的索引、视图、触发器、游标、事务和存储过程都是高级特性,这些工具可以帮助开发人员更好地管理和操作数据库。通过对这些概念的理解和实践,可以大幅提升数据库应用的性能和可靠性。
MySQL存储过程与函数 MySQL3 MySQL安全机制 MySQL日志管理 MySQL数据备份 备份概述 mysqldump [逻辑] mydumper [逻辑] into outfile [逻辑] xtrabackup [物理] snapshot [物理] tar打包备份 [物理] ...
知识点7: 存储过程与函数的创建管理实验 *掌握存储过程和函数的概念和作用 *掌握使用 CREATE PROCEDURE 语句创建存储过程 *掌握使用 CREATE FUNCTION 语句创建函数 *掌握存储过程和函数的维护和优化方法 知识点8: ...
4. 存储函数(Stored Functions):与存储过程类似,但不返回多条结果,而是单个值。 5. 权限管理:使用`GRANT`和`REVOKE`命令管理用户权限。 在Linux环境下,熟练掌握MySQL的操作和存储过程对于数据库管理至关...
28.MySQL高级存储过程函数.avi 29.MySQL高级触发器介绍.avi 30.MySQL高级触发器创建及应用.avi └31.MySQL高级触发器查看及删除.mp4 ├第三天视频 01.MySQL高级今日内容.mp4 02.MySQL高级应用优化.avi 03.MySQL高级...
MySQL 5.0新增特性中,存储过程是一个重要的部分,本书主要面向对MySQL有一定了解,但希望了解...通过本书的学习,读者能够有效地利用MySQL 5.0提供的存储过程、触发器、视图等新特性,提高数据库操作的效率和安全性。
MyWebSQL是一个基于Web的MySQL数据库...除了操作表格数据外,MyWebSQL还可以对包括视图,存储过程,触发器和函数在内的对象进行控制。支持数据和查询结果的导入\导出。MyWebSQL还内置一个带语法着色功能的SQL编辑器。
所谓事务,就是把多个事情按照一个事情来处理,在mysql中是用户定义的一个操作序列,这些操作要么都做,要么都不做,是一个不可分割的单位。例如,你去银行取钱,输密码、填单子、工作人员操作电脑、验钞机验钞、...
### 数据库系列:MySQL 视图、触发器的原理与实战 #### 视图原理与实战 ##### 一、视图的基本概念 视图(View)是基于一个或多个表的虚拟表,它本身并不存储数据,而是由一系列定义好的SQL查询构成。视图可以被...
本资源摘要信息主要是基于 MySQL 数据库武洪萍版第五章习题与答案,涵盖了数据库索引、视图、触发器、存储过程和函数等多个方面的知识点。 1. 数据库索引:索引是数据库中用于提高查询速度的一种数据结构。它可以...
MySQL数据库在进行复杂数据操作时,常常会用到事务、视图、存储过程和触发器。这些特性使得数据库管理更加高效且安全。下面将详细解释这些概念及其应用。 首先,我们来看MySQL中的事务(Transaction)。事务是...
在MySQL中,`mysqldump`是一个非常重要的实用工具,它用于备份数据库或导出数据库的部分内容,如表、视图和存储过程。根据提供的描述和标签,我们主要关注如何使用`mysqldump`来导出存储过程。 首先,要导出数据库...