数据库原理之连接(多表)查询(三)(第16天)

连接查询是关系数据中最主要的查询,可以对两个或多个表进行查询。

连接的类型:

    内部连接:使用类似于“=,>,<”的符号连接

    外部连接:只能限制一个表

        左外连接:对连接左边的表不加限制

        右外连接:对连接右边的表不加限制

        全外连接:两个表都不加限制

    交叉连接:对两个表就行笛卡尔集运算,形成新的结果表,结果表的行数等于两个表行数的乘积

重点来了

一、连接查询的实现

    1.使用FROM子句和WHERE子句实现多表查询

        (1).使用FROM子句直接实现表的连接 

SELECT [student].s_id,[Student].s_name,[Grade].c_grade FROM [Student],[Grade] ORDER BY [Student].s_id


            (2).使用WHERE子句实现条件连接

SELECT [student].s_id,[Student].s_name,[Grade].c_grade FROM [Student],[Grade] WHERE [Student].s_id = [Grade].s_id


            (3).使用WHERE子句实现自身连接

SELECT g.* FROM [Student] s ,[Grade] g WHERE s.s_name = '张三' AND s.s_id = g.s_id


    2.使用JOIN关键字实现多表查询

        (1).使用[INSERT]JOIN实现内部连接查询

SELECT [Student].s_id,[Student].s_name,[Grade].c_grade
FROM [Student] INNER JOIN [Grade]
ON [Student].s_id = [Grade].s_id


        (2).使用LEFT[OUTER]JOIN实现左外部连接查询

SELECT [Student].s_id,s_name,c_grade
FROM [Student] LEFT OUTER JOIN [Grade]
ON [Student].s_id = [Grade].s_id


        (3).使用RIGHT[OUTER]JOIN实现右外部连接查询

SELECT [Grade].c_id,[Grade].s_id,c_grade
FROM [Student] RIGHT OUTER JOIN [Grade]
ON [Student].s_id = [Grade].s_id


        (4).使用FULL[OUTER]JOIN实现全外部连接查询


        (5).使用CROSS JOIN实现交叉连接查询

     

感觉是有问题的,帮忙看一看哪里不对

猜你喜欢

转载自blog.csdn.net/wtyicy/article/details/79638154