`
梵谷的皇心
  • 浏览: 22200 次
社区版块
存档分类
最新评论

SQL语句——T-SQL语法

阅读更多
数据库这方面对于程序员来说很重要,无论是对于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 server 2012 T-SQl基础教程 源码和示例数据库

    提供的源码文件,如TSQL2012.sql,可能是整个教程的示例数据库脚本,它包含了一系列练习和示例,可以帮助读者更好地理解和实践T-SQL语法。而其他章节命名的.sql文件则对应各个章节的示例代码和练习,如Chapter 08 - ...

    Inside Microsoft SQL Server 2008 T-SQL Programming.pdf

    - **SQL语句语法**:包括SELECT、INSERT、UPDATE、DELETE等常用语句的使用方法。 - **数据类型**:介绍了SQL Server支持的各种数据类型,如数值类型、字符类型、日期时间类型等。 - **变量与常量**:讲解如何定义...

    Inside Microsoft SQL Server 2008 T-SQL Programming

    1. **基础语法**:了解T-SQL的基本结构,包括SELECT、INSERT、UPDATE、DELETE语句的使用,以及如何进行数据过滤、排序和分组。 2. **高级查询**:学习使用子查询、联接(INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL ...

    [电子书] SQL Server 2012 T-SQL 实用技巧 (英文版)

    通过学习这本书,读者不仅能掌握SQL Server 2012的T-SQL语法,还能获得实际应用中的实用技巧,从而提升数据库管理和开发的技能。对于那些已经有一定SQL基础,但希望进一步提升自己在SQL Server 2012环境下解决问题...

    SQL SERVER 2008 T-SQL 基础

    4. **存储过程**:存储过程是预编译的T-SQL代码集合,可以包含多个SQL语句和控制结构。它们可以提高性能,简化复杂操作,并提供安全机制。在SQL Server 2008中,可以创建、修改和删除存储过程。 5. **触发器**:...

    Sql2008技术内幕-T-Sql查询

    《SQL2008技术内幕——T-SQL查询》是一本深入探讨Microsoft SQL Server 2008数据库管理系统中T-SQL(Transact-SQL)查询的权威指南。T-SQL是SQL Server的核心语言,用于数据操作、存储过程编写、触发器定义以及...

    Microsoft SQL Server 2012 T-SQL

    存储过程是一组预编译的T-SQL语句,可以接受参数,执行复杂操作,并提高安全性。 9. **游标**:虽然在SQL Server中推荐使用集束操作,但T-SQL仍然提供了游标,允许逐行处理查询结果。 10. **窗口函数**:SQL ...

    Microsoft SQL Server 2008 T-SQL Fundamentals

    本书首先会引导读者了解T-SQL的基本语法,包括SELECT语句,用于从数据库中检索数据。这涉及到列选择、表连接、聚合函数以及WHERE子句的使用,这些都是进行数据查询的基本元素。 接下来,书中会讲解INSERT、UPDATE和...

    SQL语句帮助文档 - MS SQL

    本资源提供的是SQL语句的帮助文档,专为中文用户设计,旨在帮助用户理解和运用SQL语言进行数据操作和管理。以下是关于MS SQL和SQL语句的一些关键知识点: 1. **SQL简介**:SQL(Structured Query Language)是用于...

    T-SQL语言基础 T-SQL语言基础

    T-SQL语言基础是SQL Server中的核心组成部分,用于管理和处理数据库中的数据。T-SQL扩展了标准SQL,提供了更多的功能和控制。 在T-SQL中,注释是开发者用来解释代码的重要工具。有两种类型的注释方式:单行注释使用...

    T-SQL示例大全(全是T-SQL语句 )

    本压缩包“T-SQL示例大全”提供了丰富的T-SQL语句实例,旨在帮助用户深入理解和熟练运用T-SQL进行数据库操作。 一、T-SQL基础 T-SQL的基础包括数据类型、变量、常量、运算符以及流程控制语句。例如,数据类型包括...

    SQL语句语法

    SQL语句是结构化查询语言(Structured Query Language)的简称,是用于管理和处理关系数据库的标准语言。本篇文章将深入探讨SQL语句的基本语法,包括数据定义、数据操作、实用工具、事务处理和锁定、数据库管理、...

    t-SQL语句速写程序

    t-SQL语句速写程序可能是为了简化这些操作,提供代码片段、自动补全和语法高亮等功能,提高开发效率。 此程序可能包含以下特性: 1. **代码片段库**:预定义了常用的t-SQL语句模板,如SELECT、INSERT、UPDATE、...

    T-SQL常用语句大全

    ### T-SQL常用语句详解 #### 创建数据库(Create Database) 在T-SQL中,创建数据库是基础操作之一,用于初始化存储...这些基本的T-SQL语句涵盖了数据库管理的主要方面,熟练掌握它们对于数据库开发和维护至关重要。

    高级T-SQL语句

    对于初学者来说,掌握高级T-SQL语句能极大地提升数据库开发和管理的能力。本章将重点讨论两种重要的高级T-SQL语句:`CAST`和`CONVERT`,以及`PRINT`语句的使用。 **4.1 使用`CAST`和`CONVERT`** `CAST`和`CONVERT`...

    T-SQL语法详解

    T-SQL语法详解 在SQL Server中,T-SQL(Transact-SQL)是一种扩展了标准SQL的编程语言,主要用于管理和操作数据库。本篇将详细阐述T-SQL中与数据库存储结构相关的知识点。 1. 数据库存储结构 数据库在SQL Server...

    MicroSoft Sql Server2005:T-Sql查询

    T-SQL是SQL的扩展,它是SQL Server的标准查询语言,包含了SQL的全部功能,如SELECT、INSERT、UPDATE、DELETE等,同时还添加了流程控制语句、变量、函数等高级特性。在SQL Server 2005中,T-SQL是进行数据库交互的...

Global site tag (gtag.js) - Google Analytics