数据库这方面对于程序员来说很重要,无论是对于JAVA程序员还是DOTNET程序员以及其他编程人员来说都是必须掌握的。为了帮助大家更好的来回顾T-SQL!
首先,我们开始回顾一下T-SQL的基本语法:
函数
abs(x):求绝对值;
例: select abs(-3) 值为:3
sqrt(x):求平方根;
例: select sqrt(4) 值为:2.0
rand([0]):返回0~1之间的随机float值;
floor(X):返回小于或等于X值的最大整数;
例: select floor(34.5) 值为:34
ceiling(X):返回大于或等于X值的最小整数;
例: select ceiling(34.5) 值为:35
round(x,length):四舍五入函数,length为正,则对X小数位数四舍五入,length为负,则对X从小数点左边length位起四舍五入,若length既为负数且其绝对值大于X整数部分 数字个数,则函数值为0;
复制代码
例: select ROUND(63.567, 1) 值为:63.600
select ROUND(63.567, -1) 值为:60.000
select ROUND(63.567, 0) 值为:64.000
select ROUND(63.567, -3) 值为:0.000
复制代码
Sign(X):求符号函数,X>0则sign(x)=1; X=0 则sign(X)=0;X<0 则sign(X)=-1
例: select sign(-3) 值为:-1
select sign(3) 值为:1
select sign(0) 值为:0
Power(X,y):求X的y次方;
例: select power(4,2) 值为 :16
字符串函数
ASCII(串):返回字符表达式最左端字符的ASCII 码值;
例: select ASCII('bc') 值为:98
CHAR(ASCII码):用于将ASCII 码转换为字符,如果没有输入0 ~ 255 之间的ASCII 码值,返回值为NULL ;
例: select char(97) 值为:a
Lower(串):把字符串全部转换为小写;
例: select lower('QingPingGuo') 值为: qingpingguo
Upper(串) :把字符串全部转换为大写;
例: select upper('QingPingGuo') 值为: QINGPINGGUO
LTrim(串), RTrim(串):去掉左右空格;
例(去左空格): select '博客园'+LTrim(' 青苹果 ')+'博客园' 值为:博客园青苹果 博客园
space(个数):返回指定个数的空格;
replicate(串,次数):将串重复指定次数;
例: select replicate('青苹果',2) 值为:青苹果青苹果
Left(串, 个数):返回已知串从左边开始指定个数的字符;
例: select left('青苹果在博客园', 4) 值为:青苹果在
Right(串, 个数):返回已知串从右边开始指定个数的字符;
例: select right('青苹果在博客园', 4) 值为:在博客园
DataLength(串):返回串的字节数长度,计算串尾空格。可以用它检查varchar,text等的动态长度;
例: select datalength('青苹果在博客园') 值为:14
SubString(串, 开始位置, 长度):返回从字符串左边’开始位置’起数量为’长度’的字符串。其中表达式可以是字符串或二进制串或含字段名或字符型变量的表达式。在这里要注意一下SUBSTRING()函数不能用于TEXT 和IMAGE 数据类型;
例: select substring('青苹果在博客园',5,2) 值为:博客
Len(串) :返回表达式的长度。注意它返回的是字符数,而不是字节数。不计算串尾空格;
例: select len('青苹果cnblogs ') 值为:10
Replace('串1','串2','串3'):用串3替换串1中出现的所有串2字符;
例: select replace('青苹果在北京','北京','博客园') 值为:青苹果在博客园
Stuff(串1, 开始位置, 长度, 串2):删除串1指定位置开始指定长度的字符串,并在指定位置插入串2;
例: select stuff('青苹果是程序猿吗?',5,3,'攻城狮') 值为:青苹果是攻城狮吗?
reverse(串) :将指定的字符串的字符排列顺序颠倒;
例: select reverse('12345') 值为:54321
charindex(串1,串2):返回串1在串2的开始位置,可从所给出的‘开始位置’进行查找;
例: select charindex('guo','qingpingguo') 值为:9
SELECT CASE LEN(jtzz) - LEN(REPLACE(jtzz, '_', ''))
WHEN 2 THEN REVERSE(SUBSTRING(REVERSE(jtzz), CHARINDEX('_',
REVERSE(jtzz)) + 1, LEN(REVERSE(jtzz)))) WHEN 1 THEN jtzz ELSE jtzz END AS szxz,
COUNT(*) AS nums
FROM XF_lfdjxx
GROUP BY CASE LEN(jtzz) - LEN(REPLACE(jtzz, '_', ''))
WHEN 2 THEN REVERSE(SUBSTRING(REVERSE(jtzz), CHARINDEX('_',
REVERSE(jtzz)) + 1, LEN(REVERSE(jtzz)))) WHEN 1 THEN jtzz ELSE jtzz END
转换函数
所谓转换函数就是把某种数据类型转换的表达式显示转换成另一种数据类型的函数。
CAST(表达式 AS 数据类型[(长度)])
例: select '今天是:' + Cast(GetDate() as char(10)) 值为:今天是:07 23 2012
CONVERT(转换后的目标数据类型[(length)],表达式[style])
例: select '今天是:' +convert(char(10),getdate()) 值为:今天是:07 23 2012
下面来看一个求差值的函数datediff函数;
DATEDIFF(datepart,date1,date2)
例: select datediff(yy,'1988.09.14','2012.12.21') 值为:24
select datediff(mm,'1988.09.14','2012.12.21') 值为:291
聚合函数
聚合函数也就是统计函数,它主要是对一组值进行计算,它的功能分别是:求和(sum)、求最小(min)、求最大(max)、求总行数(count)、求平均值(avg)
例: 求和:select sum(Name) from TableName
求最小:select min(Name) from TableName
求最大:select max(Name) from TableName
求总数:select count(Name) from TableName
求平均:select avg(Name) from TableName
T-SQL的一些关键字
Print 向客户端返回用户信息
例: print '青苹果' 屏幕上就会显示“青苹果三个字“
Go 用来通知SQL一批语句的结束
Distinct 去掉重复值
Declare 用来声明变量
例: declare @a int
Set 为变量赋值
例: set @a='青苹果'
While 在SQL中用来循环(好像在SQL中用来做循环的关键字不多)
复制代码
语法: WHILE <条件表达式>
BEGIN
<命令行或程序块>
[BREAK]
[CONTINUE]
[命令行或程序块]
END
While比较重要,我们来做个例子加深一下对While循环的理解:
复制代码
declare @a int
set @a=1
while @a<5
begin
print '青苹果'
set @a=@a+1
end
输出结果:青苹果
青苹果
青苹果
青苹果
复制代码
if else 判断语句
判断语句用的还是比较多的我们还是来做个例子说明一下;
求:a、b、c三个数的最大值?
复制代码
declare @a int,@b int,@c int,@max int
set @a=1 set @b=2 set @c=3
if @a>@b
set @max=@a
else
set @max=@b
if @max<@c
set @max=@c
print @max
输出结果:3
复制代码
begin end 用来设定一个程序块,将在BEGIN…END内的所有程序视为一个单元执行。
Exists 判断是否存在
Case 也是用来判断的,和IF语句差不多,它的格式为:
CASE <运算式>
WHEN <运算式1> THEN <结果1>
…
WHEN<运算式n> THEN <结果n>
[ELSE <结果n+1>]
END
Return 用于结束当前程序的执行,返回到上一个调用它的程序或其它程序。在括号内可指定一个返回值。
Goto标示符 用来改变程序执行的流程,使程序跳到标有标识符的指定的程序行再继续往下执行。要注意的是作为跳转目标的标识符可为数字与字符的组合,但必须以“:”结尾,如:“1023:” “qingpingguo:”
复制代码
例子:
declare @a int
set @a = 1
qingpignguo:
print @a
set @a = @a + 1
while @a < 6
goto qingpignguo
输出结果:12345
复制代码
最后一个给大家看个好玩的:
Waitfor 用来暂停程序执行,直到等待指定时间之后,或所设定的时间已到才继续往下运行程序。
语法: waitfor {delay '时间'|time '时间'}
解释:
(1)‘时间’必须为DATETIME类型数据,且不能包括日期,如‘10:12:05’
(2)DELAY:用来设定等待的时间长短,最多为24小时。(是一个时间间隔)
(3)TIME:用来设定等待结束的时间点(是一个具体的时间)
例子:
waitfor delay '00:00:03'
print '你好,我是青苹果'
go
文章转载参考:http://www.cnblogs.com/xinchun/archive/2012/07/23/2601714.html
分享到:
相关推荐
今天和大家一起来分享一下SQL语句,T-SQL的用法和语法,以及一些例子,目的是帮助大家一起来复习一下T-SQL的基本语句,以便在项目中更快速的运用,当然对于新手来说就更应该去学习和总结了
SQL 语句-- 语法{全集}提供给大家学习......................
SQL语法 1,书中附带了SQL语句执行的数据表以及查询结果,非常直观; 2,教程中的内容由简入难,从简单的语句到复杂的表格连接关系全面涵盖; 3,书中也具有十分明显的标签,比如如何算出表中小明英语成绩的全班...
动态sql语句基本语法 1 :普通SQL语句可以用Exec执行 例: Select * from tableName Exec('select * from tableName') Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N 2:字段名,...
SQL语句语法,合适需要入门的同学学习,很基础的内容,需要可以下载。
自己多年整理的T-SQL常用语句大全 不下别后悔
本文将会用T-SQL 语句实现建表、建约束、建关系。 一. 对表进行操作 1.1 创建表 --使用 create table 语句创建表 语法: create table 表名(字段 数据类型 约束) 例如: create table Student( StudentId ...
文章目录T-SQL基础技术基本语法格式代码准备:(可以按照我的实例自行建立数据库)1、投影查询a、投影指定的列b、投影全部列c、修改查询结果的列标题d、去掉重复行2、选择查询a.表达式比较b.范围比较c.模式匹配d....
SQL语言基本概念 流程控制语句 函数 SQL是英文(Structured Query Language)的缩写,意思为结构化查询语言。...本章主要介绍T-SQL的语言的基本概念、语法格式、运算符和表达式,以及基本语句和函数的使用。
T-SQL语法 一、数据库存储结构 二、数据库表存储结构 三、约 束 四、规 则 五、默认 六、索 引 七、视图 八、触发器 九、select,delete,update,insert语句使用方法 十、函数数据整理 十一、游标 十二、存储过程
Oracle Sql语句转换成Mysql Sql语句java 源码,非常简单,只要给定源oracle sql语句地址,和生成目标文件地址运行即可。
经典基础sql查询语句,适合于初学者。数据记录筛选: sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]...
学习SQL应知道的动态SQL语句基本语法 学习SQL应知道的动态SQL语句基本语法 学习SQL应知道的动态SQL语句基本语法 学习SQL应知道的动态SQL语句基本语法
sql语句、动态SQL语句基本语法,里面有很多很有用的sql语句。
Transact-SQL语句 语法大全2008-01-17 10:33语句 ----功能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表...
sql-常用基本语法--ShowDoc.webarchive
T-SQL,语句大全,涵盖了T-SQL的常用的语法,还有实例解释,非常不错的..........
MySQL中,如何使用SQL语句来对表中某一个字段进行重命名呢?我们将使用alter table 这一SQL语句。 重命名字段的语法为:alter table <表名> change <字段名> <字段新名称> <字段的类型>。 现在我们来...