SQL Server 基础 05 多链表查询和子查询
连接查询
值得注意的是:字段前必须加表名,以便混淆
-- 多表连接查询和子查询
select * from dbo.stu_info ,dbo.sname2
-- 加连接规则的查询 where
select * from dbo.stu_info ,dbo.sname2 where dbo.stu_info.sname= dbo.sname2.姓名
使用where前

使用where后

使用逻辑运算符 and
select dbo.stu_info.sno,dbo.stu_info.sname,dbo.stu_info.sex,dbo.stu_info.depart
,dbo.sname2.score,dbo.sname2.姓名,dbo.sname2.sno
from dbo.stu_info,dbo.sname2
where dbo.stu_info.sname='张三'
and dbo.stu_info.sno=dbo.sname2.sno
order by dbo.sname2.score desc
表别名简化语句
select A.sno,A.sname,A.sex,A.depart
,B.score,B.姓名,B.sno
from dbo.stu_info as A,dbo.sname2 as B
where A.sname='张三'
and A.sno=B.sno
order by B.score desc
多表连接查询
跟上面的相似,只是 from 后面多了n个表名 同时多了n-1 个 and 。。。
使用 inner join 连接查询
在where子句中表达式变的臃肿,为了变得清晰,让人理解,所以 ansi SQL 建议使用 inner join 进行多表连接
语法格式 :
select * from 表名1
inner join 表名2
on 连接规则1
inner join 表名3
on 连接规则2
. . . . . .
inner join 表名n
on 连接规则n-1
举例 :
-- 使用 inner join
select * from dbo.stu_info as A
inner join dbo.sname2 as B
on A.sno=B.sno
where A.depart='心理学'
order by B.score desc

/**/ 相比上面的 where + and 更简单
高级连接查询
// 这里只是粗略的概括下,来自 书本:《21 天学通SQL Server》 第11章 P226
1、自动连接查询
/**/
select 表名1.* from 表名1,表名2 where 表名1.字段=表名2.字段 and 表名2.字段=‘字段值’
2、内连接查询
等值连接 : 表名1.*=表名2.*
自然连接 : select 后面不使用* ,而是字段名
不等值连接 : 由 >、>=、< 、<= 、<> 、between . . . 查询某些范围内的值
3、左外连接查询
语法 :select * from 表名1 left outer join 表名2 on 表名1.字段=表名2.字段
4、右外连接查询
语法 :select * from 表名1 right outer join 表名2 on 表名1.字段=表名2.字段
5、全外连接查询
语法 :select * from 表名1 full outer join 表名2 on 表名1.字段=表名2.字段
6、交叉连接查询
语法 :select * from 表名1 cross join 表名2
组合查询
-- 使用组合查询union select * from dbo.stu_info where depart='心理学'
union
select * from dbo.stu_info where datediff(year,date,getdate())>30 -- union 、group by 、聚合函数 三者共同使用
select sno,姓名,score from dbo.sname2
union
select '总分:',姓名,sum(score) from dbo.sname2 group by 姓名
union
select '平均分:',姓名,avg(score) from dbo.sname2 group by 姓名
子查询
select语句中中镶陶一个select语句
语法 :
select 字段1 ,字段2 from 表
where 字段2=(select 字段2 from 表2 where 字段3=‘字段值’)
order by 字段4 desc
SQL Server 基础 05 多链表查询和子查询的更多相关文章
- 数据库开发基础-SQl Server 主键、外键、子查询(嵌套查询)
主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个 ...
- 在 SQL Server 数据库的 WHERE 语句中使用子查询
这是关于子查询语句的一系列文章中的第三篇.在这篇文章中我们将讨论WHERE语句中的子查询语句.其他的文章讨论了其他语句中的子查询语句. 本次课程中的所有例子都是基于Microsoft SQL Serv ...
- SQL Server的优化器会缓存标量子查询结果集吗
在这篇博客"ORACLE当中自定义函数性优化浅析"中,我们介绍了通过标量子查询缓存来优化函数性能: 标量子查询缓存(scalar subquery caching)会通过缓存结果减 ...
- SQL server基础知识(表操作、数据约束、多表链接查询)
SQL server基础知识 一.基础知识 (1).存储结构:数据库->表->数据 (2).管理数据库 增加:create database 数据库名称 删除:drop database ...
- MS sql server 基础知识回顾(二)-表连接和子查询
五.表连接 当数据表中存在许多重复的冗余信息时,就要考虑将这些信息建在另一张新表中,在新表中为原表设置好外键,在进行数据查询的时候,就要使用到连接了,表连接就好像两根线,线的两端分别连接两张表的不同字 ...
- SQL Server 基础:子查询
1.子查询的概念:子查询就是嵌套在主查询中的查询.子查询可以嵌套在主查询中所有位置,包括SELECT.FROM.WHERE.GROUP BY.HAVING.ORDER BY.2.子查询的分类:2.1按 ...
- 【SQL Server】SQL Server基础之存储过程
SQL Server基础之存储过程 阅读目录 一:存储过程概述 二:存储过程分类 三:创建存储过程 1.创建无参存储过程 2.修改存储过程 3.删除存储过程 4.重命名存储过程 5.创建带参数的存储 ...
- Sql Server 基础语法
来自:http://www.cnblogs.com/AaronYang/archive/2012/04/24/2468093.html Sql Server 基础语法 -- 查看数据表 select ...
- 《SQL Server基础——SQL语句》
SQL Server基础--SQL语句 一.创建和删除数据库: 1.创建数据库(默认化初始值) 格式: CREATE DATABASE 数据库名称 例如: CREATE DATABASE ...
随机推荐
- python函数cmp()
cmp(x, y) 中文说明:比较两个对象x和y,如果x < y ,返回负数:x == y, 返回0:x > y,返回正数. 版本:该函数只有在python2中可用,而且在python2所 ...
- Myeclipse安装Activiti
1.将压缩包内activiti文件夹放入Myeclipse\dropins文件夹内并修改activiti文件夹内Link文件指向自己的目录重启Myeclipse(这时打开bpmn文件仍会报错).2.将 ...
- ubutu下的几个命令
nginx重启命令 (ps:意为将nginx重启) /usr/local/nginx/sbin/nginx -s reload 给new目录权限设置为777 (ps:意思为将wwwroot/new目录 ...
- 关于LD_DEBUG (转载)
引用 LD_DEBUGThe dynamic library loader used in linux (part of glibc) has some neat tricks. One of the ...
- $.getJSON(url,function success(){})回调函数不起作用
有个问题好久没有解决,就是: $.getJSON(url,function success(){}) 其中的回调函数,总也不执行. 以前也做过,但那都是CTRL+C,CTRL+V,也没有细想. 目标就 ...
- hdu 1085 Holding Bin-Laden Captive! (母函数)
//给你面值为1,2,5的三种硬币固定的数目,求不能凑出的最小钱数 //G(x)=(1+x+...+x^num1)(1+x^2+...+x^2num2)(1+x^5+,,,+x^5num3), //展 ...
- rman备份优化思路
本章不讲rman备份原理.仅仅提供一些思路 1.oracle11g 选择压缩算法为中级: 2.添加rman备份的通道. 以上两种做法.添加CPU的利用率,降低IO 3.指定rate參数 这个rate和 ...
- GDI+入门——带你走进Windows图形的世界
一.GDI+基础 1.GDI+简单介绍 GDI+是微软的新一代二维图形系统,它全然面向对象,要在Windows窗口中显示字体或绘制图形必需要使用GDI+.GDI+提供了多种画笔.画刷.图像等图形对象, ...
- C#编辑基础笔记
目录 1. .NET .NET Framework是一种多语言的平台,一种技术. 而c#是基于其上面的一种语言. 1 2. Winform 桌面应用程序[从.net平台上面开发的 ...
- 使用PowerShell 命令集进行SQL Server 2012 备份和还原
最近心相不错,所以打算翻译一些英文文档做福利,原文在此,翻译有不足的地方还请各位兄弟指点. 讨论什么是DBA最重要的工作的时候,你最常听到就是一条就是DBA只要做好备份和恢复.事实如此,如果你不做备份 ...