- 浏览: 898361 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (537)
- Java SE (114)
- Struts (18)
- Hibernate (25)
- Spring (3)
- Page_Tech (41)
- Others (87)
- Database (29)
- Server (24)
- OpenSource_Tools (15)
- IDE_Tool (22)
- Algorithm (28)
- Interview (22)
- Test (28)
- Hardware (1)
- Mainframe (25)
- Web application (4)
- Linux (3)
- PHP (17)
- Android (1)
- Perl (6)
- ubuntu (1)
- Java EE (9)
- Web Analysis (5)
- Node.js (2)
- javascript (2)
最新评论
-
一键注册:
request.getRequestURL()和request.getRequestURI() -
SuperCustomer:
...
SED的暂存空间和模式空间 -
juyo_ch:
讲得挺好理解的,学习了
java 死锁及解决 -
chinaalex:
最后一题答案正确,但是分析有误.按照如下过程,上一行为瓶,下一 ...
zz智力题 -
liaowuxukong:
多谢博主啦,弱弱的了解了一点。
C++/Java 实现多态的方法(C++)
MySQL视图的应用
视图也称虚表,包括执行某个查询返回的一组记录。视图可以简化获取数据的方法,并通过别名来实现抽象查询。
实例258:创建视图
实例说明
为了简化查询,在实际项目开发过程中,通常可以采用为数据库中的某个表建立视图的方式。在建立的视图中只有开发人员所关心的字段。运行本实例,如图9.6所示,分别在图中输入登录用户的用户名和密码,单击“进入”按钮后,如果用户输入错误的用户名或密码,则给出错误提示,反之如果输入的用户名和密码正确,则提示成功登录。由于本实例采用视图建立了虚表,所以应首先在“命令提示符”下建立视图,如图9.7所示。
图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>";
}
}
?>
|
举一反三
根据本实例,读者可以:
利用视图实现用户信息注册。
利用视图实现商品信息的降序输出。
实例259:修改视图
这是一个修改视图的实例
录像位置:光盘\mingrisoft\09\259
实例说明
为了提高工作效率,对不满足条件的视图可以通过修改的方式进行更改。实现本实例,首先应在数据库中创建数据表tb_changeview,该表也可以在phpMyAdmin中创建,如图9.8所示。打开“命令提示符”窗口,创建视图userinfo,如图9.9所示。更改视图userinfo,如图9.10所示。
图9.8 创建表changeview |
图9.9 创建新视图 |
图9.10 修改视图 |
技术要点
MySQL中修改视图可以通过alter view语句实现,alter view语句具体使用说明如下:
alter view [algorithm={merge | temptable | undefined} ]view view_name
[(column_list)] as select_statement[with [cascaded | local] check option]
|
algorithm:该参数已经在创建视图中作了介绍,这里不再赘述。
view_name:视图的名称。
select_statement:SQL语句用于限定视图。
实现过程
(1)建立数据库及数据表,本实例中将数据表命名为tb_changeview。
(2)创建视图userinfo。代码如下:
create view userinfo as select * from tb_changeview
|
(3)查询视图userinfo。代码如下:
select * from userinfo
|
查看执行结果,可以发现tb_changeview表中的所有的字段都一一列出。
(4)下面开始修改视图,要求修改后只列出username字段。代码如下:
alter view userinfo as select * from tb_changeview
|
(5)重新查询视图userinfo,从结果中可以发现这时只列出username一个字段,从而说明视图修改成功。
(2)建立index.php文件,用于实现多表之间的查询,如果学生表和成绩表中有满足条件的记录,则显示这些记录,否则提示没有相关信息。代码如下:
举一反三
根据本实例,读者可以:
实现修改存储商品信息的视图。
实现修改存储用户注册信息的视图。
实例260:应用视图
这是一个应用视图的实例
实例位置:光盘\mingrisoft\09\260
实例说明
在实际的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));
}
?>
|
举一反三
根据本实例,读者可以:
实现多表之间的嵌套查询。
实现多表之间相同信息的提取
发表评论
-
zz 如何安装两个MYSQL在同一机器
2012-08-01 23:04 1032说白了就一句话:一个自动安装服务,另一个手动安装服务! ... -
[zz] MySQL SQL语句练习
2012-04-10 14:43 1533MySQL SQL语句练习:1.建库建表--create d ... -
zz delete和truncate的区别
2012-03-08 16:18 683delete from aatruncate table aa ... -
【原创】MYSQL 安装时候的1045错误的解决方法
2012-03-04 21:02 771在安装的时候,出现这个问题网上的很多方法是卸载后重新 ... -
SQL删除重复记录,并只剩一条
2012-02-24 14:59 1315在几千条记录里,存在着些相同的记录,如何能用SQL语句,删 ... -
数据库驱动的载入有三种方法!
2012-01-11 15:58 9111. import java.sql.DriverM ... -
JDBC 完全总结
2012-01-11 14:46 885一、JDBC 简介 SUN 公司为了简化、统一数 ... -
oracle基础书籍推荐
2012-01-10 10:00 2696很多朋友要我帮忙推荐一下Oracle的入门书籍,能够了解Ora ... -
实例分析JDBC连接数据库代码
2011-11-15 10:37 826一、jdbc连接数据库代码速查表下面罗列了各种jdbc连接 ... -
mysql 5.0存储过程学习总结
2010-11-21 20:11 765mysql存储过程的创建,删除,调用及其他常用命令 ... -
MySQL的事务管理
2010-11-21 19:59 38681,MySQL的事务支持 MySQL的事务支持不是绑定在MyS ... -
同事今天下午的MYSQL性能优化分享
2010-10-18 23:22 768下午的分享,同事讲了 ... -
视图——ALGORITHM
2010-10-18 15:22 1335修改视图需要create view ... -
Mysql中IFNULL和IF函数
2010-10-15 17:01 7971. IFNULL(expr1,expr2) 2. 如果e ... -
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
2010-10-09 15:39 805第1章 引言 随着互联 ... -
SQL 日期函数
2010-10-08 17:44 1029SYSDATE与CURRENT_DATE区别 ... -
Oracle truncate table 与 delete tabel的区别
2010-09-03 17:05 833一、 1.delete产生rollback,如 ... -
JDBC的连接方式和驱动类型
2010-08-24 13:49 9681.连接数据库的方式:ODBC , JDBC ODBC:Op ... -
数据库原理—— 视图
2010-08-06 10:10 2371视图是一个虚拟表,其 ... -
内连接,外连接,交叉连接
2010-08-06 10:04 990探究内连接,外连接,交叉连接 (一)内连接 内连接查询操作列 ...
相关推荐
MySQL数据库应用 实验训练4:视图和索引的构建与使用 实验目的: 基于实验1创建的汽车用品网上商城数据库Shopping,理解视图和索引的概念和作用,练习视图的基本操作,包括视图的建立,视图的查询,视图的更新,...
国家开放大学 MySQL数据库应用 实验训练4:数据库系统维护
国家开放大学 形考答案 mysql 实验训练4:视图和索引的构建与使用
国开电大MySQL数据库应用实验1
资源包括:mysql视图应用,mysql存储过程,mysql使用游标,mysql使用触发器,mysql事务管理处理,mysql访问控制,mysql数据优化及备份&索引。
视图并不同于数据表,它们的区别在于以下几点: 视图不是数据库中真实的表,而是一张虚拟表,其结构和数据是建立在对数据中真实表的查询...在实际的应用过程中,不同的用户可能对不同的数据有不同的要求。。。。。。
数据库MySQL企业人事管理系统,附代码与操作过程,E-R图,表,视图设计,系统需求分析,概念逻辑分析等等
内容包括dba视频教程中的mysql数据库应用与管理,第一章:配置mysql服务器 第二章:获取元数据 第三章:存储引擎 第四章:隔离级别与锁 第五章:使用分区 第六章:导出与导入数据 第七章:备份与恢复 第八章:使用...
实验目的: 1. 掌握视图的基本概念和功能。 2. 掌握创建、修改、删除视图的方法。 3. 掌握通过视图查询、插入、删除、修改基本表中的数据的方法。 实验内容及实验器材: 一、实验内容 ...计算机、MySQL8.0
国家开放大学 数据库运维 形考2 MySQL数据库对象管理
酒店管理系统 mysql设计应用实战 1.酒店入住流程 客户可有三种需求分别为入住请求,续住请求及退房请求 2.酒店系统信息 整体系统功能概况 3.总体ER图 概念:ER模型,全称为实体关系模型,也称为E-R图。E-R模型由实体...
MySQL 数据库结构管理小工具,MySQL 表、视图、触发器、函数、过程结构同步管理,支持MySQL5.x ~ MySQL8,可保存创建对象的选择,导出SQL,当表、过程超过100着实令人头大,特意读取了表等的创建时间,可根据时间...
MYSQL数据库高级应用宝典含实例(索引、视图、触发器、游标和存储过程)
13.MySQL高级视图创建及修改视图.avi 14.MySQL高级视图查看及删除视图.avi 15.MySQL高级存储过程概述.avi 16.MySQL高级存储过程创建调用查询删除语法.avi 17.MySQL高级存储过程语法变量.avi 18.MySQL高级存储过程...
MySQL之视图什么是视图创建视图修改视图删除视图查看视图视图的使用视图和表的对比 什么是视图 视图:MySQL从5.0.1版本开始提供视图功能。一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表,并且是在...
文章目录1 视图概述、创建视图1.1 基本概念1.2 创建视图(1)在单表中创建视图(2)在多表中创建视图(3)在视图中创建新视图2 查看视图、修改视图2.1 查看视图2.2 修改视图3 视图数据更新、删除3.1 视图数据更新3.2...
视频教程
MySQL数据库的创建、查看、删除、使用命令。 表结构创建和修改、表约束的创建和修改; 表数据的插入、删除和修改; 表联系的创建和修改。
MySQL数据应用与开发第六章的内容,包括索引的分类、创建索引、管理索引、创建视图、管理视图等知识。
通过本视频的学习,让学员轻松掌握到视图的作用,视图的具体应用;SQL编程中变量的定义,if语句,case语句,循环语句的使用; 通过学习函数,掌握在mysql中自定义函数,扩展mysql功能 学习存储过程,轻松封装代码块...