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


--6、一个小知识点:查询刚刚插入记录的Id
  insert into table output inserted.id values(,,)
  C#:object obj=cmd.ExecuteScalar()
  --这里ExecuteScalar()返回Id,而使用ExecuteNoQuery()返回受影响的行数

--7、查看和删除约束
  
exec sp_helpconstraint 'mainTableName' --查看
alter table mainTableName drop constraint constName --删除
 

转载于:https://www.cnblogs.com/wyy1234/p/9047125.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值