【知了堂学习笔记】SQL查询总结(2)

来源:互联网 发布:linux 内核经典代码 编辑:程序博客网 时间:2024/06/06 05:51

继续上篇博客没总结完的

3.4 外连接

3.4.1 左外链接

左表数据全部显示,如何能连接上就显示连上的数据,如果连接不上,则为空
select 字段 from 表名A left outer join 表名B on A.Aid = B.AID; 指返回A和B表的所有都拥有的记录,加上A剩下的所有记录

3.4.2  右连接

右表数据全部显示,如何能连接上就显示连上的数据,如果连接不上,则为空
select 字段 from 表名A right outer join 表名B on A.Aid = B.AID; 指返回A和B表的所有都拥有的记录,加上B剩下的所有记录

3.5 交叉连接

交叉连接不带WHERE子句
select * from 表A cross join 表B
它返回被连接的两个表所有数据行的笛卡尔积,返回结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。
带where的连接
select * from 表A  cross join 表B where A. AID= B.AID 返回AB两个表的所有记录

4.子查询

4.1 子查询当作表使用

select * from A,(select * from A where .....) where ...... 先查询子查询中的记录查询出来后会返回一个表将此表当作外层查询的表使用

4.2 子查询当作条件使用

select * from A where (select AVG(工资) from A where)>500 返回A表中平均工资大于500的所用员工

4.3 子查询当作数据使用

select id,(select name from B where...) from A WHERE...先查询出B表的数据当做数据后在A表中查询的数据一起输出


5.case when

select case
 when 成绩<60 when '不及格'
 when 成绩>=60 when '及格' from A 查询A表中的成绩字段,小于60分显示不及格,大于60分显示及格

select case 成绩
when 70 when 良
when 80 when 优 from A 查询成绩字段 70分显示良,80分显示优

6.IF

select if(成绩>60,'及格',‘不及格’) from A 查询 A表中的成绩,如果大于60显示为优秀,小于60 显示为不及格



原创粉丝点击