设为首页 加入收藏

TOP

T-SQL查询基础(一)
2015-11-21 01:29:49 来源: 作者: 【 】 浏览:0
Tags:T-SQL 查询 基础
使用select语句进行查询
?
1.查询所有的数据行和列
?
select ?* ?from student
2.查询部分行和列
?
select scode,sname,saddress
from * student
where saddress='北京'
3.在查询中使用列的别名
?
select scode as 学生编号,sname as 姓名 ,saddress as 地址
from student
?where saddress<>'北京'
4.查询空值
?
select sname from student
where semail is null
5.在查询中使用常量
?
select 姓名=sname ,地址=saddress,'汉族' as 民族
from student
6.查询返回限制的函数
?
select top 5 sname, saddress
from student?
where Ssex=0
?
?
查询排序
?
如何使用order by
?
如果要按照一定顺序排列查询语句选中的行,则需要使用order by 字句,并且排序可以是升序(asc)可以是降序(desc),
?
eg:   将学生成绩按照升序排列
?
select studentID as 学生编号, CourseID as 课程ID,Score as 成绩
?
from Score?
?
where Score >60
?
order by Score,CourseID
?
?
在查询中使用函数
?
1.字符串函数
?
?
函数名称:
1.CharIndex('str1','str2',index)//位置从开始
? ? --第一个参数:要查询的字符串
? ? --第二个参数:在哪个字符串中搜索
? ? --第三个参数:从str2的第几个字母开始搜索
? ? --注意点:如果在str2中没有找到str1,那么返回
? ? eg:
? ? ? ? SELECT CHARINDEX('JBNS','My Jbns Course') ?
2.len():获取小括号中字符串的长度,空格也算一个字符长度
? ? eg:
? ? ? ? SELECT LEN('SQL Server课程')
3.upper():将括号中出现的英文全部转换成大写
? ? eg:
? ? ? ? select upper('i can speak english.你能吗?')
? ? ? ? select lower('I HAVE A DREAM')
4.LTrim():清除括号中内容左边的空格(left:right)
? ? eg:
? ? ? ? select rtrim(' ? ? ? ? 生活不是林黛玉, ? ? ?')
5.既想移除左边空格,也想移除右边空格
? ? eg:
? ? ? ? select rtrim(ltrim(' ? ? ? ? 生活不是林黛玉, ? ? ?'))
? ? ? ? select ltrim(rtrim(' ? 你还好吧! ? '))
6.思路灵活
? ? eg:
? ? ? ? select len(rtrim('今年奇怪了,北京没下雪,去去去 ? ?'))
7.substring('字符串',截取的位置,截取的长度)
? ? eg:
? ? ? ? select substring('我是中国人,我爱自己伟大的祖国,真的',6,1)
8.right():从字符串(左)右边返回指定类型的字符
? ? eg:
? ? ? ? select left('大家今天好像都没有交日记本,我去',3)
? ? ? ? select right('大家今天好像都没有交日记本,我去',2)
9.replace('str1','要替换的字符','目标字符'):
? ? eg:
? ? ? ? select replace('张海迪,残疾人,虽然手不残疾,但是X残疾','残 ? ? ? ? ? ? ? ?疾','好')
10.stuff('字符串',删除的起始位置,删除的长度,'插入的字符串')
? ? eg:
? ? ? ? select stuff('我爱你中国,我爱你故乡',4,2,'北京')
?
?
?
2.日期函数
?
?
1.getdate():获取当前日期和时间
? ? eg:
? ? ? ? select getdate()
2.dateadd(按年/月/日添加,增量,时间)
? ? eg:
? ? ? ? select dateadd(yy,100,'2014-8-6')
? ? ? ? select dateadd(year,-20,getdate())
3.datediff(按年/月/日求差,小时间,大时间)
? ? eg:
? ? ? ? select datediff(year,'1998-01-01',getdate())
4.datename:获取某个日期是星期几
? ? eg:
? ? ? ? select datename(dw,'2014-08-06')
5.datepart(mm,日期):获取指定日期对应的年/月/日部分 ?
? ? eg:
? ? ? ? select datepart(yy,getdate())
? ? 通过该方式也可以获取当天是周几
? ? eg:
? ? select datepart(dw,getdate())
?
?
?
3.数学函数
?
?
1.rand():产生一个到之间的随机数
? ? eg:
? ? ? ? select right(rand(),4)
2..abs:取绝对值
? ? eg:
? ? ? ? select abs(-10)
? ? ? ? select abs(10)非负数
3.ceiling:天花板,你要看天花板,抬头,向上取整
? ? eg:
? ? ? ? select ceiling(1.999991)
4.floor:向下取整
? ? eg:
? ? ? ? select floor(1.999999)
? ? ? ? select ceiling(1.000000000000001)
? ? ? ? select floor(2.999999999999999)
5.power(5,2)求幂值
? ? eg:
? ? ? ? select power(4,4)
? ? ? ? select 1*2/3+5-56+100-5/100
? ? ? ? select power(2,3)
6.round:将一个数字四舍五入到指定精度
? ? eg:
? ? ? ? select round(42.564,1)
7.sign:如果括号中写的是一个正数,返回,如果是负数,返回-1
? ? eg:
? ? ? ? --如果是返回
? ? ? ? select sign(20)
? ? ? ? select sign(0)
8.sqrt()开平方
? ? eg:
? ? ? ? select sqrt(9)
?
?
?
4.常用的 系统函数
?
convert:(用来转换数据类型)
? ? ? ? eg:
? ? ? ? ? ? select
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇sde用sql实现erase 下一篇我们一起畅谈过的数据库基础

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: