这是我自己整理的PP哌囿亡噱T文档,复制出来分享给大家吧。
都是一些SQL Server的概念题
目前还正在学习中,等我学的差不多的时候,会分享更多茹霭庖褙资料。
针对菜菜,大神绕道,写的不好,切勿嘲笑。
1.case函数的使用
a)case函数做等值判断
i.case后面接了相应的表达式或者字段
ii.then后面的类型必须一致
iii.它不能做null值判断
b)case函数判断范围
i.case后面没有相应的表达式或者字段
ii.then后面的数据类型需要一致,但是when后面的表达式并不要求是同一个字段
iii.它可以做null值的判断
2.子查询
a)什么是子查询
i.一个查询中包含了另外一个查询,被包含的就是子查询,包含的就是父查询
b)子查询的分类
i.相关子查询
1.子查询中使用到了父查询中的字段
ii.独立子查询
1.它就是一个完整的独立可以运行的查询
c)子查询返回多个结果时使用的关键字—条件
i.如果子查询返回多行一列,那么就可以使用in关键字
ii.但是如果做为条件的时候返回一行多列,那么报错
d)子查询的几种使用方式
i.做为条件
1.做为条件时对子查询的要求:
a)如果按在关系运算符后(> >= < <= = <> !=),要保证只返回一个值
b)如果返回了多个值(多行一列),那么可以使用关键字in
2.使用=进行判断
a)单个返回值
b)类型一致
3.使用in进行判断
ii.子查询做为结果集
1.什么样的子查询可以做为结果集
a)使用select
2.子查询做结果集需要给别名
3.实现分页
a)Top
b)Row_number()over(order by排序字段)
iii.如何更快速的写子查询
1.先写出查询框架,再填空
3.表连接
a)为什么需要表连接
i.因为根据数据库设计原则很难将所有字段创建在一个表中
ii.所以需要获取数据的时候有可能需要从多个表中去获取
iii.这就是多表查询—实现表连接就是为了实现多表查询
b)使用where实现多表查询
i.From可以从多个表中取值
ii.使用from。。where的方式一定要记得写where中的连接条件
c)内连接
i.表Inner join…表.on连接条件
ii.可以获取建立关联字段值相等的记录
d)左连接
i.写在关键字前面的就是左表,写在后面的就是右表
ii.表left join…表.on连接条件
iii.在查询的时候以左表的记录做为参考,得到左表的所有记录,如果建立关联的字段在右表中没有记录,那么右表的字段值就会以null值替代
e)右连接
i.写在关键字前面的就是左表,写在后面的就是右表
ii.表right join…表.on连接条件
iii.在查询的时候以右表的记录做为参考,得到右表的所有记录,如果建立关联的字段在左表中没有记录,那么左表的字段值就会以null值替代
f)交叉连接
i.得到两个表乘积条记录:从一个表取出一条记录与另外表的每一条记录关联