MySQL中视图和表的区别与联系

MySQL中视图和表的区别与联系,第1张

联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系

区别:1、视图是已经编译好的sql语句。而表不是

2、视图没有实际的物理记录。而表有。

3、表是内容,视图是窗口

4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改

5、表是内模式,视图是外模式

6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。

7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。

8、视图的建立和删除只影响视图本身,不影响对应的基本表。

可以通过select查询视图的方式,来判断视图是否存在。

--1.假设现在新建一个视图

create or replace force view test_view as

select * from dept

--2.通过count(1)查出来的是,该视图中记录的总条数

select count(1) from test_view

--3.如果要判断该视图是否存在,直接查看该视图中的内容即可

select * from test_view

-- 如果有字段等内容,说明视图是存在的。反之,无法成功编译,因为视图不存在。

mysql 存储过程中建立视图的问题

定义视图,方便快捷查询

create view v_user

as

select * from table_user

定义过程,定义好业务逻辑 一次编译,反复执行,效率高,速度快

create procedure p_find_user( sname varchar)

as

begin

select pss from table_user where name =sname

end

定义触发器,方便对插入数据的整理,约束,或建议其他关联关系。

create trigger tri_table

before insert on table_name

for each row

begin

:new.id:=seq_table_name.nextval

end


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8431444.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存