注释符对代码进行解释或说明。常见的运算符有算术运算符、赋值运算符、比较运算符和逻辑运算符等。常用的通配符有%、_(下画线)、[ ]、[^]。
注释语句不是可执行语句,不参与程序的编译,通常是一些说明性的文字,对代码的功能或者代码的实现方式给出简要的解释和提示。
在SQL中,可使用以下两类注释符。
ANSI标准的注释符(--),用于单行注释,如下面SQL语句所加的注释。
use pubs --打开数据表
与C语言相同的程序注释符,即“/*”和“*/”。“/*”用于注释文字的开头,“*/”用于注释文字的结尾,可在程序中标识多行文字为注释。
例如,有多行注释的SQL语句如下:
USE db_Test declare @songname char(10) select @songname=Stu_col from tb_Student where Stu_spe='会计学' print @songname /*打开db_Test数据库,定义一个变量 把查询到的结果赋值给所定义的变量*/
把所选的行一次都注释的快捷键是Shift+Ctrl+C,一次取消多行注释的快捷键是Shift+Ctrl+R。
运算符是一种符号,用来进行常量、变量或者列之间的数学运算和比较操作,它是SQL很重要的部分。运算符的常见类型有算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符和连接运算符。
算术运算符在两个表达式上执行数学运算,这两个表达式可以是数字数据类型分类的任何数据类型。
算术运算符包括+(加)、-(减)、×(乘)、/(除)、%(取余)。
【例5.3】 求2对5取余。在查询分析器中运行的结果如图5.3所示 。(实例位置:资源包\TM\sl\5\3)
图5.3 求2对5取余的结果
SQL语句如下:
declare @x int ,@y int,@z int select @x=2,@y=5 set @z=@x%@y print @z
取余运算两边的表达式必须是整型数据。
SQL有一个赋值运算符,即等号(=)。在下面的示例中,创建了@songname变量,然后利用赋值运算符将@songname设置成一个由表达式返回的值。代码如下:
DECLARE @songname char(20) SET @songname='loving'
还可以使用SELECT语句进行赋值,并输出该值。
DECLARE @songname char(20) SELECT @songname ='loving' print @songname
比较运算符测试两个表达式是否相同。除text、ntext或image数据类型的表达式外,比较运算符可以用于所有的表达式。比较运算符包括>(大于)、<(小于)、=(等于)、>=(大于或等于)、<=(小于或等于)、<>(不等于)、!=(不等于)、!>(不大于)、!<(不小于),其中,!=、!>、!<不是ANSI标准的运算符。
比较运算符的结果为布尔数据类型,它有3个值:TRUE、FALSE及UNKNOWN。那些返回布尔数据类型的表达式被称为布尔表达式。
和其他SQL Server数据类型不同,不能将布尔数据类型指定为表列或变量的数据类型,也不能在结果集中返回布尔数据类型。例如:
3>5=FALSE,6<>9=TRUE
逻辑运算符对某个条件进行测试,以获得其真实情况。逻辑运算符和比较运算符一样,返回带有TRUE或FALSE的布尔数据类型。SQL支持的逻辑运算符如表5.2所示。
表5.2 SQL支持的逻辑运算符
【例5.4】 在Student数据表中,查询学生中年龄大于24岁的女生信息。运行结果如图5.4所示。 (实例位置:资源包\TM\sl\5\4)
图5.4 查询年龄大于24岁的女生信息
SQL语句如下:
USE db_Test Select * from Student where Sex='女' and Sage>24
当NOT、AND和OR出现在同一表达式中时,优先级是:NOT、AND、OR。例如:
3>5 or 6>3 and not 6>4=FALSE
先计算not 6>4=FALSE,然后再计算6>3 AND FALSE =FALSE,最后计算3>5 or FALSE= FALSE。
位运算符的操作数是整数数据类型或二进制串数据类型(image数据类型除外)范畴的。SQL支持的位运算符如表5.3所示。
表5.3 SQL支持的位运算符
连接运算符“+”用于连接两个或两个以上的字符或二进制串、列名或者串和列的混合体,将一个串加入另一个串的末尾。语法如下:
<expression1>+<expression2>
【例5.5】 用“+”连接两个字符串。运行结果如图5.5所示 。(实例位置:资源包\TM\sl\5\5)
图5.5 用“+”连接两个字符串
SQL语句如下:
declare @name char(20) set @name=' 最爱' print '我喜爱的电影是'+@name
当一个复杂表达式中包含多个运算符时,运算符的优先级决定了表达式计算和比较操作的先后顺序。运算符的优先级由高到低的顺序如下。
(1)+(正)、−(负)、~(位反)。
(2)*(乘)、/(除)、%(取余)。
(3)+(加)、+(连接运算符)、-(减)。
(4)=、>、<、>=、<=、<>、!=、!>、!<(比较运算符)。
(5)^(按位异或)、&(按位与)、|(按位或)。
(6)NOT。
(7)AND。
(8)ALL ANY BETWEEN IN LIKE OR SOME(逻辑运算符)。
(9)=(赋值)。
若表达式中含有相同优先级的运算符,则从左向右依次处理。还可以使用括号提高运算的优先级,在括号中的表达式优先级最高。如果表达式有嵌套的括号,那么首先对嵌套最内层的表达式求值。
例如:
DECLARE @num int SET @num = 2 * (4 + (5 - 3) )
上面的代码中,先计算(5-3),然后再加4,最后再和2相乘。
通配符匹配指定范围内或者属于方括号指定的集合中的任意单个字符。可以在涉及模式匹配的字符串比较(如LIKE和PATINDEX)中使用这些通配符。
在SQL中通常用LIKE关键字与通配符结合实现模糊查询。其中,SQL支持的通配符的描述和示例如表5.4所示。
表5.4 SQL支持的通配符的描述和示例