三级数据库(6)-高级数据查询

1.范围划分明显有利于范围查询和点查询,s包含数据比较少,适合对s采用复制的方法.

2.GroundBy子句的作用是将查询的结果按照指定的字段进行分组.

3.实现查询结果差运算的运算符是EXCEPT.

4.SQLSever2008提供了4个排名函数,其中RANK函数返回结果集中每行数据在每个分区的排名,并且排名从1开始,中间数值可能间断.DENSE_RANK函数与RANK的唯一区别是:中间数值不可间断.

5.公用表达式:语句以WITH 名字(列1…列n)AS(select语句)

6.Select count(distinct A)over (partition by B) from C

Over还出现在开窗函数(必须放在over子句前)里.

优先级: from > where > group by > having > order by                 分组函数group by 分析函数 partition by 聚合函数sum()

7.若where条件判断用户不在某个集合当中,一般使用not in子句.而当要查询表中是否存在一条特定的记录时,在SQL语句中被称为存在性测试.用exists

8.现要统计T1表中C1列取值不同的值的个数.查询语句为:select count(distinct c1) from t1;

Count(*)统计的是元组的个数,包括空,而count(列名)统计的是值的个数,不包括null行.

9.将查询结果保存到新表(即还不存在)newtable中的语句是:select 列1,列2

Into newtable from 表1;

10.SQLSever2008支持三种用户自定义函数:标量函数,内嵌表值函数和多语句表值函数.标量函数可以出现在select语句目标中,其他两个必须放在select语句的from子句中.

11.区分sum和count的区别:count()函数用于统计元组的个数或者某个字段中值的个数,而sum()则用来计算某个字段值的总和.

12.Top 3 with ties(包括最后一行取值并列的结果)

13.Case语句按简单语法原则.即能少些就少写.能够实现分情况显示不同类型数据的函数就是case函数.

14.Where子句判断条件为空:is null

15.Not in和not exists的区别,涉及到多表时(子查询中还有别的表被使用,或者自身表又被使用)用exists

16.Union是合并两个或多个select语句的结果集,且各个结果集必须相同数量列.intersect是指两个集合都存在的数据

17.Select top 3 *,注意*放在top 3后.时间格式数据2018/1/2没有所谓的加#,#2018/1/2#.

18.通配符%可以匹配0到多个字符,下划线_可以匹配任意一个字符.

19.获取前n%行的数据,需要使用Top n percent

20.前后都是%的列查询不会访问索引.

21.外连接,自连接,内连接

你可能感兴趣的:(数据库学习)