应用视图
在实际的Web开发过程中,多个数据表中可能有很多的字段,但某个模块可能只需要其中的几个字段。为了提高查询速度和简便操作,可以将该模块需要的字段单独提取出来放在某视图中,例如本实例涉及到学生表和成绩表,在建立的视图中只含有与学生成绩有关的字段,如图9.11所示。运行本实例,如图9.12所示,图中的查询结果显示的字段即为视图中的所有字段。
图9.11 创建视图
图9.12 学生成绩列表
本实例创建的视图涉及到多表查询,这说明多个表之间可以通过视图来组合为一个整体,这样对视图的操作相当于多表查询。但如果这些表中有相同的字段,必须按如下方式书写重名的字段:
表名1.字段名,表名2.字段名……
实现过程
(1)在“命令提示符”窗口下为数据库建立视图。代码如下:
create view scoreinfo as select sno,sname,yw,wy,sx from tb_student,tb_score where tb_student.id=tb_score.sid
(2)建立数据库连接文件conn.php。代码如下:
以下为引用的内容: <?php $conn=new mysqli("localhost","root","root","db_database09"); $conn->query("set names gb2312"); ?> |
(3)查询视图scoreinfo中的内容,并显示查询结果。代码如下:
以下为引用的内容: <?php include_once("conn.php"); $sql=$conn->query("select * from scoreinfo"); $info=$sql->fetch_array(MYSQLI_ASSOC); if($info==NULL) { echo "暂无学生信息"; } else { do { ?> <tr> <td height="20" bgcolor="#FFFFFF"><div align="center"><?php echo $info[sno];?></div></td> <td bgcolor="#FFFFFF"><div align="center"><?php echo $info[sname];?></div></td> <td bgcolor="#FFFFFF"><div align="center"><?php echo $info[yw];?></div></td> <td bgcolor="#FFFFFF"><div align="center"><?php echo $info[wy];?></div></td> <td bgcolor="#FFFFFF"><div align="center"><?php echo $info[sx];?></div></td> </tr> <?php } while( $info=$sql->fetch_array(MYSQLI_ASSOC)); } ?> |