北京视频网站建设,wp商城,网站建设客户常见问题集锦,app用什么开发软件好若一个查询同时涉及到两个或者两个以上的表#xff0c;则称之为连接查询。常见的包括#xff1a;等值连接查询#xff0c;自然连接查询#xff0c;非等值连接查询#xff0c;自身连接查询#xff0c;外连接查询#xff08;左右连接#xff09;。 1.等值与非等值连接查询…若一个查询同时涉及到两个或者两个以上的表则称之为连接查询。常见的包括等值连接查询自然连接查询非等值连接查询自身连接查询外连接查询左右连接。 1.等值与非等值连接查询内连接。 等值连接的图 参考表数据库表 表1与表2做了外键关联 等值连接概念当连接运算符为时为等值连接相当于两表执行笛卡尔后取两表连结列值相等的记录。 查询语句 SELECT A.*, B.*FROM student A INNER JOIN sc BON A.snoB.sno; 另外一种写法 SELECT student.* ,sc.*FROM student , sc WHERE student.sno sc.sno; 两种写法除了语法上的差别没有明显差距主要方便了解。看了大多数博客上写的都是第一次可能有一定优劣有兴趣的可以自己去百度下。 查询结果都是一样 非等值连接概念连接规则由等号以外的运算符组成。,,,,,,,!,between等。 这里只使用大于号比较两个表的连接列的值相当于两表执行笛卡尔后取一个表大于另一个表的连结列值的记录。这两个表查询的结果并没有太大的意义只是为了方便理解概念 查询语句 SELECT A.*, B.*FROM student A INNER JOIN sc BON A.snoB.sno; 另外一种写法 SELECT student.* ,sc.*FROM student , sc WHERE student.sno sc.sno; 查询的结果仍然一样 自然连接在等值连接中把重复的属性列去掉则为自然连接。自然连接并不是自连接两者要有一定区分度 查询语句仍然是两种写法不过我懒的copy了 -_- SELECT student.* ,sc.cno,sc.gradeFROM student , sc WHERE student.sno sc.sno; 查询结果 2.外连接左右连接 左连接概念指将左表的所有记录与右表符合条件的记录返回的结果除内连接的结果还有左表不符合条件的记录并在右表相应列中填NULL。 查询语句 SELECT student.*,sc.cno,sc.gradeFROM student LEFT JOIN sc ON student.snosc.sno; 右外连接指将右表的所有记录与左表符合条件的记录返回的结果除内连接的结果还有右表不符合条件的记录并在左表相应列中填NULL。画图功底太low就不多此一举了 -_- 查询语句 SELECT student.*,sc.cno,sc.gradeFROM student RIGHT JOIN sc ON student.snosc.sno; 这里要提示一下 on和where条件的区别如下 1、 on条件是在生成临时表时使用的条件它不管on中的条件是否为真都会返回左边表中的记录。 2、where条件是在临时表生成好后再对临时表进行过滤的条件。 而inner jion内连接没这个特殊性则条件放在on中和where中返回的结果集是相同的。 3.自身连接自连接 自身连接概述连接操作不仅可以在两个表之间进行也可以是一个表与其自己进行连接成为表的自身连接也就是所谓的自连接。 自连接查询其实等同于连接查询需要两张表只不过它的左表父表和右表子表都是自己。做自连接查询的时候是自己和自己连接分别给父表和子表取两个不同的别名然后附上连接条件。 这里以一个课程的数据库表来做实例。 查询语句 SELECT a.*,b.nameFROM SUBJECT a , SUBJECT bWHERE a.pnob.cno; 查询结果 有些课程没有先行课因此我们可以用左关联结合自连接来查询便于观察。 查询语句 SELECT a.*,b.nameFROM SUBJECT a LEFT JOIN SUBJECT bON a.pnob.cno; 查询结果 转载于:https://www.cnblogs.com/ITSeed/p/11167226.html