黑马程序员—数据库函数

---------------------- <a href="http://edu.csdn.net/heima/" target="blank">Windows Phone 7手机开发</a>、<a href="http://edu.csdn.net/heima/" target="blank">.Net培训</a>、期待与您交流! ----------------------
数据库函数:
1)数字函数:
ABS():求绝对值。

CEILING():舍入到最大整数。3.33被舍入为4、2.89舍入为3

FLOOR():舍入到最小整数。3.33被舍入为3, 2.89舍入为2

ROUND():四舍五入


2)字符串函数
LEN():计算字符串长度

LOWER()、UPPER():转小写、转大写

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

RTRIM():字符串右侧的的空格去掉

LTRIM(RTRIM()):去掉左右两边的空格


substring(string, start-position,length )
参数string为主字符串,start-position为子字符串在主主字符串中的起始位置,length为子字符串的最大长度
select  substring ('abcdef111',2,3)执行结果为bcd

GETDATE():取得当前日期时间

dateadd(datepart,number,date),计算增加以后的日期。参数date为带计算的日期;
参数date为增量;datepart为计量单位,可选值见备注

DATEADD(DAY,3,date)为计算日期date的3天后的日期

DATEADD(MONTH,-8,DATE)为计算日期date的8个月之前的日期

datediff(datepart,startdate,enddate):计算两个日期之间的差额。

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

select  datepart(year,getdate())取出今年的日期


3)类型转换函数:
CAST(expression  AS data-type)
data-type数据类型 ,expression表达式  

CONVERT(data-type,express)

select  cast('123'  as  int),  cast('2008-08-08'  as  datetime)

select  convert (datetime,'2008-08-08'),  convert(varchar(50),123)


4)空值处理函数
ISNULL(express,value)
如果expression不为空则返回expression,否则返回value。
SELECT  ISNULL(FName,'佚名')as 姓名  FROM  T_Employee

5)CASE函数用法(单值判断,于switch  case相似)
语法:CASE  expression
          WHEN  value1   THEN  return  value
          WHEN  value2   THEN  return  value
          WHEN  value3   THEN  return  value
           ELSE   default  return  value
           END

例子:
SELECT  FName
  (CASE  FLevel
    WHEN  1  THEN  'VIP用户'
    WHEN  2  THEN  '高级用户'
    WHEN  3  THEN  '普通用户'
    ELSE'客户类型错误'
    END)  as  FLevelName  FROM  T_Customer  

练习:
有一张表T_Scores,记录比赛成绩
Date                 Name       Score
2008-8-8           拜仁           胜
2008-8-9           奇才           胜
2008-8-9           湖人           胜
2008-8-10         拜仁           负
2008-8-8           拜仁           负
2008-8-12         奇才           胜

要求输出下面的格式:
Name      胜         负
拜仁         1         2
拜仁         1         0
拜仁         2         0


select  Name,
sum(
case  Score
when  N'胜'  then  1
else  0
end
)as  胜,

sum(
case  Score
when  N'负'  then  1
else  0
end
)as  负
from  T_Scores

group by  Name


索引index:
全表扫描:读数据进行检索(select)效率最差的是全表扫描,就是一条条的找。

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

使用索引能提高查询效率,但是索引也是占据空间的,而且添加、更新、删除数据的时候也需要同步更新索引,因此会降低insert 、update 、delete的速度。只在经常检索的字段上创建索引。



---------------------- <a href="http://edu.csdn.net/heima/" target="blank">Windows Phone 7手机开发</a>、<a href="http://edu.csdn.net/heima/" target="blank">.Net培训</a>、期待与您交流! ----------------------


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值