黑马程序员--.Net学习日记——数据库(2)

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

 

黑马程序员--.Net学习日记——数据库(2) 

 

Having语句:

     1.where中不能使用聚合函数,必须使用Having,Having要位于Group By之后,select Fage,COUNT(*) as 人数from T_Person.

     2.注意:Having中不能使用未参数分组的列,Having不能替代where.作用不一样,Having是对组进行过滤.

 

限制结果集行数:

     1.select top 5 * from T_Person order by FSalary Desc

     2.检索按照工资从高到低排序检索从第六名开始一共三个人的信息:select top 3 * from T_Person where Fnumber not in(select top 5 Fnumber from T_Person order by FSalary DESC) order by FSalary DESC

 

去掉数据重复

     1.distinct是对整个结果集进行数据重复处理的,而不是针对每一个列.

 

联合结果集:

     1.简单的结果集联合:select FNumber,FName,FAge from T_Person UNION select FIdCardNUmber,Fname,Fage from T_Temp

     2.基本原则:每个结果集必须有相同的列数;每个结果集的列必须类型相容

     3.union合并两个查询结果集,并且将其中完全重复的数据行合并为一条,union因为要进行重复值扫描,所以效率低,因此如果不是确定要合并重复行,那么就用 union all.

 

数字函数:

     1.ABS():求绝对值.

     2.CEILING():舍入到最大整数.3.33将被舍入为4,2.89将被舍入到3,-3.61将被舍入为-3.

     3.FLOOR():舍入到最小整数.3.33将被舍入为3,2.89将被舍入到2,-3.61将被舍入为-4.

     4.ROUND():四舍五入

 

字符串函数:

     1.LEN():计算字符串长度.

     2.LOWER(),UPPER():转小写,大写

     3.LTRIM():字符串左侧的空格去掉

     4.RTRIM();字符串右侧的空格去掉

     5.substring(string,start_position,length)参数string为主字符串,start_position为子字符串在主字符串中的起始位置,length为子字符串的最大长度

 

日期函数

     1.GETDATE();取得当前日期时间

     2.DATEADD(datepart,number,date),计算增加以后的日期.参数date为待计算的日期参数date为待计算的日期.参数number为增量;参数datepart为计量单位.dateadd(day,3,date)为计算日期date的三天后的日期,dateadd(month,-8,date)为计算date的八个月之前的日期.

     3.datediff(datepart,startdate,enddate):计算两个日期之间的差额.datepart为计量单位,可取值参考dateadd.

     4.datepart(datepart,date):返回一个日期的特定部分.

 

类型转换函数

     1.cast(expression as data_type)

     2.convert(data_type,expression)

     3.select FIdNumber

     4.right(FIdNumber,3)as后三位

     5.cast(right(FIdNumber,3)as integer)as 后三位的整数形式

     6.cast(right(FIdNumber,3)as integer)+1 as后三位加1

     7.convert(integer,right(FIdNumber,3))/2 as 后三位除以2

 

case函数用法:

     单值判断,相当于switch case

        case expressin

        when value1 then returnvalue1

        when value2 then returnvalue2

        when value3 then returnvalue3

        else defaultreturnvalue

 

索引(Index):

     1.全表扫描:对数据进行检索(select)效率最差的是全表扫描,就是一条一条的找.

     2.如果没有目录,查汉语字典就要一页页的翻,而有了目录只要查询目录就可以了.为了提高检索的速度,可以为经常进行检索的列添加索引,相当于创建目录.

     3.创建索引的方式,在表设计器中点击右键,选择"索引/"→添加→在列中选择索引包含的列.

     4.使用索引提高查询效率,但是索引也使占据空间的,而且添加,更新,删除数据的时候也需要同步更新索引,因此会降低Insert,Update,Delete的速度.只要经常检索的字段上(where)创建索引.

     5.即使创建了索引,仍然有可能全盘扫描,比如like,函数,类型转换等

 

子查询:

     1.将一个查询语句作为一个结果集供其他SQL语句使用,就像使用普通的表一样,被当作结果集的查询语句被成为子查询.所有可以使用表的地方几乎都可以使用子查询来代替.select * from (select * from T2 where FAge<30)

 

 

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

详细请查看:http://net.itheima.com/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值