SQL数据库第三章学习内容(内连接,左、右连接,非、等值查询,自连接)

学习内容:
1.内连接                         INNER JOIN    ON
2.左右连接                        left join ON    right join ON
3.非等值查询                    
4.等值查询
5.自连接

一.内连接

内连接所查询的是表之间的交集,就是共有的数据

语法        INNER JOIN    ON

例:

SELECT gradeName,subjectName FROM grade g INNER JOIN `subject` s ON g.GradeID=s.GradeID;



二.左,右连接

即时副表没有匹配,也会从返回主表中所有的行,返回没有匹配的值为Null

语法        left join ON   或则  right join ON

例:

SELECT gradeName,subjectName FROM grade g RIGHT JOIN `subject` s ON g.GradeID=s.GradeID;



SQL数据库第三章学习内容(内连接,左、右连接,非、等值查询,自连接)




三.非等值查询


不等的数据都会查询出来,用处不大,基本等于全局查询


例:
SELECT gradeName,subjectName FROM grade,`subject`;




四.等值查询

通过加入where判断两个表的属性是否相等来进行查询

例:
SELECT g.GradeID,gradeName,subjectName FROM grade g,`subject` s WHERE s.GradeID=g.GradeID;



五.自连接

一个表进行拆分查询

例:
CREATE TABLE IF NOT EXISTS category(
categoryid INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
pid INT(10) NOT NULL,
categoryName VARCHAR(32) NOT NULL,
PRIMARY KEY(categoryid)
);


INSERT INTO category VALUES(2,1,"美术设计"),(3,1,"软件开发"),(4,3,"数据库基础"),(5,2,"photoshop基础"),(6,2,"色彩搭配学"),(7,3,"PHP基础"),(8,3,"一起学java");




SELECT c.categoryName AS "父栏目",c1.categoryName AS "子栏目" FROM category c1,category c WHERE c1.pid=c.categoryid;