mysql视图和函数

整篇文章为个人学习心得,之后会持续发表mysql高级进阶,javaweb框架等知识点文章,制作不易,加个关注

- 视图:

是一张虚拟表,其内容由查询定义。
优点:
简单化,安全,逻辑独立性
缺点:
性能相对较差,修改不方便
分类:
可更新视图:可以对视图进行update操作
不可更新视图:不可以对视图进行update操作
创建可更新视图不能包含以下元素:
group by 子句,group by 子句,having 子句,union 和 union all 子句,外连接
检查可更新视图信息:
information_schema数据库中的 views 表的is_updatable列来检查数据库中的视图是否可更新
关于视图的一些相关语法:

-- 检查可更新视图信息,demothree为库名
SELECT table_name, is_updatable FROM information_schema.views where table_schema = 'demothree';
-- 创建名为view1的视图,列名为姓名,年龄
create view view1(姓名,年龄) as select name,age from mytable;
-- 查看名为view1的视图
select * from view1;
-- 通过视图修改数据
update view1 set age=age+1;
-- 创建不可见的数据无法插入的名为view1的视图
create view view1 as select * from mytable with check option;
-- 查看名为view1视图的代码
show create view view1;
-- 修改名为view1的视图
alter view view1 as select * from mytable2;
-- 删除名为view1的视图
drop view view1	;

**

函数:是执行特定任务的代码块

**
函数分类:

  1. 系统定义的
  2. 用户自定义的

函数与存储过程的区别:
调用时:
函数用select,过程用call
参数:
函数只能是in传入参数,过程可以是in,out,inout
返回值:
函数必须有且只能一个,过程可以没有
函数的使用:

-- 创建一个名为myfun1的函数,返回值类型为varchar类型,用来传入id获取name
create function myfun1(id int)returns varchar(20)
begin
	declare name varchar(20);-- 声明一个变量
	select mytable.name into name from mytable where mytable.id=id;-- mytable为数据库的一张表
	reutrn name;
end;
-- 调用函数
select myfun1(1);
发布了3 篇原创文章 · 获赞 6 · 访问量 1889

猜你喜欢

转载自blog.csdn.net/weixin_46364022/article/details/104435039