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 ...
随机推荐
- [LeetCode]题解(python):128-Longest Consecutive Sequence
题目来源: https://leetcode.com/problems/longest-consecutive-sequence/ 题意分析: 给定一个没有排好序的数组,找到最长的连续序列的长度.要求 ...
- CSS3 模拟笑脸
参考 http://www.html5tricks.com/demo/html5-css3-smile-face/index.html 它还做了舌头... 一开始我都是用JS实现的动画 当然了 眼 ...
- 【转】使用Boost Graph library(二)
原文转自:http://shanzhizi.blog.51cto.com/5066308/942972 让我们从一个新的图的开始,定义一些属性,然后加入一些带属性的顶点和边.我们将给出所有的代码,这样 ...
- MyEclipse 怎样手动编译整个项目
去掉自动编译的对勾,项目上就有build project,在菜单project->>build automatically. MyEclipse 菜单 Project->Build ...
- ISO/IEC 14443协议浅谈
一. 非接触IC卡简介 非接触IC卡又称射频卡,是射频识别技术和IC卡技术有机结合的产物.它解决了无源(卡中无电源)和免接触这一难题,具有更加方便.快捷的特点,广泛用于电子支付.通道控制.公交收费.停 ...
- [HDU 4666]Hyperspace[最远曼哈顿距离][STL]
题意: 许多 k 维点, 求这些点之间的最远曼哈顿距离. 并且有 q 次操作, 插入一个点或者删除一个点. 每次操作之后均输出结果. 思路: 用"疑似绝对值"的思想, 维护每种状态 ...
- 进一步探索:Windows Azure 网站中解锁的配置选项
编辑人员注释: 本文章由 Windows Azure 网站团队的项目经理 Erez Benari 撰写. 在 Windows Azure 网站 (WAWS) 中管理网站时,许多选项可使用 Azu ...
- BZOJ 1005 明明的烦恼 (组合数学)
题解:n为树的节点数,d[ ]为各节点的度数,m为无限制度数的节点数. 则 所以要求在n-2大小的数组中插入tot各序号,共有种插法: 在tot各序号排列中,插第一个节点的 ...
- C++中struct和class的总结
一.在语法上的一些区别 由于C++是从C发展而来,C++中的struct更多的是去做了兼容的C的部分.在语法层面他们有以下的区别: 1. struct中所有的成员是是public,也就是说你可以对一个 ...
- [置顶] Asp.Net底层原理(一、浏览器和服务器的交互原理)
…… 一.浏览器和服务器的交互原理 二.写自己的"迷你"Asp.net框架 三.Asp.Net的请求与响应过程 1.在此之前,首先简单的模拟一下我们去请求一个网址的时候,浏览器和服 ...