MySql视图和存储程序

1、视图

1、创建视图

create view(字段别名...) as 选择语句
例:
create view(ln,fn) as select last_name,first_name from student;

2、可以通过视图对底层表进行增删改查操作。

2、存储程序

1、复合语句和语句分隔符

delimiter 分隔符名
create procedure 函数名()
begin
函数体
end;delimiter #结束分隔符call 函数名

例:delemiter $create procedure show_times()begin   select CURRENT_TIMESTAMP as ‘Local Time‘;   select UTC_TIMESTAMP as ‘UTC Time‘;end$delemitercall show_times(); #调用

2、存储函数和存储过程

create function 函数名(参数列表)returns type
stmt
create procedure 存储过程名(参数列表)stmt

函数例子:

delemiter $
create function test(emp_salary INT)
returns INT
READS SQL DATA
BEGIN
 RETURN(select count(*) from emp where salary > 5000 and salary=emp_salary);
END$
delemiter;

函数只能返回一个值,而要返回多个值可以编写多个函数多次调用,或者使用存储过程out。

存储过程例子:

delemiter $
CREATE PROCEDURE show_born_in_year(p_year INT)
BEGIN
    SELECT first_name,last_name,birth,death
    from president
    where YEAR(birth)=p_year
END$
delemiter;

过程不能用在表达式里,只能使用call语句调用.

存储过程的三种参数类型:in、out、inout,默认为in:

3、触发器

触发器是与特定表相关联的存储过程,其定义会在执行表的delete、insert、update语句时被自动激活。触发器属于表

语法:

create trigger trigger_name     #触发器名
[before|after]                  #触发时机
[insert|delete|update]          #激活触发器的语句
ON table_name                   #关联表
FOR EACH ROW trigger_stmt       #内容

例子:

create table t(percent INT, dt DATETIME);
delimiter $
create trigger bi_t BEFORE INSERT ON t
      FOR EACH ROW BEGIN
           IF NEW.percent < 0 then
                 SET NEW.percent=0;
           ELSEIF NEW.percent > 100 then
                 SET NEW.percent=100;
           END IF;
end$  NEW.dt=CURRENT_TIMESTAMP;
end$
delimiter;

原文地址:https://www.cnblogs.com/xiaolan-/p/12406016.html

时间: 2024-11-13 06:56:31

MySql视图和存储程序的相关文章

7Python全站之路系列之MySQL视图

Python全栈之路系列之MySQL视图 视图是一个虚拟表(非真实存在),其本质是根据SQL语句获取动态的数据集,并为其命名,用户使用时只需使用名称即可获取结果集,并可以将其当作表来使用. 创建视图 创建一个名称为v1的视图,其功能就是查询color表中的所有数据 CREATE VIEW v1 AS SELECT * FROM color; 查看视图 使用视图时,将其当作表进行操作即可,由于视图是虚拟表,所以无法使用其对真实表进行创建.更新和删除操作,仅能做查询用. select * from 

第11章 mysql 视图

2015-10-24 目录 参考资料 [1] 唐汉明.深入浅出MySQL 数据库开发.优化与管理维护(第2版)[M].北京:人民邮电出版社,2014 [2] Schwartz.高性能MySQL(第3版)[M].北京:电子工业出版社,2013 [3] 范德兰斯.MySQL开发者SQL权威指南 [M].北京:机械工业出版社,2008 [4] Forta.MySQL必知必会 [M].北京:人民邮电出版社,2009 [5] mysql视图学习总结 [6] mysql之视图 [7] mysql之视图详解

八、mysql视图、存储过程、函数以及时间调度器

1.create or replace view emp_view as select * from t4 ;给t4表创建一个名为emp_view的视图 2.drop view emp_view 删除视图 ======================================= 1.创建一个存储过程(查询所有数据) create procedure p1 () READS SQL DATA BEGIN select * from t4; END 2.创建一个存储过程(查询传参数据) cre

MySQL视图view/存储过程和函数的使用

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px ".PingFang SC Semibold"; color: #454545 } p.p3 { margin: 0.0px 0.0px 2.0px 0.0px; font: 14.0px

深入解析MySQL视图view

阅读目录---深入解析MySQL视图 创建视图 查看视图 视图的更改 create or replace view alter DML drop 使用with check option约束 嵌套视图 定义视图时的其他选项:algorithm.definer.SQL security 视图查询语句的处理 替代方法 具体化方法 Q:什么是视图?视图是干什么用的? A: 视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据.作为一个select语句保存在数据字典中的. 通过视图,可以展现

MySQL视图概述

1.介绍 在传统关系型数据库里,视图有时也被称作虚表,是基于特定SQL结果集的虚拟数据表.在有些场合会变得很方便,例如:原有系统重构,旧的数据表A和B已经被拆分和合并到数据表C.D.F里面,为了实现平滑迁移不影响对外数据业务,可以分别创建和原有数据表A和B一致的视图G和H,再实现数据层升级,不影响现有业务. 2.创建 创建MySQL视图语法如下 CREATE [ALGORITHM=[UNDEFINED | MERGE | TEMPTABLE] ] [DEFINER=用户名] [SQL SECUR

MySQL 视图使用初探

<一> 视图 1.优点 视点集中 简化操作 定制数据 合并分割数据 安全性 2.为什么需要视图? 视图是存储在数据库中的查询的sql 语句,它主要出于两种原因: 安全原因,视图可以隐藏一些数据,如社会保险基金表,可以用视图只显示姓名,地址,而不显示社会保险号和工资数等, 可使复杂的查询易于理解和使用. 3.创建视图的语法 CREATE VIEW view_name      AS         SELECT column_name(s)         FROM table_name    

Mysql视图的作用及其性能分析

定义:视图是从一个或几个基本表导出的表,它与基本表不同,是一个虚表. 作用: 1.简化操作,不用进行多表查询. 2.当不同种类的用用户共享同一个数据库时,非常灵活,(用户以不同的 方式看待同一数据. 3.视图对重构数据库提供了一定程度的逻辑独立性. 数据的逻辑独立性是指:如增加新的关系或对原有的关系增加新的 字段,用户的应用程序不受影响. 例如:原有一个Student(Sno,Sname,Ssex,Sage,Sdept)这样一个表. 后来变动为:Sx(Sno,Sname,Sage)和SY(Sno

MySQL 视图知识点小结

视图本身是一个虚拟表,不存放任何数据.在使用SQL语句访问视图的时候,它返回的数据是MySQL从其他表中生成的.视图和表在同一个命名空间, MySQL在很多地方对于视图和表是同样对待的.不过视图和表也有不同.例如,不能在视图上创建触发器,也不能用DROP TABLE命令删除视图. 视图的实现算法: 合并算法:merge 临时表算法:tmptable 可更新视图(updatable view):可以通过更新视图来更新视图涉及的相关表. 如果视图定义中包含了group by .union.聚合函数.