黑马程序员--ado.net学习整理

---------------------- Windows Phone 7手机开发 .Net培训、期待与您交流! ----------------------

                                              在学习ado.net时,这些事我们还真得记住!

在使用group by分组时我们应该注意一下事情:

                           select  age,count(*)   from Employee   group by age //按照年龄进行分组

                    当我们想要检索出分组年龄大于2个时,

                     select  age,count(*)   from Employee  wherecount(*)>2   group by age      // 这是一种错误写法,我们会发现聚合函数不能                  出现在where子句中

                    我们应该使用having检索出分组年龄大于2个时

                     select  age,count(*)   from Employee   group by agehaving count(*)>2   // having 是对分组的信息进行过滤,能用的列和                        select中的中能用的列是一样的。

                    havingwhere不能说谁能代替谁,where是对原始的数据进行检索,having是对分组后的数据进行检索。

在使用order  by分组时我们学会两个函数

                     升序排列
                      select  * from Employee  ordey by  salary asc (升序排列);  //注意:如果不写asc,默认就是asc
                             降序排列
                              select  * from Employee  ordey by  salary desc(降序排列) 

                      order by 可运用于歌曲排行榜的排名,以及热门文章的推荐等方面都是很实用的

                      例如我想要检索出歌曲排行榜的前10首好听的歌曲。

                      select  top 10  from  Music order by hotCount 

在使用distinct检索出无重复行的时候,我们必须要注意它是争对行来的,也许我们查询出来的列中有很对相同的值。

 

union可以将表多个查询的结果合并在一起,多个表可以不存在关系

例如:select  name,age  from  emplyeeA    union   select  name,age  from  emplyeeB, 注意这连个表查询的列数和数据类型要是一样的。但是不要求列名都是一样。

例如: select  name,age,0   from  emplyeeA    union   select  name,age,salary   from  emplyeeB

注意:union会把重复的数据distinct掉,只保留一个。这个时候我们可以使用union all来阻止默认的合并重复行的操作。

例如: select  name,age,0   from  emplyeeA    union all  select  name,age,salary   from  emplyeeB

union可用在报表查询的时候会很有用。

select name max(salary)  fromA   Uion all   select name max(salary)  from  A   Uion  all    select name max(salary)  from  A   Uion  all select name max(salary)  from  A

 

ado.net的数字函数,主要有ABS()、Celling()、Floor()、Roun()

              1.ABS()主要是用来取绝对值的函数,用法例如:  ABS(-3)     结果:3

              2.Celling()是天花板函数,舍入道最大整数。用法例如: 3.33将舍入到4     2.88将舍入到3      -2.33将舍入到-2

              3.Floor()是数舍入到最小整数,刚好和Celling函数相反。用法例如: 3.33将舍入到3     2.88将舍入到2      -2.33将舍入到-3

              4.Round四舍五入。舍入"到离我半径最小的整数"。Round---->“半径”。Round(3.33123,2)  结果:3.33000

 

ado.net的字符串函数,主要有Len、Lower、Upper、Trim、Substring

              1.Len计算字符串的长度

               2.Lower、Upper,把字符串转换成小写、大写。

              3.Trim,清空空格。LTrim是清空左边空格;RTrim是清空右边的空格。要想清空左右两边的空格可以这样:

               Len(LTrim(RTrim('  bb  ')))       结果:2

              4.Substring(string,start_position,length)截取字符串的长度。第一个参数是要截取的主字符串,第二个参数start_position

               为开始截取的位置,第三个参数是要截取的长度。例如:Substring('liwei12345',0,5)     结果为:liwei 

---------------------- Windows Phone 7手机开发 .Net培训、期待与您交流! ----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值