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 ...
随机推荐
- Vue2.5基础
1.1 创建第一个Vue实例 官方网站:https://cn.vuejs.org 学习 --> 安装 刚开始学习Vue,使用最简单的安装方式,直接用<script>引入 我们下载开发 ...
- servlet_3
ServletContext 介绍 提供的功能 servlet中获取servletcontext实例 servletcontext接口的方法 package com.fgy; import java. ...
- SQL语句整理2
- log4j根据包名 日志输出到不同文件中 , service层无法输出日志问题
1. service 层因为要配置事务,使用了代理 <aop:config proxy-target-calss=''true"> <aop:pointcut id=&qu ...
- Btrace 拦截时机
Kind.ENTRY 入口,默认值 Kind.RETURN: 返回 Kind.THROW: 异常 Kind.Line: 行 一.返回时拦截 package com.example.monitor_t ...
- 剑指offer 13.代码的完整性 调整数组顺序使奇数位于偶数前面
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 本渣渣解题思路: ...
- 关于FIFO memory buffer模块的设计
关于FIFO memory buffer模块的设计 FIFO memory `timescale 1ns / 1ps ///////////////////////////////////////// ...
- 将centos的yum源修改为阿里云的yum源
CentOS系统更换软件安装源 第一步:备份你的原镜像文件,以免出错后可以恢复. mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentO ...
- C# Json 和对象的相互转换
Json 和对象的相互转换 /// <summary> /// Json 和对象的相互转换 ——需引用using Newtonsoft.Json; 即:Jsonnet.net..... / ...
- tomcat守护相关
tomcat守护相关(centos7) 今天在部署自己的服务到CentOS7服务器上tomcat中时,担心服务宕机想守护一下服务程序,于是现在网上找了一个用while写的循环守护脚本,后来发现这种方式 ...