数据库设计:

  1.  一对一:任意一方建立外键,关联对方主键,并设置外键唯一

  2.  一对多:在多的一主建立外键关联一的一方主键

  3.  多对多:建立中间表,中间表至少包含两个外键,分别关联双方主键

多表查询:

  1.  连接查询:

   ¤  内连接:查询交集数据

    •  隐式内连接:select 字段列表 from 表1, 表2, ...... where 条件;

       注:表1和表2有可能有相同的字段,字段列表可以用表名限定,表1.字段,表2.字段

         如表字段列名太长,可以给表起别名:select t1.字段, t2.字段 from 表1 t1, 表2 t2, ...... where 条件;

    •  显式内连接:select 字段列表 from 表1 [inner] join 表2 on 条件;  注:inner 可以省略,可以写多条join连接多张表

   ¤  外连接:

    •  左外连接:查询A表所有数据和交集数据

     ♦  select 字段列表 from 表1 left [outer] join 表2 on 条件;      注:outer可以省略

    •  右外连接:查询B表所有数据和交集数据

     ♦  select 字段列表 from 表1 right [outer] join 表2 on 条件;

  2.  子查询:查询中嵌套查询

    •  单行单列:select 字段列表 from 表名 where 字段名 = (子查询);

    •  多行单列:select 字段列表 from 表名 where 字段名 in (子查询);

    •  多行多列:select 字段列表 from (子查询:结果是一个虚拟表) where 条件;