zoukankan      html  css  js  c++  java
  • 第八章-连接与多张表的操作

    1.引用某个查询的结果来安插至另一个表中

    1 CREATE TABLE profession(
    2     id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    3     ename VARCHAR(20)
    4 )ENGINE = MYISAM DEFAULT CHARSET = utf8
    5     AS 
    6     SELECT ename FROM emp 
    7     GROUP BY ename 
    8     ORDER BY ename;  /*以SELECT的查询结果填满ename列*/

    2.创建别名(可省略)

    1 CREATE TABLE profession(
    2     id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    3     mc_prof VARCHAR(20)
    4 )AS
    5     SELECT profession AS mc_prof FROM my_contacts
    6     GROUP BY mc_prof
    7     ORDER BY mc_prof;

    join(联接)

    cross join(交叉联接):把一张表中的每个值与另一张表的每个值配对,cross join返回两张表的每一行相乘的结果。

    交叉连接可以省略不写,用逗号代替。

    inner join(内联接):内联接基本上就是通过查询中的条件移除了某些结果数据行后的交叉联接。

    SELECT mc.last_name ,mc.first_name, p.profession
    FROM my_contacts AS mc
    INNER JOIN profession AS p  /*联接my_contacts表和profession表*/
    ON mc.prof_id = p.prof_id;  
    /*这个地方的关键字on也可以换成where,on后面是联接条件*/

    equijoin(相等联接):表之间为一对一关系的联接

    non-equijoin(不等连接):返回任何不相等的记录

    natural join(自然联接):在两张表中有相同的列名时才会有用

    SELECT boys.boy, toys.toy
    FROM boys
    NATURAL JOIN
    toys;
  • 相关阅读:
    JEDEC标准(JESD216)S FDP对串行Flash在系统中的应用
    Gerrit使用简介
    Gerrit2安装配置
    SSH原理与运用(二):远程操作与端口转发
    SSH原理与运用(一):远程登录
    常用的几个工具网站
    MQTT、CoAP
    Gerrit代码Review实战
    net share
    Gitlab+Gerrit+Jenkins完整对接
  • 原文地址:https://www.cnblogs.com/hell0x/p/5033151.html
Copyright © 2011-2022 走看看