接触Sql语句时间挺长时间了,听他人说过sql语句的连接查询,但一直没有认真研究和使用过!!最近在公司实习,需要用到一些连接的语句,我也从中体会到连接查询带来的方便。

下面总结一下SQL连接查询语句。

1、内连接 (INNER JOIN)

  内连接也称自然连接,它是根据两个或多个表中的列之间的关系,从这些表中查询数据。
注意: 内连接是从结果表中删除与其他被连接表中没有匹配行的所有行,所以内连接可能会丢失信息。
重点:内连接,只查匹配行。
语法:(INNER可省略)

select dishname,dishcode,nums,catename from sn_dish_info inner join sn_dish_category
on sn_dish_info.cateuuid=sn_dish_category.cateuuid

菜品类别表:

菜品表

结果表

  这样我们就把两张表中我们想要的数据查出来了。但同时招牌菜这个的数据就丢失了!!不过这对于我们好像不影响我们。我们只要菜品类别下有菜品的数据。

2、外连接(左,右,全连接)

  外连接分为三种:左外连接,右外连接,全外连接。对应SQL:LEFT/RIGHT/FULL OUTER JOIN。通常我们省略outer 这个关键字。写成:LEFT/RIGHT/FULL JOIN。

  在左外连接和右外连接时都会以一张表为基表,该表的内容会全部显示,然后加上两张表匹配的内容。如果基表的数据在另一张表没有记录。那么在相关联的结果集行中列显示为空值(NULL)。

(1)左连接

以左表为基准,结果集保留左表的所有行,对于右表只包含左表匹配的行。如果右表不存在与左表相对应的数据,就将查询结果集合对应的数据字段放入NULL值。

Select  dishname,dishcode,nums,sn_dish_category.catename as carename
from sn_dish_info  left join sn_dish_info.cateuuid sn_dish_category.cateuuid

结果:

(2)右连接

与左连接正好相反。

Select  dishname,dishcode,nums,sn_dish_category.catename as carename
from sn_dish_info right join sn_dish_category on sn_dish_info.cateuuid=sn_dish_category.cateuui

结果:

(3)全连接

将左右两个表中的数据都查询出来,如果两个表中没有相对应的数据,就将该字段放入NULL值。

Select  dishname,dishcode,nums,sn_dish_category.catename as carename
from sn_dish_info full join sn_dish_category on sn_dish_info.cateuuid=sn_dish_category.cateuuid  

3、交叉连接(Cross join)

交叉连接也称笛卡尔积,是将两个表中的每一条数据都进行组合。

例:a(a,1),b(2,3,4)     交叉连接后c{(a,2) ,(a,3),(a,4)(1,2),(1,3),(1,4)}

Select  dishname,dishcode,nums,sn_dish_category.catename as
carename from sn_dish_info cross join sn_dish_category  

他和用内连接进行查询的结果一样,就是太慢了,因为它得先进行组合,在进行筛选,导致查询的效率很低。

4、UNION

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。

当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。

SQL UNION 语法  SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2  注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。  SQL UNION ALL 语法  SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2 

SQL连接查询语句(内、外、交叉和合并查询)相关推荐

  1. 小程序云开发数据库查询语句之doc与where||如何查询到不符合条件的结果

    小程序云开发数据库查询语句之doc与where||如何查询到不符合条件的结果 一只孤独的菜鸟 最近在云开发时遇到的查询语句, where和doc,在官方文档上是这样的 db.collection('t ...

  2. 加sql查询语句导出_搞不懂这些查询语句,SQL简单查询也无法从入门到熟练

    大纲: 一.基本的查询语句 二.指定查询条件 三.注释和SQL语句注意事项 四.运算符 五.谓词 一.基本的查询语句 从表中选取数据时需要使用select语句,也就是只从表中选出(select)必要数 ...

  3. MySQL查询语句大全(列举所有常用查询方式)

    文章目录 前提条件 简单查询 直接查询 条件查询 模糊查询 算数运算符 逻辑运算符 in与not in运算符 排序查询 高级查询 范围运算 限制查询 嵌套查询 多表连查 内连接 左连接 右连接 聚合函 ...

  4. 结构化查询语句简称mysql_整理MySql常用查询语句

    MySql的性能优化 性能优化是通过某些有效的方法提高MySQL数据库的性能.性能优化的目的是为了是MySQL数据运行速度更快.占用的磁盘空间更小.性能优化包括很多方面,例如优化查询速度.优化更新速度 ...

  5. oracle带时间查询语句,请教oracle按时间分组查询语句的写法

    请教oracle按时间分组查询语句的写法 最近由于要做报表,在一张表中有一个字段为date类型,现在想要在一段时间内(比如一年)能够按照时间段分组查询记录总和,比如我要能够查询2007年到2009年间 ...

  6. Oracle数据库查询语句去重,Oracle数据库之SQL---select查询

    最好的学习就是实战!因此我的学习也就是从实战中展开的.在一切SQL语句中最基本的莫过于查询语句了,因此笔者也是从select语句开 前言 最好的学习就是实战!因此我的学习也就是从实战中展开的.在一切S ...

  7. mysql语言中子查询是什么_SQL查询语句中,什么叫子查询?

    展开全部 嵌套SELECT语句也叫子查询,一个 SELECT 语句的查询结果能够作为另一个语句的输入值.子查询不但能够出现在Where子句3231313335323631343130323136353 ...

  8. mysql查询语句详解_基于mysql查询语句的使用详解

    1> 查询数据表除了前三条以外的数据. 起初我想到的是这条语句 SELECT * FROM admin WHERE userid NOT IN (SELECT userid FROM admin ...

  9. mysql教程查询语句_最全的mysql查询语句整理

    -- 基本查询 select * from pet -- 列出指定的列 select name, owner form pet -- 直接进行算术运算,对字段起别名 select sin(1+2) a ...

  10. mysql关联查询去重_MySQL外键和高级查询(连接查询、联合查询、子查询、去重查询)...

    MySQL的外键 什么是外键,很简单保持数据一致性的一个约束键.如果你有两张表,第一张是学生表,第二张表是一个成绩表,我们来看看保持数据一致性,其实在Django等框架的模型中中也能做关联获取对象. ...

最新文章

  1. fork() 成为负担,需要淘汰
  2. laravel文件存储Storage
  3. jquery easyui combobox设置默认选中第一项
  4. Android 3D开发,OpenGL ES 的使用(一)
  5. WeScale 技术篇 —— mpvue 与微信小程序的火花
  6. 安装ARM交叉编译工具
  7. 查经 民数记3章 利未人
  8. 20145335郝昊《网络对抗》逆向及Bof基础实践
  9. layui文件上传 提示 请求上传接口出现异常
  10. python成语接龙代码_#python# 成语接龙(二)
  11. C++中Vector/Map/List中尽量使用指针,避免直接保存对象
  12. 基于SSM实现宠物领养网站平台管理系统
  13. python超市管理系统流程图_python实现超市管理系统(后台管理)
  14. 94G的kindle电子书btsync分享
  15. 郝兵c语言_郝斌C语言笔记——C语言概述
  16. 不用校园网如何下载论文文献|DOI号|文献免费下载
  17. 重温《遥远的救世主》
  18. 敬业签:备忘录在手机哪里能找到?
  19. linux如何更改mac地址
  20. Java程序性能优化 ! .

热门文章

  1. 现代密码学中的数论基础知识梳理
  2. 希尔密码(Hill)
  3. 酒店旅业治安管理系统接口开发
  4. php 调用拼多多接口方法 生成 sign方法
  5. 考勤系统与服务器链接,考勤机怎么连接服务器
  6. rabbitmq消息队列原理
  7. VS Code C语言开发环境配置附图版保姆教程
  8. 电路第五版课后完全答案百度扫描(免费)
  9. 计算机excel高级筛选操作大全,Excel高级筛选的7个使用实例,含不等于空、多条件、筛选到另一表格、用通配符*/?或公式组合条件...
  10. 接口测试一般怎么测?接口测试的流程和步骤~