sql查询

连接查询(多表查询)

from 表1 [连接方式] join 表2 [on 连接条件];

交叉连接:

select * from  表1    join  表2

交叉查询查出的数据比较混乱 所以用的比较少。

内连接:

from  表1  [inner]  join  表2  on  表1.字段1=表2.字段2;

用的比较多  需要调用两个或者以上的表的时候

例如-- 查询所有学生的Sname、Cno和Degree列。
SELECT sname,cno,degree FROM student JOIN score ON student.sno=score.sno;

后面可以再添加查询条件 where  或者分组group by  也可以加模糊查询 like等都可以

左[外]连接:

from  表1  left  [outer]  join   表2   on  连接条件。

 右[外]连接:

from  表1  right  [outer]  join   表2   on  连接条件。

左外和右外 基本类似的  连接左边或者右边 数据 没有的补全null  用的也很少

全[外]连接

from  表1  full  [outer]  join  表2  on  连接条件;

全外就是 左右外链接结合

in子查询

in的基本语法形式为:

where  操作数  in (值1,值2, ....)

则in子查询就是:

where  操作数  in ( 列子查询 );

这个子查询 和内连接是实现一个功能的 只不过实现方式不一样 而且 这个只能时间一个标的数据

例如-- 查询李诚老师教的课程名称
SELECT cname FROM teacher,course WHERE course.`tno`=teacher.`tno` AND tname='李诚'; ----内连接
SELECT cname FROM course WHERE tno=(SELECT tno FROM teacher WHERE tname='李诚')----子查询

联合查询

联合查询的关键字是: union

就是把两个硬连起来 用的也不多

原文地址:https://www.cnblogs.com/sy130908/p/11218221.html