1.exists 子查询:用来判断是否存在,例如
(1)create table if exsits school(....)判断school表是否存在
(2)select * from school where exists(子查询)
子查询有返回结果,exists判断为true,外层父级查询执行。
子查询无返回结果,exists判断为false,外层父级查询不执行 。
2.多表连接查询:
分为三种 内连接 inner join
右外链接 right join
左外链接 left join (1)内连接例子:
select s.student,s.studentName,sr.subject,sr.studentResult from student as s inner join studengResulet as sr on(s.studentNO=sr.studentNO);
语句解释: 从student和studentResult表格查询student等几个字段,设student表别名s 设studengResult表别名为 sr 条件是student表的studentNo和student表的studentNO字段相等
(2)左联例子:
左联查询SELECT S.studentName,R.subjectNo,R.studentResult
FROM student AS S
LEFT JOIN result AS R
ON S.studentNo = R.studentNo;
简单来说 join左侧表对应字段去匹配右侧表字段,S.studentNO第一个匹配右侧R.student,S编号1匹配右侧R表匹配第一个成功没有第二个编号1那么结束,S表编号2匹配R表编号2,匹配到第一条数据,然后匹配到第二条数据,继续匹配数据,匹配不到结束,进行编号3的匹配。
(3)右连查询与左联查询相反
网友评论