文章目录

  • 1.联结
    • 1.1 关系表
    • 1.2 为什么要使用联结
  • 2.创建联结
    • 2.1 where子句的重要性
    • 2.2 内部联结
    • 2.3 联结多个表

1.联结

1.1 关系表

关系表的设计就是要保证把信息分解成多个表,一类数据一个表。各表通过某些常用的值(即关系设计中的关系互相关联)。
各关系表之间通过主键、外键进行关联。关系数据可以有效地存储和方便地处理。因此,关系数据库的可伸缩性远比非关系数据库要好。


1.2 为什么要使用联结

数据存储在多个表中,要想用单条SELECT语句检索出数据,就要使用联结。使用特殊的语法,可以联结多个表返回一组输出,联结在运行时关联表中正确的行。


2.创建联结

确定要联结的表及如何关联


2.1 where子句的重要性

在联结两个表时,实际上是将第一个表中的每一行与第二个表中的每一行配对。
where子句作为过滤条件,它只包含那些匹配给定条件(这里是联结条件)的行。
没有where子句,第一个表中的每个行将与第二个表中的每个行配对,而不管它们逻辑上是否可以配在一起。由没有联结条件的表关系返回的结果为笛卡儿积。检索出的行的数目将是第一个表中的行数乘以第二个表中的行数。


2.2 内部联结


尽管使用WHERE子句定义联结的确比较简单,但是使用明确的联结语法inner join…on 能够确保不会忘记联结条件,有时候这样做也能影响性能。


2.3 联结多个表

SQL对一条SELECT语句中可以联结的表的数目没有限制。首先列出所有表,然后定义表之间的关系。

Mysql在运行时关联指定的每个表以处理联结。这种处理可能是非常耗费资源的,因此应该仔细,不要联结不必要的表。联结的表越多,性能下降越厉害。


-- 用where子句联结两个表,确定要联结的表及如何关联
SELECT vend_name, prod_name, prod_price
FROM vendors, products
WHERE vendors.`vend_id`= products.`vend_id`
ORDER BY vend_name, prod_name;-- 没有where子句的联结,产生的结果数目是第一个表中的行数乘以第二个表中的行数
SELECT vend_name, prod_name, prod_price FROM vendors, products ORDER BY vend_name, prod_name;-- 内部联结inner join表名on 条件
SELECT vend_name, prod_name, prod_price
FROM vendors INNER JOIN products
ON vendors.`vend_id`= products.`vend_id`
ORDER BY vend_name,prod_name;   -- 联结多个表
SELECT prod_name, vend_name, prod_price, quantity
FROM products, vendors, orderitems
WHERE products.`vend_id`= vendors.`vend_id`AND orderitems.`prod_id` = products.`prod_id`AND order_num = 20005;

联结表——where子句inner join相关推荐

  1. 数据库9:联结表 高级联结 组合查询 全文本搜索

    第十五章联结表 Sql最强大的功能之一就是能在数据检索查询的执行中联结(join)表.联结是利用sql的select能执行的最重要的操作,能很好的理解联结及其语法是学习sql的一个极为重要的组成部分. ...

  2. MySQL(七)联结表

    一.联结表基础知识 1.关系表 把信息分解成多个表,一类数据一个表,各表通过某些常用值(即关系设计中的关系(relational))互相关联: 2.外键(foreign key):外键为某个表中的一列 ...

  3. MySQL必知必会——第十五章联结表

    联结表 本章将介绍什么是联结,为什么要使用联结,如何编写使用联结的SELECT语句. 联结 SQL最强大的功能之一就是能在数据检索查询的执行中联结(join)表. 在能够有效地使用联结前,必须了解关系 ...

  4. mysql必知必会读书笔记就——联结表、高级联结

    vendor表: products表: orderitems表: customers表: orders表: 一.联结表:联结表是一种机制,用来在一条select语句中关联表,因此称为联结表.联结在运行 ...

  5. mysql内部联结_MySQL联结表

    1. 联结表 创建联结,有where子句 select vend_name, prod_name, prod_price from vendors, products where vendors.ve ...

  6. SQL语言——联结表

    1 联结 SQL最强大的功能之一就是能在数据检索查询的执行中联结(join) 表.联结是利用SQL的 SELECT能执行的最重要的操作,很好地理解联结 及其语法是学习SQL的一个极为重要的组成部 分. ...

  7. 《SQL必知必会》第十三课 创建高级联结表 使用不同类型的联结 使用带聚集函数的联结 使用联结时应注意的问题

    第十三课 创建高级联结表 #使用表别名的原因 #不同的联结类型以及每类联结所使用的语法 #如何与联结一起使用聚集函数 #使用联结时的注意问题 一.使用表别名 [1]前面(第七课)介绍使用别名引用被检索 ...

  8. mysql 常用命令 | 表间 弱关联 join

    show databases; use mhxy; select database();show tables; desc account_list_175;insert into mytable(n ...

  9. 【SQL自学打卡|DAY12】——联结表专项学习

    前言 ❤欢迎大家阅读我的文章呀❤ 希望你们在我的文章当中能有所收获!!! SLogan:利用有限的时间,撸起袖子加油干! 知识点回顾 子查询的格式: 题目详情可参考DAY11文章当中的[SQL91] ...

最新文章

  1. tomcat通过apr配置https
  2. [ARM异常]-ARMV8的中断的routing和Mask表
  3. [Python_6] Python 配置 MySQL 访问
  4. 夯实基础——P2084 进制转换
  5. Python全栈开发——面向对象的三大特性(继承 多态 封装)
  6. 计算机测试怎么提交,Win7电脑怎么测试上传速度?
  7. 运行orbslam2出现 段错误 (核心已转储)_JDK 14已发布快速预览16个新特性
  8. 机器视觉:双远心镜头在弹簧检测中的应用
  9. IDEA中项目引入独立包打包失败问题解决(找不到包)
  10. 你不是编程挺厉害的吗?这都做不出来 | 硕士写给自己:努力应该适可而止
  11. 固态硬盘坏块修复工具_坏道和坏块什么区别?硬盘高级修复教程来了
  12. samba端口号修改_samba 端口号(samb端口号)
  13. android 清理系统垃圾,安卓手机怎么清理系统垃圾
  14. 使照片带有妙的电影色彩55款工具套件的lr微妙的电影调色预设
  15. Android项目之二手交易淘学院APP
  16. 本体学习方法及开发过程小结
  17. Data URL和图片(前端细节优化)
  18. 《宝岛双雄》曝正式海报 房祖名挑大梁的银幕转型之作
  19. 大数据之Stream流
  20. 16丨数据分析基础篇答疑

热门文章

  1. Linux 配置nginx和php代理 ip访问
  2. AcWing周赛 72 场 LeetCode单周赛 314 场 总结
  3. 使用 pkg 打包 node服务端 项目
  4. 推荐两款程序员必备的画图神器
  5. 纯前端表格控件SpreadJS V14.0发布:组件化编辑器+数据透视表
  6. 基于物联网的环境监控系统设计与实现
  7. 行会最大上限是多少人?如何提升人数?
  8. VideoCapture通用属性标识符
  9. 全球安全资讯精选 2017年 第七期: Equifax 泄漏 1.43 亿用户数据
  10. 如何将一个对象中的List对象添加为子集,且父结构不存在重复数据