1使用无连接规则连接两表
所谓无连接规则连接,就是指连接两表的SELECT语句中不设置任何连接条件,这样得到的连接结果是第一个表中的每一行都会和第二个表中的所有行进行连接,即得到一个笛卡尔积.

SELECT * 或字段列表
FROM 表名1,表名2

2使用有连接规则连接两表
有连接规则连接,其实就是在无连接规则的基础上,加上WHERE子句指定连接规则的连接方法。

SELECT *(或字段列表] 
FROM  表名1,表名2
WHERE 连接规则

查询名叫“张三”的学生的所有课程的平时成绩和考试成绩,并按考试成绩降序排序。
    SELECT  stu_info。sno, su_lnfo。snarne, score.cno,score.usually, scora.exam
    FROM    stuinfo, score
    hlHERE  stu_info.sname='张三'
    AND     stu_info.sno=score. sno
    ORDER BY score.exam DESC

3使用多表连接查询数据

查询名叫“张三”的学生的所有课程的平时成绩和考试成绩,并按考试成绩降序排序,当考试成绩相同时,用平时成绩降序排序。

    SELECT  stu_info.sno,stu_info.snanua,course.cname,score.usually, score.exam
    FROM    stu_info,score,course
    WHERE   stu_nfo.sname='张三'
    AND     stu_info.sno=score.sno
    AND     score.cno=course.cno
    ORDER BY  score.exam DESC, score.usually  DESC

4使用表别名简化语句

SELECT a.sno,a.name,c.cname. b.usually,b.exam
FROM   stu_info AS a,
score   AS b,
course  AS  c
WHERE   a.sname='张三'
AND     a.sno=b.sno
AND     b.cno=c.cno
ORDER BY b.exam DESC,b.usually DESC

5使用INNER JOIN连接查询
在WHERE子句中设置连接规则,有时会使整个条件表达式变得非常臃肿,而且不容易让人理解。因此在ANSI SQL规范中建议使用INNER JOIN进行多表连接。这样一来,WHERE子句中就不用再放置连接规则,而只放置查询条件就可以了。

查询所有考过“心理学”课程的学生的学号、姓名、系别及“心理学”的平时成绩和考试成绩‘.
SELECF st.sno,st.sname,st.depart, s.usually,s.exam
FROM
score AS s
INNER JQIN course AS c
     ON s.cno=c.cno
INNER JOIN stu_info AS st
     ON st.sno=s.sno
WHERE c.cname='心理学'
ORDER BY s.exam DESC