SQL学习笔记(三)
左连接
格式:select * from 表1 left join 表2 on 表1.列=表2.列
例1:查询所有学生的成绩,包括没有成绩的学生。
例2:查询所有学生的成绩,包括没有成绩的学生,需要显示课程名。
join前面生成的表是左表,join后面是右表
右连接
格式:select * from 表1 right join 表2 on表1.列=表2.列
例1:查询所有课程的成绩,包括没有成绩的课程
join后面是右表,把右表数据全部显示
例2:查询所有课程的成绩,包括没有成绩的课程,包括学生信息
例2:查询所有学生的成绩,包括没有成绩的学生,需要显示课程名。
总结
inner join
自关联

aid:地区名ID
pid:上级ID
atitle:地区名字
例1:查询河北省的所有城市
用这种做法每次需要拷贝一个表
数据源,从一个表中查询多次,必须起别名

添加区县
例2:查询郑州市的所有区县
同样的,关联表

例3:查询河南省的所有区县

子查询
在一个select语句中,嵌入了另外一个select语句,那么被嵌入的select语句称之为子查询语句
例1:查询大于平均年龄的学生
标量子查询:子查询返回的结果是一个值(一行一列)
例2:查询最小年龄的人。

例3:查询王昭君的成绩,要求显示成绩

例4:查询王昭君数据库成绩,要求显示成绩

列级子查询:返回的结果是一列(一列多行)
返回的结果是多个值,一列多行,条件where后面跟的是“in” ,where后面都是作为条件来运用
例5:查询18岁的学生的成绩,要求显示成绩

行子查询
子查询返回的结果是一行多列,比较少用,where后面都是作为条件来运用
例6:查询男生中年龄最大的学生信息

表级子查询
子查询返回的结果是一个表,多行多列。
例7:查询数据库和系统测试的课程成绩


子查询中特定关键字使用
例:1.查询18岁到20岁的学生的学生信息
any和some 一样的作用
any 对于 >some 大于子查询返回的结果中任意一个值














浙公网安备 33010602011771号