MySQL学习笔记

⑤1)查询和score表中最高分一样的学生信息【嵌套查询

select Stu_no from score where score=(select max(score) from score);

2)查询和score表中最高分一样的学生学号和学生姓名【嵌套查询:一个查询的条件来自于另一个查询的结果时可以使用嵌套查询】

select student.Stu_no,student.Stu_name from score join student on score.Stu_no=student.Stu_no where score=(select max(score) from score);

3)查询和1801010101选了同样课程的学生信息

select student.Stu_no,Stu_name from score join student on score.Stu_no=student.Stu_no where Course_no in(select Course_no from score where Stu_no='1801010101');【多个条件用in,仅一个条件用=】

问:两个标蓝的语句中,为什么第一个加了表student的名字,而第二个没有加?

因为这个语句是一个自然连接,由于stu.no是两个的关键字,关联了两张表,因此在两张表中存在stu.no,因此需要在此处标明是哪张表里的stu.no;

4、any表示大于一组值中任意一个值:>any(1,2,3)——大于1;

5、all表示大于一组值中每个值:>all(1,2,3)——大于3;

6、

1)#查询和朱凡在同一个班的其他同学并且是男生的信息

select * from  student where Stu_sex='男' and Class_no=(select Class_no from student where Stu_name='朱凡' );

2)#查询和朱凡在同一个班的其他同学的信息

select * from  student where Class_no=(select Class_no from student where Stu_name='朱凡' );

3)#查询和朱凡在同一个班的其他同学并且是男生的信息

select * from  student where Stu_sex='男' and Class_no=(select Class_no from student where Stu_name='朱凡' ) and Stu_name!='朱凡';【也可以写为”<>”,均表示为不等于】

你可能感兴趣的:(mysql,学习,linq)