在初期的工作中,要做一个系统登录验证,翻阅同事做的登录验证,发现同事们做用户名验证时,查的结果集来自一个视图,之前也弄过视图,但很少去仔细看过有关方面的详细知识,于是特意百度谷歌了一下,总结如下知识:

视图,是基于SQL语句的结果集的可视化表。从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据。从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表。从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。

个人理解是:DB中实际是不存在这个表的,这个表是SQL语句执行后生成的临时表,这个表毫无疑问是在系统临时表中。我们对这个表的增删查改都不会实际影响到真实的数据。

这样做的好处,就拿工作中的实例来说,用户登录验证中烟验证用户的密码和用户名是否一致,假设存用户信息表中还含有其他机密敏感数据,如果直接查这个表的话,比如说手贱式的用select * from 那么这会导出所有的信息,同时也有不要的内存cpu开销.所以建立一个视图,将需要做验证的字段查出一个虚拟表,然后在在这个表中查匹配。这样就可以隐藏掉机密信息。当然视图还有其他的用途,详见百度;

实际建立:创建一个视图

create view LoginCheck asselect name ,LogKey from security_user where security_user.normal =1 union select name ,LogKey from security_user where security_user.normal =2
select LoginCheck.name, LoginCheck.LogKey from LoginCheck
Alter LoginCheck as select name,LogKey from normal_user

更多相关文章

  1. SQL Server之JSON 函数详解
  2. MySQL 5.7.9 服务无法启动-“NET HELPMSG 3534”的解决方法
  3. MySQL系列多表连接查询92及99语法示例详解教程
  4. Linux下MYSQL 5.7 找回root密码的问题(亲测可用)
  5. MySQL 什么时候使用INNER JOIN 或 LEFT JOIN
  6. 如何去掉状态栏和内容视图之间的黑色阴影线
  7. android中文api(89)——ViewManager
  8. Android中的FILL_PARENT与WRAP_CONTENT的区别
  9. android用户界面-组件Widget-地图视图MapView

随机推荐

  1. Linux下获得本机IP(非127.0.0.1)
  2. linux常用命令大全(转)
  3. Linux C Socket UDP编程介绍及实例
  4. Linux学习第二天-文件系统和简单文件操作
  5. Linux下高频命令分类辑录(基本使用篇)
  6. linux从入门到精通(八)(添加用户)
  7. Linux 64位下Oracle 12CR2安装(二)
  8. Linux命令-定时任务命令:crontab
  9. linux3.1内核移植到S3C2416的过程和问题
  10. 10.32/10.33 rsync通过服务同步 10.34 li