SQL语句多表连接查询语法
⼀、外连接netstat ntpl
1.左连接 left join 或 left outer join
SQL语句:select * from student left join score on student.Num=score.Stu_id;
2.右连接 right join 或 right outer join
SQL语句:select * from student right join score on student.Num=score.Stu_id;
3.完全外连接 full join 或 full outer join
SQL语句:select * from student full join score on student.Num=score.Stu_id;
通过上⾯这三种⽅法就可以把不同的表连接到⼀起,变成⼀张⼤表,之后的查询操作就简单⼀些了。
⽽对于select * from student,score;则尽量不使⽤此语句,产⽣的结果过于繁琐。
⼆、内连接
mysql定时备份数据库join 或 inner join
SQL语句:select * from student inner join score on student.Num=score.Stu_id;
此时的语句就相当于:select * from student,score where student.ID=course.ID;
三、交叉连接
mysql面试题sql语句多表联查cross join,没有where指定查询条件的⼦句的交叉联接将产⽣两表的笛卡尔积。
SQL语句:select * from student cross join score;
四、结构不同的表连接
当两表为多对多关系的时候,我们需要建⽴⼀个中间表student_score,中间表⾄少要有两表的主键。
SQL语句:select s.Name,C.Cname from student_score as sc left join student as s on s.Sno=sc.Sno left join score as c on c.Cno=sc.Cno select C_name,grade from student left join score on student.Num=score.Stu_id where name='李五⼀';
红⾊部分即中间表,是集合两表所有内容的⼀张总表。
五、UNION操作符⽤于合并两个或多个select语句的结果集。
shellshock免费下载UNION内部的SELECT语句必须拥有相同数量的列,每个列也必须拥有相似的数据类型,每条SELECT语句中的列的顺序必须相同。select Num from student union select Stu_id from score;
union操作符是默认查重的,如果允许重复的值,就可以使⽤union all 。对于两张结构相同的表,union也可以把他们合并成⼀张表:select*from student1 union select*from student2;
六、⼦查询
有时候,查询时需要的条件是另外⼀个select语句的结果,就会使⽤到⼦查询。
1.带IN关键字的⼦查询
SQL语句:select * from student where Num IN(select Stu_id from score);
excel取整函数2.带EXISTS关键字的⼦查询
exists内查询返回⼀个真价值,若返回true时,外查询进⾏查询,否则外查询不进⾏查询。
SQL语句:select * from student where exists(select * from score where C_name='计算机');
3.带ANY关键字的⼦查询
使⽤ANY关键字只要有⼀个满⾜,就通过该条件来执⾏外查询。
SQL语句:select sname,(date_format(from_days(now())-to_days(birthday)),'%Y')+0) as '年龄' from student where birthday>ANY(select birthday from student where bumen='计算机系');
4.带ALL关键字的⼦查询
使⽤ALL关键字必须满⾜所有的内层查询语句返回的所有结果,才执⾏外查询
SQL语句:select sname,(date_format(from_days(now())-to_days(birthday)),'%Y')+0) as '年龄' from student where birthday>ALL(select birthday from student where bumen='计算机系');
暂时学了这么多内容,以后有更好的⽅式再来补充。
force1是不是空军一号
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论