我们八个人正在弄一个项目,自己的基础相当薄弱,总感觉自己在拉后脚,但是他们一直没有放弃我。正是他们,自己在这段时间内学到了很多东西。
由于这次表遇到一些复杂的查询操作,需要进行多表查询,组长要求大家去用视图。我之前只是听说过,并为真正用过,然后找资料学习了一下,必定首次接触,只能算是一次浅尝。
一、表关联
既然是多表查询,自然涉及到关联,所以先来简介一下表关联(join)。
举个例子:比如有班级表,学生表,现在要查询一个学生列表,要求把学生所属班级名称也查询出来,这时候简单的select查询就不行了,需要关联班级表,因为学生是一定属于某一个班级的,所以关联的示例需要自关联。
示例代码:
select t2.* --表自关联
from Tree t1
inner join Tree t2
on t1.NO=t2.ParentNo
where t1.Name='Node1_2';
select * fromtree --子嵌套查询
where ParentNo =(select NO from tree where Name = 'Node1_2');
select * from tree
where parentNo in(select no from tree where Name = 'Node1_2');
上面是表自关联,关键字inner,就是返回t1.NO=t2.ParentNo条件的所有t2表的数据。
有表自关联,当然还有左关联,右关联,示例代码:
select t2.* --左关联
from Tree t1
left join Tree t2
on t1.NO=t2.ParentNo
where t1.Name='Node1_2';
select t2.* --右关联
from Tree t1
right join Tree t2
on t1.NO=t2.ParentNo
where t1.Name='Node1_2';
二、视图
简介了一下表关联,接下来就是视图(View)了
视图的关键字是View,就是一个查询集合,方便我们去查询数据,视图其实就是表,多表连接的表,我们查询的时候不需要反复的去拼接语句,直接查询视图就可以,方便我们的操作,当然一些简单的查询操作就没必要去创建视图了。
示例代码:
create viewProduction.vw_Product
as
select t1.* from Production.Product t1
left outer join Production.ProductModel t2 on t2.ProductModelID=t1.ProductModelID
left outer join Production.ProductSubcategory t3 on t3.ProductSubcategoryID=t1.ProductSubcategoryID
left outer join Production.UnitMeasure t4 on t4.UnitMeasureCode=t1.SizeUnitMeasureCode and t4.UnitMeasureCode=t1.SizeUnitMeasureCode
--order by t1.ProductID
查询视图:
select * from Production.vw_Product
表关联和视图都是比较简单的数据库操作,但也是比较常用的。现在只是初尝,以后在学习及实践过程将不断深入。
分享到:
相关推荐
视图工具视图工具视图工具视图工具视图工具视图工具视图工具视图工具视图工具
对话框,视图 对话框,视图 对话框,视图
这是滚动视图与列表视图的共存效果源码,我们知道滚动视图与列表视图共存会存在滚动的问题,并且列表视图只显示一个半选项。 只要当列表视图的高度设定一定的值时,列表视图同样地会显示对应的高度的选项。 因此我们...
QQ的视图视图、列表视图、网格视图和滚动视图。越界
MFC视图编程 MFC视图编程 MFC视图编程 MFC视图编程
详细的介绍mfc树视图与列表视图的创建与用法,方便初学者学习
月视图和周视图切换控件来舒适的调节编制文件
基于实验1创建的汽车用品网上商城数据库Shopping,理解视图和索引的概念和作用,练习视图的基本操作,包括视图的建立,视图的查询,视图的更新,视图的删除,体会视图带来的方便;练习索引的创建和删除,对比有索引...
通过视图的设计和定义,掌握建立视图的基本方法,包括通过单张表建立视图和通过多张表建立视图,通过在定义的视图上进行查询,删除,更新,插入操作,理解视图的概念,掌握简单的视图查询方法。 3. 实验预备知识 在...
【例1】创建ccj视图,包括计算机专业各学生的学号、其选修的课程号及成绩。要保证对该视图的修改都符合专业为计算机这个条件。 【例2】创建计算机专业学生的平均成绩视图ccj_avg,包括学号(在视图中列名为num)和...
③ 在查询分析器中用SQL语句来创建视图View3和视图View4,视图View3的要求与View1相同,视图View4与视图View2的条件相同。 2、数据控制实验 ① 假定系统有U1、U2、U3 、U4、U5、U6六个登录用户,试将查询图书表的...
1、用CREATE语句建立视图,观察结果。 ⑴建立计科系(CS)学生的视图cs_student,并要求进行修改和插入操作时仍需保证该视图只有计科系的学生。 ⑵建立计科系选修了1号课程的学生的视图。 ⑶定义一个反映学生出生...
视图与查询:利用学生管理中的数据库进行操作 1、 建立视图名为学生档案视图,包含xsgl(或学生档案表)中的学号、姓名、奖学金字段的内容 2、 建立视图名为成绩视图,包含学生的学号,姓名,年龄,课程号,成绩 3、...
多视图例子,多视图例子,多视图例子,多视图例子.多视图例子.
基于WINDOWS下的MFC滚动视图、HTML视图实用教程
用VC实现SDI上视图静态分割分割同时多个视图间进行通讯通讯,与数据访问
后来,PhilippeKruchten加入Rational,他的4+1视图方法演变为著名的、为许多架构师所熟知的“RUP4+1视图方法”(如下图所示)。概括而言:逻辑视图(LogicalView),设计的对象模型。进程视图(ProcessView),捕捉...
讲述了 4 种视图:关系视图、内嵌视图、对象视图和物化视图。本节为大家介绍 内嵌视图。 11.3 使用内嵌视图 关系视图是数据库对象。创建关系视图实际是对查询定义可重用的需求。但有时, 查询定义并不会被重用。此时...
从数据库管理系统 (DBMS) 的观点来看,视图是数据(元数据)的说明。创建典型视图时,通过 SELECT 语句(定义一个显示为虚拟表的结果集)来定义元数据。当其它查询的 FROM 子句中引用了某个视图时,将从系统目录中...
NOTES分类视图的生成NOTES分类视图的生成