连接查询:通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。

常用的两个链接运算符:

1.join   on

2.union

在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,随后通过连接进行查询。

示例一:

示例二:

示例三:

示例四:

示例五:

示例六:

示例七:

示例八:

练习:

create database lianxi119
go
use lianxi119
go
create table score
(
code int primary key identity(1001,1),
yu decimal(10,2),
shu decimal(10,2),
ying decimal(10,2),
)
go
create table Student
(
scode int primary key identity(1001,1),
sname varchar(10),
banji varchar(10),
yujiao int,
shujiao int,
yingjiao int,
)
go
create table Teacher
(
tcode int primary key identity(1,1),
tname varchar(10),
tkemu varchar(10),
)
go insert into score values(99,88,77)
insert into score values(88,77,66)
insert into score values(77,66,55)
insert into score values(66,55,44)
insert into score values(55,44,33)
insert into score values(89,79,69)
insert into score values(79,69,59)
insert into score values(59,49,39) select *from score insert into Student values('A','一班',2,4,8)
insert into Student values('B','一班',1,5,7)
insert into Student values('C','二班',3,6,9)
insert into Student values('D','二班',2,4,8)
insert into Student values('E','三班',1,5,7)
insert into Student values('F','三班',3,6,9)
insert into Student values('G','四班',2,4,7)
insert into Student values('H','四班',1,5,9) select *from Student insert into Teacher values('玲玲','语文')
insert into Teacher values('凌凌','语文')
insert into Teacher values('灵灵','语文')
insert into Teacher values('铃铃','数学')
insert into Teacher values('媛媛','数学')
insert into Teacher values('元元','数学')
insert into Teacher values('圆圆','英语')
insert into Teacher values('方方','英语')
insert into Teacher values('芳芳','英语') select *from Teacher --查询此次语文考试成绩最高的学生
select *from Student where scode =(select code from score where yu =(select MAX(yu)from score))
--查询此次数学考试成绩最低的学生的任课教师的信息
select *from Teacher where tcode =(select shujiao from Student where scode =(select code from score where shu=(select MAX(shu)from score)))
--查询汇总成一个表:各门课分数、学生姓名、班级、任课老师的信息
select Student.sname,score.shu,score.ying,score.yu,(select tname from Teacher where tcode = Student.shujiao)as 数学老师,
(select tname from Teacher where tcode = Student.yingjiao)as 英语老师,
(select tname from Teacher where tcode = Student.yujiao)as 语文老师 from Student join score on Student.scode =score.code

SQL连接查询的更多相关文章

  1. sql连接查询中的分类

    sql连接查询中的分类 1.内连接(结果不保留表中未对应的数据) 1.1等值连接:关联条件的运算符是用等号来连接的. 1.2不等值连接:连接条件是出等号之外的操作符 1.3自然连接:特殊的等值连接,在 ...

  2. sql连接查询(inner join、full join、left join、 right join)

    sql连接查询(inner join.full join.left join. right join) 一.内连接(inner join) 首先我这有两张表 1.顾客信息表customer 2.消费订 ...

  3. SQLServer SQL连接查询深度探险(摘录

    SQL连接查询深度探险[摘录] 测试环境: Windows XP Profession MySQL 5.0.45 Oracle 9i DB2 UDB 9.1 测试的SQL脚本如下:此脚本适合MySQL ...

  4. SQL连接查询、变量、运算符、分支、循环语句

    连接查询:通过连接运算符可以实现多个表查询.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 常用的两个链接运算符: 1.join   on 2.union 在关系数据库 ...

  5. sql连接查询中on筛选与where筛选的区别

    sql查询这个东西, 要说它简单, 可以很简单, 通常情况下只需使用增删查改配合编程语言的逻辑表达能力,就能实现所有功能. 但是增删查改并不能代表sql语句的所有, 完整的sql功能会另人望而生畏. ...

  6. MySQL学习(四) SQL连接查询

    更多情况下,我们查询的数据来源于多张表,所有有必要了解一下MySQL中的连接查询. SQL中将连接查询分成四类:交叉连接,内连接,外连接和自然连接. 数据准备 student表 -- -------- ...

  7. sql 连接查询

    什么是连接查询呢 概念:根据两个表或多个表的列之间的关系,从这些表中查询数据. 目的:实现多个表查询操作. 分类 首先划分一下,连接分为三种:内连接.外连接.交叉连接 内连接(INNER JOIN): ...

  8. SQL连接查询基础知识点

    什么是连接 连接(join)查询是基于多个表中的关联字段将数据行拼接到一起,可以同时返回多个表中的数据. 下面以两个表为例子,举例说明一下不同的连接. SELECT * FROM products i ...

  9. SQL——连接查询

    以mysql为例: 新建两张表table1和table2 CREATE TABLE `table1` ( `id` ) NOT NULL auto_increment, `name` ) defaul ...

随机推荐

  1. JavaScript强化教程 -- cocosjs场景切换

    场景切换 在main.js,将StartScene作为我们初始化运行的场景,代码如下: cc.LoaderScene.preload(g_resources, function () { cc.dir ...

  2. 规划在sharepoint中使用安全组

    简介 如果将权限级别分配给组而非单个用户,那么管理 SharePoint 网站用户其实很简单.SharePoint 组是一组单独的用户,它还可以包含 Active Directory 组.在 Acti ...

  3. ArcGIS JS 学习笔记1 用ArcGIS JS 实现仿百度地图的距离量测和面积量测

    一.开篇 在博客注册了三年,今天才决定写第一篇博客,警告自己不要懒!!! 二.关于ArcGIS JS 版本选择 在写这篇博客时ArcGIS JS 4.0正式版已经发布.它和3.x版本的不同是,Map不 ...

  4. [IOS]《A Swift Tour》翻译(一)

    以下翻译内容为原创,转载请注明: 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3768936.html 碎碎念... Swift是苹果在WWDC刚发 ...

  5. linux 修改home 目录

         第一种方法:vi /etc/passwd 找到要修改的用户那几行,修改掉即可.此法很暴力,建议慎用. /etc/passwd文件格式 登录名:加密口令:数字用户ID:数字组ID:注释字段:起 ...

  6. Android ThreadUtil 线程公共类,判断是否在主线程/ 子线程执行 相关操作

    前言:通常,我们写的公共的模块给别人用,但是这个模块又必须在特定的线程中执行. 比如,一个加载网络图片的的方法,需要在子线程中执行. /** * 加载网络图片 */ private void load ...

  7. Presenting view controllers on detached view controllers is discouraged <CallViewController: 0x14676e240>.

    今天在优化app时,发现程序出现这种警告:“ Presenting view controllers on detached view controllers is discouraged <C ...

  8. 在Mac上关于tomcat服务器的安装、配置、启动、部署web详细流程

    之前在Mac上通过安装mamp来搭建PHP环境服务器,但是对于java来说,目前还是没有找到类似mamp这样强大的软件来构建及管理java环境服务器,所以目前也是通过命令行来进行tomcat服务器的安 ...

  9. iOS 学习 - 10下载(4) NSURLSession 会话 篇

    NSURLConnection通过全局状态来管理cookies.认证信息等公共资源,这样如果遇到两个连接需要使用不同的资源配置情况时就无法解决了,但是这个问题在NSURLSession中得到了解决.N ...

  10. 分页查询的SQL语句

    select * from(select row_number() over (ORDER BY Id DESC) cyqrownum,t.* from [Table_TY_Member] t ) v ...