您的位置:首页 > 数据库

T-SQL(一)

2015-06-28 15:56 316 查看
一、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。
除了text、ntext或image数据类型的表达式外,比较运算符可以用于所有的表达式。

逻辑运算符
逻辑运算符可以把多个逻辑表达式连接起来。逻辑运算符包括AND、OR和NOT等运算符。逻辑运算符和比较运算符一样,返回带有TRUE或FALSE值的布尔数据类型。
还有其他返回逻辑值的运算符如
: ANY ,SOME,
IN ,EXIST, ALL......

字符串连接运算符
字符串串联运算符允许通过加号(+)进行字符串串联,这个加号即被称为字符串串联运算符。
例 : 对于语句SELECT
'abc'+ 'def',其结果为'abcdef'

4 函数
字符串函数
字符串函数可以对二进制数据、字符串和表达式执行不同的运算,多数字符串函数只能用于char和varchar数据类型以及明确转换成char和varchar的数据类型.
a--
基本字符串函数:UPPER、LOWER、SPACE、REPLICATE、STUFF、REVERSE、LTRIM、RTRIM。
例:SELECTRTRIM('rain-man
')+
',' + SPACE(2)+
LTRIM(' aaaaaaaaaa');
b--
字符串查找函数:CHARINDEX、PATINDEX。
c--
长度和分析函数:DATALENGTH、SUBSTRING、RIGHT。
d--
转换函数:ASCII、CHAR、STR、SOUNDEX、DIFFERENCE。
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会自动处理某些数据类型的转换。
例如,如果比较char和datetime表达式、smallint和int表达式、或不同长度的char表达式,SQLServer
可以将它们自动转换,这种转换被称为隐性转换。
但是,无法由SQLServer自动转换的或者是SQLServer自动转换的结果不符合预期结果的,就需要使用转换函数做显示转换。转换函数有两个:CONVERT和CAST。
CAST和CONVERT
将某种数据类型的表达式显式转换为另一种数据类型。CAST和CONVERT提供相似的功能。
例 :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
子句一同使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: