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

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

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

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

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

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

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

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

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

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

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

举个例子,假如有两个表A和B,表A有一个字段叫‘分类’,表B有一个字段叫‘类别’。如果定义表B的字段‘类别’为外键,关联字段是表A的‘分类’字段。那以后如果要给表B的‘类别’字段插入一个值,那么这个值必须是表A的‘分类’字段中存在的值,也就是说表B的‘类别’字段的取值范围就是表A中的‘分类’字段的已有值。

至于如何定义外键,拿上面的例子来说,就是

create table B

(

`类别` varchar(20),

……

foreign key(`类别`) references A(`分类`)

)

这样两个表的字段就关联起来了。


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

原文地址: https://outofmemory.cn/zaji/7378729.html

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

发表评论

登录后才能评论

评论列表(0条)

保存