SqlServer中的查询简单总结

Posted wyy1234

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SqlServer中的查询简单总结相关的知识,希望对你有一定的参考价值。

一、sql语句的执行顺序

  查询时数据库中使用最多的操作,一条sql语句的查询顺序是

    1、from Tb1 [ join on ]   得到查询的数据源

    2、where         对数据过滤(单条数据上过滤)

    3、group by                    对数据分组

    4、having        筛选分组(在组别上进行过滤)

    5、select distinct     获取结果集

    6、order by      对结果集排序

二、常用的查询知识

直接上代码

--1、空值查询
    
    --例子:  查询age(或者不为)为null的用户
    select * from Tb_UserInfo where Age is null
    select * from Tb_UserInfo where Age is not null
    
--2、条件查询 
    --注:where用于单条记录筛选 
    --例子:  查询年龄为21~23的用户
    select * from Tb_UserInfo where Age>=21 and Age<=23
    select * from Tb_UserInfo where Age in(21,22,23)
    select * from Tb_UserInfo where Age between 21 and 23

--3、聚合函数和分组  
    --注:这两个应一起使用,单独使用时没有太大意义,没有显式地用group by分组时,所有数据为一组
    --常用的聚合函数 count avg min max sum ;having 对分组进行筛选
    
    --例子:  查询使用角色的人数,且筛选角色的人数大于3的组
    select 
        roleid as 角色编号,
        COUNT(*) as 人数 
        from 
    Tb_UserInfo 
    group by roleid
    having COUNT(*)>3
    
    --查询每种角色的人数和每种角色用户的平均年龄
    select 
        roleid as 角色编号, 
        COUNT(*) as 人数 ,
        AVG(age) as 平均年龄 
    from Tb_UserInfo 
    group by roleid


--4、模糊查询 
    --注: -表示单个字符; %表示任意个字符; [abc]表示是a/b/c; ^a表示不是a的字符 
    
    --例子:  查询用户名包含a的用户
    select * from Tb_UserInfo where username like %a%
    select * from Tb_UserInfo where UserName like _a%--username的第二个字符为a的用户


--5、distinct、top和 order by 
    --注:top和order by是一起使用的,先有排序才能有‘前几条’记录
    
    --例子:  查询不重复的用户中的前3条记录,按用户id排序 
    select distinct top 3  * from Tb_UserInfo  order by uid

 

以上是关于SqlServer中的查询简单总结的主要内容,如果未能解决你的问题,请参考以下文章

缺少 SQL SERVER 2014 代码片段

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

SQLSERVER中的系统存储过程的使用的总结

sqlserver-处理死锁

SQLServer中的交叉查询

查看发票组代码后的总结和有感