SQL连接查询
连接查询:通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。
常用的两个链接运算符:
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连接查询的更多相关文章
- sql连接查询中的分类
sql连接查询中的分类 1.内连接(结果不保留表中未对应的数据) 1.1等值连接:关联条件的运算符是用等号来连接的. 1.2不等值连接:连接条件是出等号之外的操作符 1.3自然连接:特殊的等值连接,在 ...
- sql连接查询(inner join、full join、left join、 right join)
sql连接查询(inner join.full join.left join. right join) 一.内连接(inner join) 首先我这有两张表 1.顾客信息表customer 2.消费订 ...
- SQLServer SQL连接查询深度探险(摘录
SQL连接查询深度探险[摘录] 测试环境: Windows XP Profession MySQL 5.0.45 Oracle 9i DB2 UDB 9.1 测试的SQL脚本如下:此脚本适合MySQL ...
- SQL连接查询、变量、运算符、分支、循环语句
连接查询:通过连接运算符可以实现多个表查询.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 常用的两个链接运算符: 1.join on 2.union 在关系数据库 ...
- sql连接查询中on筛选与where筛选的区别
sql查询这个东西, 要说它简单, 可以很简单, 通常情况下只需使用增删查改配合编程语言的逻辑表达能力,就能实现所有功能. 但是增删查改并不能代表sql语句的所有, 完整的sql功能会另人望而生畏. ...
- MySQL学习(四) SQL连接查询
更多情况下,我们查询的数据来源于多张表,所有有必要了解一下MySQL中的连接查询. SQL中将连接查询分成四类:交叉连接,内连接,外连接和自然连接. 数据准备 student表 -- -------- ...
- sql 连接查询
什么是连接查询呢 概念:根据两个表或多个表的列之间的关系,从这些表中查询数据. 目的:实现多个表查询操作. 分类 首先划分一下,连接分为三种:内连接.外连接.交叉连接 内连接(INNER JOIN): ...
- SQL连接查询基础知识点
什么是连接 连接(join)查询是基于多个表中的关联字段将数据行拼接到一起,可以同时返回多个表中的数据. 下面以两个表为例子,举例说明一下不同的连接. SELECT * FROM products i ...
- SQL——连接查询
以mysql为例: 新建两张表table1和table2 CREATE TABLE `table1` ( `id` ) NOT NULL auto_increment, `name` ) defaul ...
随机推荐
- 关于asp.net impersonation的一些谣传
以下皆是理论知识,未经证实. system.web下面的配置节 <identity impersonate="true" /> 或者<identity imper ...
- AndroidInject项目使用动态代理增加对网络请求的支持
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3540427.html AndroidInject项目是我写的一 ...
- git 新建服务器的版本以及项目的用户
一, git客户端账号生成 1. git的客户端的公钥生成 ssh-keygen -t rsa -C "test@gmail.com" mac机器会在 /Users/用户/.ssh ...
- react native 学习资料整理
入门教程 深入浅出 React Native:使用 JavaScript 构建原生应用 http://www.appcoda.com/react-native-introduction/ 中文版 h ...
- 操作系统开发系列—12.f.在内核中添加中断处理 ●
因为CPU只有一个,同一时刻要么是客户进程在运行,要么是操作系统在运行,如果实现进程,需要一种控制权转换机制,这种机制便是中断. 要做的工作有两项:设置8259A和建立IDT. /*========= ...
- 【Android】保存Fragment切换状态
前言 一般频繁切换Fragment会导致频繁的释放和创建,如果Fragment比较臃肿体验就非常不好了,这里分享一个方法. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.c ...
- git之三
1.status命令与diff命令 前面我们已经成功地添加并提交了一个readme.txt文件,修改readme.txt如下: echo "Git is a distributed vers ...
- 虚拟机中MySQL连接问题:Lost connection to MySQL server at 'reading initial communication packet, system error: 0 以及 host is not allowed to connect mysql
环境:在VirtualBox中安装了Ubuntu虚拟机,网络使用了NAT模式,开启了端口转发. 局域网内其他计算机访问虚拟机中的MySQL Server出现两个问题: Lost connection ...
- 测试必备技能系列1 :通过mysql命令进行脚本数据导入
老徐,分享测试项目中实际能解决问题的干货! 今日分享: 如何通过mysql命令行,导入mysql脚本文件数据? ----- 解决实际的问题: 工作过程中,经常需要导入mysql脚本文件 很多同 ...
- tar包在linux下 java安装
总的原则:将jdk-7u10-linux-x64.tar.gz压缩包解压至/usr/lib/jdk,设置jdk环境变量并将其修改为系统默认的jdk 1.将jdk-7u5-linux-x64.tar.g ...