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 大于子查询返回的结果中任意一个值

posted @ 2019-10-22 20:18  cielpupu  阅读(181)  评论(0编辑  收藏  举报