美文网首页我爱编程
【MySQL必知必会】第15章:

【MySQL必知必会】第15章:

作者: 100gle | 来源:发表于2018-04-09 16:38 被阅读23次

15.1 联结

SQL最强大的功能之一就是能在数据检索查询的执行中联结(join)表,但在掌握联结之前需要了解一下的名词概念:

关系表

关系表是指包含了共同关联列的众多表格,一般表格的数量大于等于2

主键和外键

  • 主键指一个表中的唯一标识字段(简单理解为身份证ID)
  • 外键是指的是一个表中的某列是另一个表中的主键值

15.2 创建联结

简单联结

基本的联结通过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以及完全限定列名来建立起两个表格中的vend_id的联结,并且将结果返回
  • 为了保证返回结果的准确性,在使用WHERE子句时需要保证其正确

笛卡尔积

没有联结条件的表返回的结果为笛卡尔积,即检索出的行的数目N是第一个表中的行树n乘以第二个表中的行数m
可以近似理解为,当第一列中只有5个值($n=5$),第二列中有10个值($m=10$),那么返回的笛卡尔积就是50($N=nm=510$),此时返回的行数就50行

15.3 内联结

使用WHERE语句来进行联结是等值联结(即一一对应),等值联结也称为内联结,但是其并不使用WHERE子句,而是使用其他语法:

SELECT vend_name, prod_name, prod_price
FROM vendors INNER JOIN products
ON vendors.vend_id = products.vend_id;
  • 这里INNER JOIN表明了两个表之间的关系,然后通过ON来传递条件(实际与WHERE传递)相同
  • 虽然使用WHERE子句定义联结的确比较简单,但是使用明确的联结语法能够确保不会忘记联结件;不过有时候这样做也影响性能

15.4 多表联结

SELECT语句中可联结的表的数目没有限制,创建联结也基本类似:

SELECT prod_name, vend_name, prod_price, quantity
FROM orderitems, products, vendors
WHERE products.vend_id = vendors.vend_id
    AND orderitems.prod_id = products.prod_id
    AND order_num = 20005;
  • 这里通过WHERE和AND的灵活组合,可以指定多个联结条件
  • 但是正如前面提到的,使用过多的联结会导致性能下降,这就需要减少不必要联结的表

相关文章

  • 安装MySQL安装包和工具(2018-08-29)

    一、安装mysql安装包和工具 1 准备软件 第1个是MySQL必知必会案例 第2个是MySQL工具:Navica...

  • MySql 创建和操纵表

    创建表 更新表 参考书籍: MySQL必知必会

  • MySQL必知必会阅读笔记(0章)--目录(有删减)

    书籍名称:MySQL必知必会阅读笔记 作者:刘增杰 第1章 初识MySQL 1.1 数据库基础 1.1.1 什么是...

  • mysql必知必会

    2018年7月13日笔记 1.数据库的介绍 1.1 什么是数据库 数据库是按照数据结构来组织、存储和管理数据的仓库...

  • Mysql必知必会

    1.表中的任何列都可以作为主键, 只要它满足以下条件:任意两行都不具有相同的主键值;每一行都必须具有一个主键值( ...

  • MySQL必知必会

    分页 方式1:select * from table order by id limit m, n;该语句的意思为...

  • 《Mysql必知必会》

    厚道的人运气都不会太差,我们永远相信会有美好的事情发生

  • 必知必会 - Mysql

    存储引擎InnoDB InnoDB 底层存储结构为B+树, B树的每个节点对应innodb的一个page,page...

  • Mysql必知必会!

    数据库 1. 数据库概述 1.1 数据库概述 什么是数据库 数据库就是存储数据的仓库,其本质是一个文件系统,数据按...

  • MYSQL必知必会

    第一章:了解SQL 数据库概念、表、列和数据类型、行、主键 第二章:MYSQL简介 1、mysql是一种DBMS(...

网友评论

    本文标题:【MySQL必知必会】第15章:

    本文链接:https://www.haomeiwen.com/subject/dbvihftx.html