T-SQL(一)

    一、T-SQL基础

       1、注释

       一种是ANSI标准的注释符 "--”,它用于单行注释;另一种是与C语言相同的程序注释符号,即"/* */

       2、变量

       Transact-SQL语言中有两种形式的变量,一种是用户自己定义的局部变量,另外一种是系统提供的全局变量。

       

       局部变量是一个能够拥有特定数据类型的对象,它的作用范围仅限制在程序内部。

       局部变量被引用时要在其名称前加上标志,而且必须先用DECLARE命令定义后才可以使用。

       定义格式:declare @local_variable data_type

       例如:declare @sage int,@snamechar(10)

     

       全局变量是SQLServer系统内部使用的变量,其作用范围并不仅仅局限于某一程序,而是任何程序均可以随时调用。

       全局变量通常存储一些SQLServer的配置设定值和统计数据。用户可以在程序中用全局变量来测试系统的设定值或者是Transact-SQL命令执行后的状态值。

       使用全局变量时应该注意以下几点: 

           ①全局变量不是由用户的程序定义的,它们是在服务器级定义的。

           ②用户只能使用预先定义的全局变量。

           ③引用全局变量时,必须以标记符@@”开头。

           ④局部变量的名称不能与全局变量的名称相同,否则会在应用程序中出现不可预测的结果。

       例如:  @@version返回当前服务器的日期版本和处理器类型等.

          @@rowcount返回最近的语句影响的行数

       3 运算符

       运算符主要有以下六大类:算术运算符、赋值运算符、位运算符、比较运算符、逻辑运算符以及字符串连接运算符

       

       算术运算符包括加(+)、减()、乘(*)、除(/)和取模(%)。

       例:SelectCast( 100 + 900 as char(4));

          selectcast('2006-3-15'as smalldatetime)+ 365 as '2007-3-15'

     

       赋值运算符   =

       Select可以用在查询语句中,set不可以

       :    Declare @myage int

          set @myage = 25

       

          select sno='ec'+ sno , sname , sage from student

     

       位运算符

       

       比较运算符

       比较运算符用于比较两个表达式的大小或是否相同,其比较的结果是布尔值,即TRUE(表示表达式的结果为真)、FALSE(表示表达式的结果为假)以及UNKNOWN

       除了textntextimage数据类型的表达式外,比较运算符可以用于所有的表达式。

     

       逻辑运算符

       逻辑运算符可以把多个逻辑表达式连接起来。逻辑运算符包括ANDORNOT等运算符。逻辑运算符和比较运算符一样,返回带有TRUEFALSE值的布尔数据类型。

       还有其他返回逻辑值的运算符如 : ANY ,SOME, IN ,EXIST, ALL......

     

       字符串连接运算符

       字符串串联运算符允许通过加号(+)进行字符串串联,这个加号即被称为字符串串联运算符。

       例 : 对于语句SELECT 'abc'+ 'def',其结果为'abcdef'

     

       4  函数

       字符串函数

       字符串函数可以对二进制数据、字符串和表达式执行不同的运算,多数字符串函数只能用于charvarchar数据类型以及明确转换成charvarchar的数据类型.

       a-- 基本字符串函数:UPPERLOWERSPACEREPLICATESTUFFREVERSELTRIMRTRIM

          例:SELECTRTRIM('rain-man ')+ ',' + SPACE(2)+ LTRIM(' aaaaaaaaaa');

       b-- 字符串查找函数:CHARINDEXPATINDEX

       c-- 长度和分析函数:DATALENGTHSUBSTRINGRIGHT

       d-- 转换函数:ASCIICHARSTRSOUNDEXDIFFERENCE

          STR由数字数据转换来的字符数据。

          例:SELECTSTR(123.45, 6, 1)=' 123.5';

     

       日期和时间函数

       例:从GETDATE函数返回的日期中提取月份数。

          SELECTDATEPART( month , GETDATE())  AS 'Month Number'

       例:从日期03/15/2006中返回月份数、天数和年份数。

          SELECTMONTH('03/15/2006 '),DAY('03/15/2006 '),YEAR(' 03/15/2006 ')

       例:返回当前日期是星期几。

          SELECTDATENAME(weekday,getdate()) AS 'Month Name'

     

       数学函数

       在同一表达式中使用CEILING()、FLOOR()、ROUND()函数。

       例:select ceiling(13.4), floor(13.4), round(13.4567,3)

     

       转换函数

       一般情况下,SQLServer会自动处理某些数据类型的转换。

       例如,如果比较chardatetime表达式、smallintint表达式、或不同长度的char表达式,SQLServer 可以将它们自动转换,这种转换被称为隐性转换。

       但是,无法由SQLServer自动转换的或者是SQLServer自动转换的结果不符合预期结果的,就需要使用转换函数做显示转换。转换函数有两个:CONVERTCAST

       CASTCONVERT

       将某种数据类型的表达式显式转换为另一种数据类型。CASTCONVERT提供相似的功能。

       例 :select snameas 姓名,sageas 年龄from student where cast(sageas char(2))like '2%';

          select snameas 姓名,sageas 年龄from student where convert(char(2),sage)like '2%'

     

       系统函数

       系统函数用于返回有关SQLServer系统、用户、数据库和数据库对象的信息。

       例 :返回Northwind数据库的Employees表中的首列的名称。

          USE Northwind

          SELECTCOL_NAME(OBJECT_ID('Employees'), 1)

     

       聚合函数

       聚合函数可以返回整个或者几个列或者一个列的汇总数据,它常用来计算SELECT语句查询的统计值。聚合函数经常与SELECT语句的GROUPBY 子句一同使用。

     

     

     

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    Gabanon

    你的鼓励将是我创作的最大动力

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

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

    余额充值