当前位置:
首页 > 数据库 > SQL Server 2008 教程 >
-
SQL Server 2008教程之运算符
本站最新发布
SQL Server 2016数据库视频教程
试听地址 https://www.xin3721.com/eschool/SQLxin3721/
1.算术运算符
算术运算符是用于对两个表达式进行数学运算的运算符,一般得到的结果是数值型。表4-2列出了SQL Server中的主要算术运算符。
表4-2 算术运算符
例如下列T-SQL数学运算语句所示:
图4-2 执行数学运算的结果
从上面执行的结果中可以看到,浮点型数值和整数型数值的乘除法运算得到的结果并不相同,这时因为,有浮点型数值的运算结果的类型是浮点型,而整数型数值运算结果的类型是整数,所以,整数型乘除只保留整数。
2.赋值运算符
在Transact-SQL语言中,赋值运算符只有等号“=”一个。赋值运算符有两个主要的用途:第一个是给变量赋值,如下语句所示。
位运算符在两个表达式之间执行位操作,这两个表达式可以是任意两个整数数据类型的表达式。位运算符的符号及其定义如表4-3所示。
表4-3 位运算符
例如,下列语句分别计算2与51的位与、位或、位异或的运算结果。
图4-3 执行位运算符的结果
在位与运算中,5的二进制值为0000 0000 0000 0101,51的二进制值为0000 0000 0011 0011。根据位与运算规则,当且仅当输入的表达式中两个位的值都为1时,结果中的位才被设置为1;否则,结果中的位被设置为0。那么,5与51的位与逻辑运算值为0000 0000 0000 0001,而二进制为0000 0000 0000 0001的十进制值就是1。
4.比较运算符
比较运算符用来测试两个表达式是否相同。除了text、ntext或image数据类型的表达式外,比较运算符可以用于所有的表达式。比较运算符的符号及其表达式如表4-4所示。
表4-4 比较运算符
5.逻辑运算符
逻辑运算符用于对表达式或操作数进行比较或测试,其运算结果返回的是布尔类型的值,即true或false。true表示条件成立,flase则表示条件不成立。在Transact-SQL中可使用逻辑运算符如表4-5所示。
表4-5 逻辑运算符
例如,查询数据库“电子书查询系统”中会员所在地区为“北京”或者“上海”的会员,语句如下所示:
图4-4 使用逻辑运算符查询结果
在该语句中,使用LIKE和OR逻辑运算符,表示如果数据中会员所在地区有北京或者上海的记录,那么就返回记录。
6.字符串运算符
加号(+)是字符串连接运算符,可以用他将字符串串联起来。其他所有字符串操作都使用字符串函数(如SUBSTRING)进行处理。
默认情况下,对于varchar数据类型的数据,在INSERT或赋值语句中,空的字符串将被解释为空字符串。在串联varchar、char或text数据类型的数据时,空的字符串被解释为空字符串。例如,'abc'+' '+'def被存储为'abcdef'。但是,如果兼容级别设置为65,则空常量将作为单个空白字符处理,'abc'+' '+ 'def'将被存储为'abc def'。
7.一元运算符
一元运算符表示只对一个表达式执行操作。该表达式可以是numeric数据类型中的任何一种数据类型。在Transact-SQL语言中的一元表达式如表4-6所示。
表4-6 一元运算符
8.运算符的优先级
当一个复杂的表达式有多个运算符时,运算符优先级决定执行运算的先后次序。执行的顺序可能严重地影响所得到的值。SQL Server 2008中运算符优先级如表4-7所示。在一个表达式中按先高后低的顺序进行运算(即数字越小其优先级越高)。
表4-7 运算符优先级
试听地址 https://www.xin3721.com/eschool/SQLxin3721/
运算符
运算符实现运算功能,用来指定在一个或多个表达式中执行操作的符号,以产生新的结果。在SQL Server 2008中,运算符可以分为:算术运算符、赋值运算符、位运算符、比较运算符、逻辑运算符、字符串连接运算符和一元运算符。1.算术运算符
算术运算符是用于对两个表达式进行数学运算的运算符,一般得到的结果是数值型。表4-2列出了SQL Server中的主要算术运算符。
表4-2 算术运算符
运算符 | 说明 |
+ | 加法运算 |
- | 减法运算 |
* | 乘法运算 |
/ | 除法运算,如果两个表达式值都是整数,那么结果只取整数值,小数值将略去 |
% | 取模运算,返回两数相除后的余数 |
SELECT 2.5+5.6 '加'
SELECT 5.9-1 '减'
SELECT 2.0*5.0 '浮点型乘'
SELECT 2*5 '整数乘'
SELECT 10.0/15.0 '浮点型除'
SELECT 10/15 '整数除'
SELECT 90/16 '取模'
在查询管理器中执行上述语句,运行结果如图4-2所示。SELECT 5.9-1 '减'
SELECT 2.0*5.0 '浮点型乘'
SELECT 2*5 '整数乘'
SELECT 10.0/15.0 '浮点型除'
SELECT 10/15 '整数除'
SELECT 90/16 '取模'
图4-2 执行数学运算的结果
从上面执行的结果中可以看到,浮点型数值和整数型数值的乘除法运算得到的结果并不相同,这时因为,有浮点型数值的运算结果的类型是浮点型,而整数型数值运算结果的类型是整数,所以,整数型乘除只保留整数。
2.赋值运算符
在Transact-SQL语言中,赋值运算符只有等号“=”一个。赋值运算符有两个主要的用途:第一个是给变量赋值,如下语句所示。
DECLARE @URL varchar(20)
SET @URL = 'http://www.baidu.com'
第二个是在WHERE子句中提供查询条件,如下语句所示:SET @URL = 'http://www.baidu.com'
SELECT * FROM 学生信息
WHERE 籍贯 = '上海'
3.位运算符WHERE 籍贯 = '上海'
位运算符在两个表达式之间执行位操作,这两个表达式可以是任意两个整数数据类型的表达式。位运算符的符号及其定义如表4-3所示。
表4-3 位运算符
运算符 | 描述 |
& | 位与逻辑运算,从两个表达式中取对应的位。当且仅当输入表达式中两个位的值都为1时,结果中的位才被设置为1,否则,结果中的位被设置为0 |
| | 位或逻辑运算,从两个表达式中取对应的位。如果输入表达式中两个位只要有一个的值为1时,结果的位就被设置为1,只有当两个位的值都为0时,结果中的位才被设置为0 |
^ | 位异或运算,从两个表达式中取对应的位。如果输入表达式中两个位只有一个的值为1时,结果中的位就被设置为1;只有当两个位的值都为0或1时,结果中的位才被设置为0 |
SELECT 5 & 51 '位与'
SELECT 5 | 51 '位或'
SELECT 5 ^ 51 '位异或'
执行该语句,运算结果如图4-3所示。SELECT 5 | 51 '位或'
SELECT 5 ^ 51 '位异或'
图4-3 执行位运算符的结果
在位与运算中,5的二进制值为0000 0000 0000 0101,51的二进制值为0000 0000 0011 0011。根据位与运算规则,当且仅当输入的表达式中两个位的值都为1时,结果中的位才被设置为1;否则,结果中的位被设置为0。那么,5与51的位与逻辑运算值为0000 0000 0000 0001,而二进制为0000 0000 0000 0001的十进制值就是1。
4.比较运算符
比较运算符用来测试两个表达式是否相同。除了text、ntext或image数据类型的表达式外,比较运算符可以用于所有的表达式。比较运算符的符号及其表达式如表4-4所示。
表4-4 比较运算符
运算符 | 描述 | 运算符 | 描述 |
= | 等于 | <> | 不等于 |
> | 大于 | != | 不等于 |
< | 小于 | !< | 不小于 |
>= | 大于或等于 | !> | 不大于 |
<= | 小于或等于 |
逻辑运算符用于对表达式或操作数进行比较或测试,其运算结果返回的是布尔类型的值,即true或false。true表示条件成立,flase则表示条件不成立。在Transact-SQL中可使用逻辑运算符如表4-5所示。
表4-5 逻辑运算符
运算符 | 说明 |
ALL | 如果一组的比较都为true,则比较结果为true |
AND | 如果两个布尔表达式都为true,则结果为true;如果其中一个表达式为false,则结果为false |
ANY | 如果一组的比较中任何一个为true,则结果为true |
BETWEEN | 如果操作数在某个范围之内,那么结果为true |
EXISTS | 如果子查询中包含了一些行,那么结果为true |
IN | 如果操作数等于表达式列表中的一个,那么结果为true |
LIKE | 如果操作数与某种模式相匹配,那么结果为true |
NOT | 对任何其他布尔运算符的结果值取反 |
OR | 如果两个布尔表达式中的任何一个为true,那么结果为true |
SOME | 如果在一组比较中,有些比较为true,那么结果为true |
USE 电子书查询系统
SELECT *
FROM 会员信息
WHERE 所在地区 LIKE '北京' OR 所在地区 LIKE '上海'
执行语句的结果如图4-4所示。SELECT *
FROM 会员信息
WHERE 所在地区 LIKE '北京' OR 所在地区 LIKE '上海'
图4-4 使用逻辑运算符查询结果
在该语句中,使用LIKE和OR逻辑运算符,表示如果数据中会员所在地区有北京或者上海的记录,那么就返回记录。
6.字符串运算符
加号(+)是字符串连接运算符,可以用他将字符串串联起来。其他所有字符串操作都使用字符串函数(如SUBSTRING)进行处理。
默认情况下,对于varchar数据类型的数据,在INSERT或赋值语句中,空的字符串将被解释为空字符串。在串联varchar、char或text数据类型的数据时,空的字符串被解释为空字符串。例如,'abc'+' '+'def被存储为'abcdef'。但是,如果兼容级别设置为65,则空常量将作为单个空白字符处理,'abc'+' '+ 'def'将被存储为'abc def'。
7.一元运算符
一元运算符表示只对一个表达式执行操作。该表达式可以是numeric数据类型中的任何一种数据类型。在Transact-SQL语言中的一元表达式如表4-6所示。
表4-6 一元运算符
运算符 | 描述 |
+ | 数值为正 |
- | 数值为负 |
~ | 返回数字的逻辑非 |
当一个复杂的表达式有多个运算符时,运算符优先级决定执行运算的先后次序。执行的顺序可能严重地影响所得到的值。SQL Server 2008中运算符优先级如表4-7所示。在一个表达式中按先高后低的顺序进行运算(即数字越小其优先级越高)。
表4-7 运算符优先级
优先级 | 运算符 |
1 | ~(位非) |
2 | *(乘)、/(除)、%(取模) |
3 | +(正)、-(负)、+(加)、(+ 连接)、-(减)、&(位与) |
4 | =、>、<、>=、<=、<>、!=、!>、!<(比较运算符) |
5 | ^(位异或)、|(位或) |
6 | NOT |
7 | AND |
8 | ALL、ANY、BETWEEN、IN、LIKE、OR、SOME |
9 | =(赋值) |
最新更新
MongoDB 复制
vb.net教程之VB.NET中TextBox的智能感知应用实
数据库是如何定义的?
Mysql数据库
Python在Mysql中使用的数据类型
c#教程之运算符
变量
C#语法
C#入门简介
C#教程之C# 环境
MySQL LIKE 子句
MySQL 查询数据
MySQL 插入数据
MySQL 修改数据表
MySQL 删除数据表
MySQL 创建数据表
MySQL 数据类型
mysql教程-如何选择数据库
mysql教程-如何使用MySQL 删除数据库
如何MySQL 创建数据库
数据类型之对象
数据类型之布尔型、整型、浮点型和字符
php教程之数据类型之数组
php教程之PHP 常量
php教程之变量
php教程之语法
PHP简介与安装
phpMyAdmin配置安装全攻略
PHP是什么
win2003 iis整合php后 环境变量无法读取到