SQL语句(十三)多表查询
多表查询
1. 笛卡尔乘积
简单格式
SELECT * 或字段列表
FROM 数据表列表
实例
--1. 笛卡尔乘积 (五条件的连接--很多条件无意义)
Select *
from Student, SC
2. 等值连接
-- 查询选课的学生全部信息
SELECT *
From Student, SC
where Student.Sno = SC.Sno
3. 不等值连接
select numb, cnumb, score, grade
from score, grade
where score.score between grade.gstart and grade.gend
4. 使用INNER JOIN (内连接, 匹配项)
Select * 或字段列表
From 表1
INNER JOIN 表2 ON 连接规则1
INNER JOIN 表3 ON 连接规则2
...
[WHERE 条件]
[ORGER BY]
--7. 使用INNER JOIN
-- (1)
select *
from score
INNER JOIN stu1 on score.numb = stu1.numb -- (2)
select *
from score, stu1, course
where score.numb = stu1.numb
and score.cnumb = course.cnumb
and stu1.name = '王宁'
order by course.cname, score.score -- 用 INNER 改写(2)
select *
from score
INNER JOIN stu1 on score.numb = stu1.numb
INNER JOIN course ON score.cnumb = course.cnumb
where stu1.name = '王宁' --将where里面条件放到了INNER里面
ORDER BY course.cname, score.score
5. 外连接OUTER JOIN (能够查到不匹配项)
按连接条件得到结果
内连接
左外连接 LEFT OUTER JOIN
查找左边表的不匹配项
SELECT * | 字段列表
FROM 表1
LEFT OUTER JOIN 表2 ON 条件
左表与表2没有对应项的话,左边表的记录显示出来
右外连接RIGHT OUTER JOIN
查找右边表的不匹配项
SELECT * | 字段列表
FROM 表1
RIGHT OUTER JOIN 表2 ON 条件
左表与表2没有对应项的话,表2 的记录显示出来
--8. 外连接OUTER JOIN
-- 查询所有同学的学生信息 和 选课信息(选课的列出课程编号和成绩,
-- 没有选课的这两项为NULL)
select *
from stu1
--左外连接,左边表里的,也就是stu1这个表里头的不匹配项也显示出来
LEFT OUTER JOIN score on stu1.numb = score.numb --或者是
select *
from score
--右外连接,右边表里的,也就是这个score表里头的不匹配项也显示出来
LEFT OUTER JOIN score on stu1.numb = score.numb
多表连接查询
笛卡尔乘积
等值连接
不等值连接
内连接、外连接
SELECT *
FROM 表1
[INNER JOIN 表2 ON 条件 ] |
[LEFT | RIGHT OUTER JOIN 表2 ON 条件 ]
[WHERE 条件]
[GROUP BY 字段列表]
[HAVING 条件]
[ORDER BY 条件]
SQL语句(十三)多表查询的更多相关文章
- 2.1 Oracle之DML的SQL语句之单表查询以及函数
1.SQL简介 对于不同的数据库来说,SQL语句是相通的,关系型数据库都以SQL语句为操作的标准,只是相应的数据库对应的函数不相同. SQL(Structured Query Language,结构化 ...
- 2.2 Oracle之DML的SQL语句之多表查询以及组函数
一.SQL的多表查询: 1.左连接和右连接(不重要一方加(+)) SELECT e.empno,e.ename,d.deptno,d.dname,d.loc FROM emp e,dept d WHE ...
- SQL语句 自连表查询。inner join用法,partition by ,列转行查询
use mydb1 go -- 表T_Employee2 -- Id Name Position Dept -- 1 张三 员工 市场部 -- 2 李四 经理 销售部 -- 3 王五 经理 市场部 - ...
- 惊世骇俗的sql语句之连表查询
select `product_skus`.id as skuId, `wname` as sku名称, if(`sku_attributes`.`status`=1,'上架','下架') as 状态 ...
- hibernate中使用sql语句进行表链接查询,对结果集的遍历方法
今天做了一个在hibernate中使用sql语句进行表链接查询的功能,得到的属性是来自两个表中的字段.下面对结果集遍历的方法进行记录. sql语句不写了.部分代码如下: List<Course_ ...
- SQL语句之 多表管理
SQL语句之 多表管理 一个数据库内通常会有不止一张表,有时候我们要把多张表联系起来,这就需要用到多表管理的语句. 1.外键约束 一个表中的非主键字段,如果在另外一张表中是主键,那么这个字段我们叫它做 ...
- sql语句中----删除表数据drop、truncate和delete的用法
sql语句中----删除表数据drop.truncate和delete的用法 --drop drop table tb --tb表示数据表的名字,下同 删除内容和定义,释放空间.简单来说就是把整 ...
- 通过带参数的Sql语句来实现模糊查询(多条件查询)
#region 通过带参数的Sql语句来实现模糊查询(多条件查询) StringBuilder sb = new StringBuilder("select * from books&quo ...
- (转载)用SQL语句创建Access表
<来源网址:http://www.delphifans.com/infoview/Article_220.html>用SQL语句创建Access表 很久以前弄的,用了一天的时间,没有什么技 ...
- 使用sql语句获取数据库表的信息
下面的sql语句可以查看表的信息.其中modify_date和create_date可以根据表的修改时间来查看.如果不需要删除后,就能看到所有表的字段信息 ) PERCENT d.name AS 表名 ...
随机推荐
- Vue全家桶介绍
一直不清楚全家桶是什么玩意,上网搜了一下,才知道就是平时项目中使用的几个依赖包,下面分享一下 Vue 全家桶介绍 Vue有著名的全家桶系列,包含了vue-router(http://router.vu ...
- openssl证书及配置
我的环境是:Linux+Apache+MySQL+PHP 1.下载openssl 及相关依赖 #yum install -y openssl 2.进入目录 /etc/pki/tls/certs #cd ...
- 第五次Scrum meeting
第五次Scrum meeting 会议内容: 连接方面:确定封装成json的文本格式,尽量在满足在线组和手机客户端两组的情况下,降低自身的难度 测试方面:进行新一轮测试,主要测试程序的稳定性和可靠性, ...
- 关于增强的for循环
增强的for循环例子:public static<AnyType> void print(Collection<AnyType> coll){ for(AnyType item ...
- Beta阶段冲刺-3
一. 每日会议 1. 照片 2. 昨日完成工作 3. 今日完成工作 4. 工作中遇到的困难 杨晨露:组内图表部分遇到了问题,他们的问题一出来,我就头疼了......因为要调整计划时间,所以我觉得我的困 ...
- Spark 实践——基于 Spark MLlib 和 YFCC 100M 数据集的景点推荐系统
1.前言 上接 YFCC 100M数据集分析笔记 和 使用百度地图api可视化聚类结果, 在对 YFCC 100M 聚类出的景点信息的基础上,使用 Spark MLlib 提供的 ALS 算法构建推荐 ...
- Software-Defined Networking:A Comprehensive Survey--Day2
Software-Defined Networking:A Comprehensive Survey (续+1s) IV. SOFTWARE-DEFINED NETWORKS: BOTTOM-UP S ...
- TensorFlow图像识别(物体分类)入门教程
本文主要介绍了如何使用TensorFlow环境运行一个最基本的图像分类器(Win10系统).源码地址https://github.com/sourcedexter/tfClassifier/tree/ ...
- 深入理解Java之线程池(爱奇艺面试)
爱奇艺的面试官问 (1) 线程池是如何关闭的 (2) 如何确定线程池的数量 一.线程池销毁,停止线程池 ThreadPoolExecutor提供了两个方法,用于线程池的关闭,分别是shutdown() ...
- ionic npm安装报错 no such file ,解决办法
Install the latest version of NodeJS from their website (e.g. 6.X.X). Open the Node.js command promp ...