数据库系列之查询(5)

php中文网
发布: 2016-06-07 15:00:11
原创
1500人浏览过

内连接 1 语法 SELECT 列名 FROM 表1 INNER JOIN 表2 ON 表1.列名 条件运算符 表2.列名 [WHERE 条件] [ORDER BY 排序列] 其中ON 表1.列名 条件运算符 表2.列名 中,条件运算符常用的是:=、。 表1.列名和表2.列名,分别是两个表的公共列。 内连接查询出的是两

内连接

1 语法

select
from 表1 
inner  join  表2 on 表1.列名  条件运算符  表2.列名
[where 条件]
[order by  排序列]
其中“on 表1.列名  条件运算符  表2.列名” 中,条件运算符常用的是:=、。
表1.列名和表2.列名,分别是两个表的公共列。
内连接查询出的是两个表公共列共有的记录。

2 示例

(1)Books与Authors内连接SQL语句

<span>SELECT</span> b.BookCode <span>as</span> 图书编号, b.BookName <span>as</span> 图书名称, a.AuthorName <span>as</span><span> 作者姓名
</span><span>FROM</span> Books <span>as</span><span> b
</span><span>INNER</span> <span>JOIN</span> Authors <span>as</span> a <span>ON</span> b.AuthorID <span>=</span> a.AuthorID
登录后复制


(2)内连接另外一种写法

<span>SQL Server2005还兼容以前版本的内连接语法,即使用WHERE子句进行内连接。 
</span><span>SELECT</span> b.BookCode <span>as</span> 图书编号, b.BookName <span>as</span> 图书名称, a.AuthorName <span>as</span><span> 作者姓名
</span><span>FROM</span><span> Books b,  Authors a
</span><span>WHERE</span> b.AuthorID <span>=</span> a.AuthorID
登录后复制

3 多表内连接语法

SELECT
FROM 表1 
INNER  JOIN  表2 ON 表1.列名  条件运算符  表2.列名
INNER JOIN  表3 ON 表1.列名  条件运算符  表3.列名
……
[WHERE 条件]
[ORDER BY  排序列]

4 示例

<span>SELECT</span> b.BookCode <span>as</span> 图书编号, c.PublisherName <span>as</span><span> 出版商名,
               b.BookName </span><span>as</span> 图书名称,a.AuthorName <span>as</span><span> 作者姓名
</span><span>FROM</span>  Books b <span>INNER</span> <span>JOIN</span>  Authors a <span>ON</span> b.AuthorID<span>=</span><span>a.AuthorID 
</span><span>INNER</span> <span>JOIN</span> Publisher c <span>ON</span> b.PublisherID<span>=</span>c.PublisherID
登录后复制

外连接

左外连接语法

SELECT
FROM 左表 
LEFT  [OUTER] JOIN  右表 ON 左表.列名  条件运算符  右表.列名
[WHERE 条件]
[ORDER BY  排序列]

示例

使用左外连接查询Books与Authors表中的数据

<span>SELECT</span> b.BookCode <span>as</span> 图书编号, b.BookName <span>as</span> 图书名称, a.AuthorName <span>as</span><span> 作者姓名
</span><span>FROM</span><span> Books b 
</span><span>LEFT</span> <span>JOIN</span>  Authors a <span>ON</span> b.AuthorID<span>=</span>a.AuthorID
登录后复制

左外连接是以左表为主表,去关联右表(从表),结果集中包含主表所有数据行,如果主表的某行在从表中没有匹配行时,则从表的选择列为NULL值。

右外连接语法

SELECT
FROM 左表  RIGHT  [OUTER] JOIN  右表
ON 左表.列名  条件运算符  右表.列名
[WHERE 条件]
[ORDER BY  排序列]

示例

使用右外连接查询Books与Authors表中的数据
SELECT b.BookCode as 图书编号, b.BookName as 图书名称, a.AuthorName as 作者姓名
FROM Books b
RIGHT JOIN  Authors a ON b.AuthorID=a.AuthorID
右外连接是以右表为主表,去关联左表(从表),结果集中包含主表所有数据行,如果主表的某行在从表中没有匹配行时,则从表的选择列为NULL值。

完全连接

语法 

SELECT
FROM 左表 
FULL  [OUTER] JOIN  右表 ON 左表.列名  条件运算符  右表.列名
[WHERE 条件]
[ORDER BY  排序列]
完全连接左表和右表中所有行,当某行数据在另一个表中没有匹配时,则另一个表的选择列值为NULL

示例

使用完全连接查询Books与Authors表中的数据

<span>SELECT</span> b.BookCode <span>as</span> 图书编号, b.BookName <span>as</span> 图书名称, a.AuthorName <span>as</span><span> 作者姓名
</span><span>FROM</span><span> Books b 
</span><span>FULL</span> <span>JOIN</span>  Authors a <span>ON</span> b.AuthorID<span>=</span>a.AuthorID
登录后复制

交叉联接


概念:没有用where子句的交叉连接将产生连接所涉及的笛卡尔积第一个表的行数乘以第二个表的行数等于笛卡尔积和结果集的大小

站长中国企业(公司)网站系统 4.2
站长中国企业(公司)网站系统 4.2

功能列表:1.全站静态化HTML页面2.公司简介3.新闻中心4.产品介绍5.招聘信息6.联系我们7.客户留言8.广告管理9.幻灯片管理10.友情链接新功能:新闻中心企业简介产品展示招聘信息栏目自主设置keyword支持SEO使用说明:默认页为:deafaul.html数据库地址:database/zzchn#da2005.asp数据库名称:zzchn#da2005.asp后台用户地址:admin后

站长中国企业(公司)网站系统 4.2 0
查看详情 站长中国企业(公司)网站系统 4.2

交叉连接: Cross join(不带条件where,如果带返回或显示的是匹配的行数)

SQL语法:select * from  Books cross join Books

如果有条件(<span>where</span><span>)
</span><span>select</span> <span>*</span> <span>from</span> Books <span>cross</span> <span>join</span> Authors <span>where</span> Books.AuthorID<span>=</span><span> Authors.AuthorID
等价于
</span><span>select</span> <span>*</span> <span>from</span> Books ,Authors <span>--</span><span>(不带where)</span>
登录后复制

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号