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;
不等的数据都会查询出来,用处不大,基本等于全局查询
例:
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;
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;
不等的数据都会查询出来,用处不大,基本等于全局查询
例:
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;