T-Sql(四)表关联和视图(view)
今天讲下T-sql中用于查询的表关联和视图,我们平时做项目的时候会遇到一些复杂的查询操作,比如有班级表,学生表,现在要查询一个学生列表,要求把学生所属班级名称也查询出来,这时候简单的select查询就不行了,需要关联班级表,因为学生是一定属于某一个班级的,所以关联的示例需要自关联。
表关联(join)
下面列一些示例代码,帮助大家理解。
select t2.* --表自关联
from Tree t1
inner join Tree t2
on t1.NO=t2.ParentNo
where t1.Name='Node1_2'; select * from tree --子嵌套查询
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 view Production.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
表关联和视图都是比较简单的数据库操作,但也是比较常用的。大家好好练习。
还有一些相关编程知识的整理,希望大家关注下。。。
T-Sql(四)表关联和视图(view)的更多相关文章
- 图解SQL多表关联查询
图解SQL多表关联查询 网上看了篇文章关于多表连接的,感觉很好,记录下来,以便日后自己学习 内连接 左连接 右连接 全外连接 1. 查两表关联列相等的数据 ...
- SQL Server 索引(index) 和 视图(view) 的简单介绍和操作
--索引(index)和视图(view)-- --索引(index)----概述: 数据库中的索引类似于书籍的目录,他以指针形式包含了表中一列或几列组合的新顺序,实现表中数据库的逻辑排序.索引创建在数 ...
- SQL Server表关联
表关联:Hash.Nested Loops.Merge.这是实际算法,不是T-SQL中的inner/left/right/full/cross join.优化器会把这些T-SQL写法转换成上面的3种算 ...
- PL/SQL 多表关联UPDATE
假设有两个表A和B,A表字段a,b,c,d,B表字段b,e,f,两表的关联条件是字段b,现在想做个data patch,欲将B表中的字段e的值patch给A表的字段c. 有如下两种方法: 1 upda ...
- SQL 两表关联查询 where 条件中等号两端字段顺序对效率的影响
现有两表A(大).B(小)作关联查询,SQL语句如下: SQL1:select * from A,B where A.id = B.id SQL2:select * from A,B where B. ...
- sql多表关联
inner join(等值连接) 只返回两个表中联结字段相等的行 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有 ...
- SQL多表关联查询
在创建关系型数据表时,根据数据库范式的要求,为了降低数据的冗余,提供数据维护的灵活性 将数据分成多个表进行存储,实际工作当中,需要多个表的信息,需要将多个表合并显示 --内连接 selec ...
- Mongo数据两表关联创建视图示例
表tblCard: {"cNo":"11","oRDate":ISODate("2017-08-01T00:00:00.000+0 ...
- sql -- 多表关联,update(用户奖励)
表设计: users_buy: users_score: 需求: 1.根据用户分组,找出用户消费最高的金额 select user_name, max(paymoney) as pm from use ...
随机推荐
- java分享第十四天(TestNG Assert详解)
TestNG Assert 详解org.testng.Assert 用来校验接口测试的结果,那么它提供哪些方法呢? 中心为Assert测试类,一级节点为方法例如assertEquals,二级结点为参 ...
- Codeforces Round #384 (Div. 2)D-Chloe and pleasant prizes
D. Chloe and pleasant prizes time limit per test 2 seconds memory limit per test 256 megabytes input ...
- mysql多字段排序
在对数据库进行查询的时候有时候需要将查询的结果按照某字段升序或者降序排列,甚至有时候需要按照某两个字段进行升降序排列.如果按照某一字段进行排列,只需要在查询语句最后写上 "order by ...
- xml中DTD解析
DTD的作用是"文档类型的定义" DTD申明始终以<!DOCTYPE开头(开头后空一格). 本标签一共有三种写法 一.内部DTD: <!DOCTYPE 根元素 [ 文档 ...
- linux下安装启动rpc服务
1.上传包 rocky:~ # ls Desktop dts.xml jdk1..0_41 oswbb rpc.rstatd- rpc.rstatd-.tar.gz rocky:~ # cd rpc. ...
- WPF整理-使用ResourceDictionary管理Logical Resources
“Logical resources may be of various types, such as brushes, geometries, styles, and templates.Placi ...
- java 心得
11. 最后的笑声 package javaBookPractice; public class LastLaugh { public static void main(String[] args) ...
- jdk 配置环境变量 解决无法加载主类问题
默认安装路径 我的电脑鼠标右键→属性→点击“高级”选项卡点击“环境变量” 系统环境 点击“新建”变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.7.0(以JD ...
- WPF之命令浅谈
一.认识命令 1.1命令的特点 提到“命令”,我们应该想到命令的发出者,命令的接受者,命令的内容,准备工作,完成任务,回报工作...与事件中的发送者,接受者,消息,处理,处理,处理一一对应,如果是单纯 ...
- EQueue - 一个纯C#写的分布式消息队列介绍2
一年前,当我第一次开发完EQueue后,写过一篇文章介绍了其整体架构,做这个框架的背景,以及架构中的所有基本概念.通过那篇文章,大家可以对EQueue有一个基本的了解.经过了1年多的完善,EQueue ...