SQL Server 基础

1. select  查询的列,对列的限制;where 过滤行,对行的限制;group by 集合运算,如取平均数;having 对集合运算取值的限制,如均值要大于30;order by 对排序规则的限制(默认递增)

2. F5执行,效果等同于execute

3. select Top 100 from 表; 查出前100行的数据  

4. order by;   select id,name,price from Product order by name desc,price; 先按照name递减排序,然后在相同的name中按照price递增排序

             select id,name,price from Product order by 2;  按照第二列(即name列)递增排序

5. isnull函数:判断某一数据是否为空;

    select id, name, isnull(price ,' ') from Product order by name desc,price;  为了不困扰用户,如果price的值为null,则查询出来的值会表示为空

6. as关键字:给表列起别名:

  select id, name, isnull(price ,' ')  as price123 from Product order by name desc,price;  经过isnull(price ,' ')操作,查出的原price列没有列名,这时候给该列起个别名price123

7. + 关键字:将“列”与“字符串”连接起来:

  select id, name,  price, name + ‘产品的价格为’ + convert(varchar,price)from Product order by name desc,price; convert(varchar,price)数据类型转换,将钱类型的price转为varchar类型以方便字符串拼接           

8. 算数表达式:+ - * /        

  select id, name, rate as '每小时工资', round(rate*40*52,1) as ‘年薪’, round(rate*40*52,0) as ‘年薪’ from Employee;  round(rate*40*52,1)小数点后四舍五入保留1位,round(rate*40*52,0)四舍五入不要小数位

  select id, name, rate as '每小时工资', (rate+5)*40*52 as ‘年薪’ from Employee;  (rate+5)*40*52改变运算优先级

9. between A and B

  既包含A,又包含B

10. 通配符:

  like "%"或“_”  "_"单项匹配 ,“%”多项匹配

11. where语句中使用 in  或  not in

  select * from product where size in ('1','3','4') 尺寸为1,3,4中的一种,not in 不为括号中的任意一种

12. where语句中使用 is null或is not null    

  select * from product where size is not null  查出size不为空的

13. and or  

14. 聚合函数:count(),distinct(),max(),min(),avg(),sum()

  select count(SalesID) from Sales where SalesID is not null  

  select count(distinct(SalesID)) from Sales where SalesID is not null   去除重复值后计数

  select avg(TotalDue),max(TotalDue),min(TotalDue),sum(TotalDue) from Sales.SalesOrder

15. select SalesID,max(TotalDue) from Sales.SalesOrder where SalesID is not null group by SalesID 当SalesID,max(TotalDue)一起查询,这时候一定要有group by,且所有像SalesID这种普通列的一定要跟在group by后面(*************为什么**************) 如这样写是会报错的 select SalesID,max(TotalDue) from Sales.SalesOrder        

  select SalesID,max(TotalDue) from Sales.SalesOrder where SalesID is not null group by SalesID having max(TotalDue)>5000 order by SalesID having专门对max(TotalDue)>5000条件进行限制,后面不能跟诸如SalesID这样的普通列。    

  select SalesID,OrderDatae,max(TotalDue)

  from Sales.SalesOrder 

  where SalesID is not null and OrderDate >'2017-7-6'            --对普通列进行限制

  group by SalesID,OrderDatae              --如果select中既有普通列又有一些函数的特殊列,这时候普通列都要放这儿

 

  having max(TotalDue)>5000                 --针对一些特殊函数列的限制

  order by SalesID      

    

  

  

  

  

    

      

posted @ 2017-07-04 11:42  辉泰狼  阅读(208)  评论(0)    收藏  举报