PHP程序员站--PHP编程开发平台
 当前位置:主页 >> 数据库 >> MySQL >> 

MySQL视图的应用

MySQL视图的应用

来源:互联网  作者:  发布时间:2009-04-20
本文分别从创建视图,修改视图,和应用视图三方面介绍了视图.相信

本文分别从创建视图,修改视图,和应用视图三方面介绍了视图.相信你在看完本文后对视图能够熟练应用.

什么是Mysql视图

视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。

视图是存储在数据库中的查询的SQL 语句,它主要出于两种原因:安全原因, 视图可以隐藏一些数据,如:社会保险基金表,可以用视图只显示姓名,地址,而不显示社会保险号和工资数等,另一原因是可使复杂的查询易于理解和使用。

另外Mysql 4.X 及以下版本是不支持视图的,在Mysql 5.X及更高版才开始支持.在使用时请注意.

创建视图

为了简化查询,在实际项目开发过程中,通常可以采用为数据库中的某个表建立视图的方式。在建立的视图中只有开发人员所关心的字段。运行本实例,如图9.6所示,分别在图中输入登录用户的用户名和密码,单击“进入”按钮后,如果用户输入错误的用户名或密码,则给出错误提示,反之如果输入的用户名和密码正确,则提示成功登录。由于本实例采用视图建立了虚表,所以应首先在“命令提示符”下建立视图,如图9.7所示。

 MySQL中创建视图可以通过create view语句来实现,具体创建格式如下:

create [ or deplace] [algorithm={merge | temptable | undefined}] view view_name [( column_list)] as select_statement [with [cascaded | local] check option]

algorithm={merge | temptable | undefined}属性用于优化MySQL视图的执行,该属性有3个可用的设置。下面将介绍这3个设置的使用方法。

merge:该参数使MySQL执行视图时传入的任何子句合并到视图的查询定义中。

temptable:如果视图低层表中的数据有变化,这些变化将在下次通过表时立即反映出来。

undefined:当查询结果和视图结果为一一对应关系时,MySQL将algorithm设定为temptable。

view_name:新建视图的名称。

select_statement:SQL查询语句用于限定虚表的内容

实现过程

(1)建立数据库及数据表,本实例中将数据表命名为tb_admin。

(2)建立完数据表后,就可以在命令提示符下建立视图。创建视图的代码如下:

create view chkadmin as select name, pwd from tb_admin

创建完视图chkadmin后,该视图中只含有name和pwd两个字段,这样会给密码验证工作带来很大的方便。

(3)建立与MySQL数据库的连接。代码如下:

以下为引用的内容:
<?php

$conn=mysql_connect("localhost","root","root");

mysql_select_db("db_database09",$conn);

mysql_query("set names gb2312");

?>

(4)判断用户是否单击了“进入”按钮,如果是则通过视图chkadmin对用户身份进行验证。该过程代码如下:

<?php

if($_POST[submit]!="")

{

  include_once("conn.php");

  $name=$_POST[name];

  $pwd=$_POST[pwd];

  $sql=mysql_query("select * from chkadmin where name='".$name."' and

pwd='".$pwd."'",$conn);

  $info=mysql_fetch_array($sql);

  if($info==false){

   echo "<script>alert('用户名或密码输入错误!');history.back();</script>";

   exit;

  }

  else

  {

   echo "<br><div align=center>登录成功!</div>";

  }

 }

?>

Tags: Mysql视图   视图   mysql   应用   创建   查询   php   数据   代码   sql  
最新文章
推荐阅读
月点击排行榜
PHP程序员站 Copyright © 2007-2010,PHPERZ.COM All Rights Reserved 粤ICP备07503606号