Sql Server数据库之多表查询
一.连接查询
概念:根据两个表或多个表的列之间的关系,从这些表中查询数据
目的:实现多表查询操作
语法:From join_table join_type join_table[ON(join_condition)]
join_table:连接的表名
join_type:连接类型
join_condition:连接条件
连接类型:内连接,外连接,交叉连接
二.内连接
1.等值连接
概念:在连接条件中使用"="运算符,其查询结果中列出被连接表中的所有列,包括其中的重复列
示例:
create table student
(
studentId int not null primary key,
studentName ) not null,
classId int not null
)
create table class
(
classId int not null primary key,
className ) not null
)
,);
,);
,);
,);
,);
,);
,'逗哏班');
,'捧哏班');
select * from student s inner join class c on s.classId = c.classId

2.不等值连接
概念:在连接条件中使用除等号之外的运算符
示例:
select * from student s inner join class c on s.classId != c.classId

三.外链接
1.左连接
左表结构:

右表结构:

左连接查询:
select * from student s left join class c on s.classId = c.classId
查询结果:
总结:左连接:返回左表中的所有行,如果左表行在右表中没有匹配行,则结果中右表中的列返回控制
2.右连接
右连接查询:
select * from student s right join class c on s.classId = c.classId
查询结果:

总结:右连接:恰与左连接相反,返回右表中的所有行,如果右表中行在左表中没有匹配行,则结果中左表中的列返回空值。
3.全连接
全连接查询
select * from student s right join class c on s.classId = c.classId
查询结果

总结:全连接:返回左表和右表中的所有行,当某行在另一表中没有匹配行,则灵异表中的列返回空值
四.交叉连接(笛卡尔积)
1.不带where子句
执行交叉连接:
select * from student cross join class
查询结果:

2.带where子句
执行交叉连接:
select * from student s cross join class c where s.classId = c.classId
查询结果:

Sql Server数据库之多表查询的更多相关文章
- 清空SQL Server数据库中所有表数据的方法(转)
清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入 ...
- 清空SQL Server数据库中所有表数据的方法
原文:清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可 ...
- sql server数据库备份单个表的结构和数据生成脚本
1.使用场景:sql server数据库备份单个表的结构和数据,在我们要修改正式系统的数据的一天或者多条某些数据时候,要执行update语句操作,安全稳健考虑,最好先做好所修改的表的结构和数据备份! ...
- sql server数据库备份单个表的结构和数据生成脚本【转】
1.使用场景:sql server数据库备份单个表的结构和数据,在我们要修改正式系统的数据的一天或者多条某些数据时候,要执行update语句操作,安全稳健考虑,最好先做好所修改的表的结构和数据备份! ...
- SQL server 数据库 操作及简单查询
使用SQL Sever语言进行数据库的操作 常用关键字identity 自增长primary key 主键unique 唯一键not null 非空references 外键(引用) 在使用查询操作数 ...
- sql server数据库将excel表中的数据导入数据表
一般有两种方法可以实现,一种是直接写sql语句,另外一种是利用sqlserver的管理工具实现.这里介绍的是后面一种方法. 步骤: 一.准备数据 1.将excel表另存为文本格式,注意文本格式需为ta ...
- 在sql server数据库的一个表中如何查询共有多少字段
select a.* from sys.columns a,sys.tables bwhere a.object_id = b.object_id and b.name = '要查的表名'
- SQL Server数据库阻塞,死锁查询
sql 查询卡顿数据库 SELECT SPID=p.spid, DBName = convert(CHAR(20),d.name), ProgramName = program_name, Login ...
- sql server数据库查看锁表和解锁
--查看锁表: select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys ...
随机推荐
- 利用R与SAS进行关联规则挖掘
一.利用R进行关联规则挖掘 数据结构如下: (共9个itemsets,5个items) 首先读入数据: demodata = read.transactions("C:\\Documents ...
- [mybatis]Example的用法-转
转自:https://blog.csdn.net/zhemeban/article/details/71901759 Example类是什么? Example类指定如何构建一个动态的where子句. ...
- 关于使用colorbox加载html页面的一些问题
ColorBox是一个基于jQuery 1.3 的轻量级,自定义灯箱插件,功能非常强大,支持图片,图片组,ajax,inline和iframed内容,灯箱样式完全由用户控制,可自定义CSS样 式,不需 ...
- 【转】搭建和配置Syncthing发现和中继服务器
搭建和配置Syncthing发现和中继服务器 折腾借口 Syncthing好是挺好的,但就是同步不给力,公共网络服务其质量参差不齐,网络也说不清.最好的解决方案还是自己搭建发现服务器Synct ...
- Maven安装问题
这是网上常见的解决方法,由于网络原因maven中央仓库的jar包经常加载不下来,很头疼的一个问题,如果第一个方法解决不了,那就用第二种方法 一.常见解决方法 二.第二种解决方法,使用阿里云的仓库 &l ...
- mybatis中大于等于小于等于的写法
标准写法如下: 第一种写法(1): 原符号 < <= > >= & ' "替换符号 < <= > >= & &apos ...
- [UE4]虚幻引擎的C++环境安装
一.一般使用VS2017开发 二.需要勾选“使用C++的游戏开发”
- [VS]反编译_DllToC#_REFLECTOR8.5
反编译_DllToC#_REFLECTOR8.5 的使用方法可以问度娘 下载地址:百度网盘TonyHeVIP
- winform里面的Form1.Designer.cs
Program.cs是程序入口,也就是Main函数.Form1.cs是实现功能的代码,包括你的自定义方法和事件.Form1.Designer.cs是你的画面的设计代码,一般由系统自动生成,也可以手动修 ...
- gmer ver2.1.19357
gmer是一款来自 波兰 的多功能安全监控分析程序.它可以结束除了System和System Idle Process以外几乎所有的进程,还可以查看被隐藏的进程,服务以及驱动(以红色的方式显示此进程. ...