26. SQL -- TSQL(SELECT语句的使用,子查询,连接,通配符 )(2)

 

  • 符:

Transact-SQL 言中可使用两种注符:行注

行注--”,ANSI 准的注符,用于行注

/*…*/”,“/*”用于注文字的开,“*/”用于注文字的末尾。符可在程序中标识多行文字

 

  • T-SQL 运算符:

运算:+-x/%

运算:><=>=<=<>!=!>!<

逻辑运算:andornot

位运算:&|~ ^

接运算:+

一元运算:+、—、~

1)、算运算符:

运算符用来在两个表达式上行数学运算,两个表达式可以是任意两个数字数据型的表达式。算运算符包括+()-()*()/()%()五个。

Transact-SQL 中,“+”包含了三个方面的意

表示正号,即在数前添加“+”号表示是一个正数。

表示算运算的加号,能将数值类型的两个数据相加。

接两个字符型或binary 型的数据,这时的“+”号叫做字符串串运算符。

%(mod):即取余数的意思

例:select 11 % 6

2)赋值运算符

T-SQL 中只有一个赋值运算符,即(=)。赋值运算符使我将数据指派特定象。另外,可以使用赋值运算符在列标题列定义值的表达式之建立关系。例如,下面的代码创建了@MyCounter 量。然后赋值运算符将@MyCounter 置成一个由表达式返回的

例:declare @mycounter int

set @mycounter = 1

select@mycounter

3)、比运算符

运算符用来测试两个表达式是否相同。除了textntext image 数据型的表达式外,比运算符可以用于所有的表达式。运算符的符号及其含如表所示:

运算 符 含

=等于

>大于

<小于

>=大于等于

<=小于等于

<>不等于

Between在指定范

!=不等于(SQL-92 )

!<不小于(SQL-92 )

!>不大于(SQL-92 )

例:在Demo_DB 数据TimeRecords 表中,查询clock_id 等于105,sign_time 时间

2011-06-13 2011-06-15 之内的clock_id,emp_id, join_id, depart_id, card_id,sign_time 记录.

 

selectclock_id,emp_id , join_id, depart_id, card_id, sign_time

from TimeRecords

whereclock_id = ‘105‘

andsign_time >= ‘2011-06-13‘

andsign_time <= ‘2011-06-15‘

或者:

selectclock_id,emp_id , join_id, depart_id, card_id, sign_time

from TimeRecords

whereclock_id = ‘105‘

andsign_time between ‘2011-06-13‘ and ‘2011-06-15‘

然两者都可等到相同的果,但一般在生产环境中,不要使用between,因查询语句中使用between,需要全表行一次查询运算,会增加CPU运算时间时间.

运算符的果是布数据型,它有三种TRUEFALSE NULL。那些返回布数据型的表达式被称表达式。和其他SQL Server 数据型不同,不能将布数据型指定表列或量的数据型,也不能在果集中返回布数据型。

 

SET ANSI_NULLS ON 有一个或两个NULL 表达式的运算符返回NULL

SET ANSI_NULLS OFF ,上述规则适用,只不如果两个表达式都NULL,那么等号运算符返回TRUE。例如,如果SET ANSI_NULLS OFF,那么NULL=NULL就返回TRUE

WHERE 子句中使用有布数据型的表达式,可以筛选出符合搜索条件的行,也可以在流控制(例如 IFWHILE)中使用种表达式。

4)、位运算符

位运算符在两个表达式之间执行位操作,两个表达式可以是任意两个整型数据的表达式。位运算符的符号及其定如表所示:

运算 符 含

&(按位AND) 按位与(两个操作数)

|(按位OR) 按位或(两个操作数)

^(按位互斥OR) 按位异或(两个操作数)

~(按位NOT) 按位取反(一个操作数)

位运算符的操作数可以是整型或二制字符串数据型中的任何数据(image

数据型除外),此外,两个操作数不能同是二制字符串数据型中的某种数据

例:定一个局部@tb,并TABLE,并指定参数sex字段bit,参数num2字段int.

DECLARE@tb TABLE (sex bit ,num2 INT)

INSERTINTO @tb SELECT 1,1

INSERTINTO @tb SELECT 0,2

INSERTINTO @tb SELECT 1,3

INSERTINTO @tb SELECT 1,4

select* from @tb

SELECTsex,‘~sex‘=~sex,‘sex^‘=sex^1, num2 FROM @tb

果:

5)逻辑运算符

逻辑运算符用来某个条件测试,以得其真情况。逻辑运算符和比运算符一返回TRUE FALSE 的布数据型。逻辑运算符的符号及其含如表所示:

运算 符 含

ALL如果一系列的比TRUE,那么就TRUE

AND如果两个布表达式都TRUE,那么就TRUE

ANY如果一系列的比中任何一个TRUE,那么就TRUE

BETWEEN如果操作数在某个范之内,那么就TRUE

EXISTS如果子查询包含一些行,那么就TRUE

IN如果操作数等于表达式列表中的一个,那么就TRUE

LIKE如果操作数与一种模式相匹配,那么就TRUE

NOT任何其他布运算符的取反

OR如果两个布表达式中的一个TRUE,那么就TRUE

SOME如果在一系列比中,有些TRUE,那么就TRUE

三个运算符的级别为NOTANDOR

6)、一元运算符

一元运算符只一个表达式行操作,个表达式可以是数字数据型中的任何一种数据

型,如表所示:

运算 符 含

+() 值为

- () 值为负

~(按位 NOT) 返回数字的

运算符的运算序:

l 括号: ()

l 位运算符: ~

l 运算符:*/%

l 运算符:+-

l 位运算符:^

l 位运算符:&

l 位运算符:|

l 逻辑运算符:NOT

l 逻辑运算符:AND

l 逻辑算符:OR


本文出自 “Ricky's Blog” 博客,请务必保留此出处http://57388.blog.51cto.com/47388/1627383

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。