welcome here!
当你觉得不行的时候,就去路上走一走,这样你就是一个行人了

数据库视图的创建思路

数据库视图概念

视图是从一个表或是多个表导出的表,视图与表不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中指存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。

视图是虚表,是从一个或是几个基本表导出的表。可以将视图看做是移动的窗口,通过它可以看到自己感兴趣的数据,视图是从一个或是多个表中获得的,这些表的数据存放在数据库中,那些用户产生视图的表叫做视图的基表,当然也可以从另一个视图中产生视图。

视图看上非常像是数据库的物理表,对它的操作同任何其他的表一样。当通过视图修改数据时候,实际上是改变基表中的数据,相反的,基表数据的改变也会自动反应在由基表产生的视图中。

视图中的数据会随着原表的变化自动更新,因为视图归根结底就是SELECT语句,每次查看视图其实就是执行SELECT语句,因此可以保证数据的最新状态。

举例需求

在这里插入图片描述

数据库表信息关联

这里数据库就不复现了,但是提供一下数据库中表的相对关联关系

表名称 表中某些特定字段
t_user user_id 和user_name
t_user_info user_id 和 chn_name 和 eng_name
t_user_dept user_id 和 dept_code
t_dept dept_code 和 dept_name

以上表中对应关系关联就是需求中的用户视图的需求

创建视图思路

创建视图要明白需求的前后关系,是看用户所关联的信息还是看包含某些字段属性的人
这里的需求是看用户的基本信息来找对应的字段属性,所以得出基础数据库表就是t_user表

#前面的u、ui、、ud、d 是 t_user u 和 t_user_info ui 和 t_user_dept ud 和 t_dept d 的别名
select 
  u.user_id,             #需求的用户id字段
  u.user_name,           #需求的账号字段
  ui.chn_name,           #需求的姓名字段(中文名)
  ui.eng_name,           #需求的姓名字段(英文名)
  ud.dept_code,          #需求的所属机构代码字段
  d.dept_name            #需求的所属机构名称字段
from t_user u
left join t_user_info ui on u.user_id = ui.user_id
left join t_user_dept ud on u.user_id = ud.user_id
left join t_dept d on ud.dept_code = d.dept_code

left join :左连接 这里表示关联表以t_user 字段为主 ON:表示连接条件 也就是2个不同表之间公共的字段

这里一共四个表关联,所以有三个left join关系

执行操作

在这里插入图片描述
编写sql语句:
在这里插入图片描述

点击预览,如果有语法错误会在下面提示框给出对应的语法错误提示,需要进行调整修改
,无语法错误则能正常查询出对应的数据。
在这里插入图片描述

最后可以对sql语句进行自动美化,以及对相应的条件进行过滤

SELECT
    u.user_id,
    u.user_name,
    ui.chn_name,
    ui.eng_name,
    ud.dept_code,
    d.dept_name 
FROM
    (((
    t_user u
    LEFT JOIN t_user_info ui ON ((
    u.user_id = ui.user_id 
    )))
    LEFT JOIN t_user_dept ud ON ((
    u.user_id = ud.user_id 
    )))
    LEFT JOIN t_dept d ON (((
    ud.dept_code 
    ) :: TEXT = ( d.dept_code ) :: TEXT 
    ))) 
WHERE
    (((
    u.status 
    ) :: TEXT = '0' :: TEXT               #一个状态值 标识
    ) 
    AND (( u.user_name ) :: TEXT <> 'admin' :: TEXT )    #过滤掉admin用户
    AND (( u.user_name ) :: TEXT ~~ 'TY%' :: TEXT ))     #过滤只允许TY%开头的用户账号

在这里插入图片描述

赞(1) 打赏
开源学习 相互进步www.likai.tech » 数据库视图的创建思路
分享到: 更多 (0)

相关推荐

  • 暂无文章

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

点赞是最好的支持

微信扫一扫打赏