在程序开发时,不可避免的要用到视图,首先我们来看看视图到底有什么作用:
简单性:看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次制定全部的条件。
安全性:通过视图用固话只能查询和修改他们所能见到的数据。数据库中的其他数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。
其他的优点暂时省略。
视图中我们用的最多的可能就是多表查询了,既然视图有这么多的优点,那么我们就来说说如何多表查询
两个表查询:
情景1
如图所示:
其中foodTypeID为第二个表的主键,那么当我们要筛选出这样的数据(foodID、foodTypeName、foodName、Price)的时候就要用到多表查询了,是这样做的:
[sql] view plaincopy
select FoodInfo.foodID, FoodTypeInfo.foodTypeName ,
FoodInfo.foodName ,FoodInfo.price
from FoodInfo inner join FoodTypeInfo
on FoodInfo.foodTypeID =FoodTypeInfo .foodTypeID
情景2
如图所示:
大家可以看到第一张表和上面的相比增加了两个字段,其中我们要用到的就有ManagerID,第二张表还是原来那张表,增加的第三张表中我们也用到ManagerID,最后查询的结果想要看到的是(foodID、foodTypeName、foodName、Price,ManagerID),是这样操作的:
[sql] view plaincopy
<pre name="code" class="sql">select FoodInfo.foodID, FoodTypeInfo.foodTypeName ,
FoodInfo.foodName ,FoodInfo.price,
managerInfo.ManagerID
from (FoodInfo inner join FoodTypeInfo
on FoodInfo.foodTypeID =FoodTypeInfo .foodTypeID )
inner join managerInfo on managerInfo.ManagerID =FoodInfo .ManagerID
看到上面的我们是不是可以总结出这样的规律呢?
我们以五个表为例来说明一下:
首先前面的选择表头的东西就省略了,直接写表和表之间的关系:
[sql] view plaincopy
from((((表 inner join 表 on 表.字段名 =表.字段名)
innner join 表 on 表.字段名=表.字段名)
inner join 表 on表.字段名=表.字段名)
inner join 表 on 表.字段名=表.字段名
分享到:
相关推荐
MySql,多表联合查询加AS语句,多余的就不说了,自己看,绝对简单!
【MySQL联合查询与防护】 MySQL数据库中的联合查询(UNION)是一种强大的操作,它允许将两个或更多SELECT语句的结果合并成一个结果集。在理解联合查询时,我们需要明确几个关键概念: 1. **UNION操作符**:UNION...
MySQL是一种广泛使用的开源关系型数据库管理系统,其联合查询(JOIN)功能是数据库操作中的核心部分,用于合并多个数据表中的相关记录,以便进行更复杂的分析和检索。在本实例讲解中,我们将深入探讨MySQL联合查询的...
MySQL 联合查询案例,需要搭配博主【MySQL】联合查询这篇文章使用,用于初始化数据,搭配文章学习可以充分学会联合查询,建议先学习博主 MySQL 专栏前部分的基础知识,联合查询是在有一定基础后进行学习的,里面的...
【MySQL联合查询与防护】 MySQL联合查询是一种将多个SELECT语句的结果合并成一个结果集的操作。在网络安全领域,尤其在数据库注入攻击中,联合查询常常被利用来非法获取数据库信息。以下将详细介绍联合查询的基本...
本话题主要聚焦于如何在Oracle、MySQL和SQL Server这三种主流关系型数据库中实现分页联合查询。 首先,我们来看Oracle数据库的分页查询。Oracle使用ROWNUM关键字来实现分页。例如,如果我们想获取第10到20条记录,...
本文实例讲述了MySQL 多表关联一对多查询实现取最新一条数据的方法。分享给大家供大家参考,具体如下: MySQL 多表关联一对多查询取最新的一条数据 遇到的问题 多表关联一对多查询取最新的一条数据,数据出现重复 ...
NOT IN 是一种常见的排除条件查询方式,在多表关联查询中用于排除特定记录。例如,如果想要找出表A中的记录,但排除那些在表B中存在的记录,则可以使用如下SQL语句: ```sql SELECT * FROM tableA WHERE tableA.id ...
因此,常常出现这样的错误 代码如下:select * from [IND] where INDID>10unionselect * from [IND] where INDID<9>10 order by INDID descunionselect * from [IND] where INDID<9 order by INDID desc此时就出现...
MySQL 多表联合查询教程 在本教程中,我们将学习 MySQL 中的多表联合查询,包括多表插入和多表更新的操作。多表联合查询是指从多个表中检索数据的操作,这种操作在实际应用中非常常见。 什么是多表联合查询 多表...
本文详细介绍了Mysql的联合查询命令UNION和UNION ALL,总结了使用语法和注意事项,以及学习例子和项目例子,需要的朋友可以参考下
在数据库管理中,数据的组织方式对于数据查询和分析至关重要。MySQL 提供了两种转换数据布局的方法:行转列(Pivot)和列转行(Unpivot),这在处理复杂的数据汇总和展示时非常有用。本文将深入探讨这两种转换方法,...
在MySQL数据库中,索引是提高查询性能的关键工具。它们允许数据库系统快速定位和检索数据,而无需遍历整个表。然而,当涉及到`OR`条件时,索引的使用和效率可能会变得复杂。本篇文章将深入探讨在MySQL中`OR`操作符...
在本篇文章中,我们将深入探讨MySQL子查询的用法,包括单行子查询、多行子查询、关联子查询以及它们在实际应用中的示例。 1. 单行子查询 单行子查询返回单个值,常用于WHERE子句中与外部查询的字段进行比较。例如,...
1. **使用自连接和递归联合(RECURSIVE UNION)**:这种方法通过将表与自身连接,并通过递归地应用联合查询来构建层级结构。 2. **利用变量和循环**:这种方法通过在SQL查询中使用变量和循环结构来实现递归查询,...
MySQL联合索引是一种优化查询性能的机制,它允许在多个列上创建单个索引,以便在查询中同时使用这些列时能更快地找到数据。本示例将深入讲解联合索引的概念,并通过实例来展示如何在MySQL中创建和使用联合索引。 ...
在给定的文件中,我们可以看到有关MySQL多表联合查询的知识点。首先,文件包含了创建和操作MySQL数据库表的SQL语句,接着是使用INSERT语句向表中插入数据的示例,最后是一些使用PHP通过MySQL扩展连接数据库进行操作...
此类操作通常涉及到`COUNT()`函数与`GROUP BY`语句的结合使用,有时还需要与其他子查询或联合查询(`UNION`)相结合来完成更复杂的统计需求。 #### 核心知识点 1. **基本统计查询**:使用`COUNT()`函数。 2. **...
mysql多表联合查询 表连接的约束条件 MySQL如何优化LEFT JOIN和RIGHT JOIN