T-SQL

T-SQL 知识量:16 - 67 - 243

1.4 运算符和表达式><

算术运算符- 1.4.1 -

T-SQL算术运算符是用于进行数值计算的运算符。以下是一些常用的T-SQL算术运算符:

1. 加法运算符(+):用于将两个数值相加。

SELECT 1 + 2; -- 结果为 3

2. 减法运算符(-):用于从第一个数值中减去第二个数值。

SELECT 5 - 3; -- 结果为 2

3. 乘法运算符(*):用于将两个数值相乘。

SELECT 2 * 3; -- 结果为 6

4. 除法运算符(/):用于将第一个数值除以第二个数值。

SELECT 10 / 2; -- 结果为 5

5. 取模运算符(%):用于计算两个数值相除的余数。

SELECT 7 % 3; -- 结果为 1

这些算术运算符可以用于T-SQL查询中的表达式中,进行数值计算和比较。

比较运算符- 1.4.2 -

T-SQL比较运算符用于比较两个值的大小关系。以下是一些常用的T-SQL比较运算符:

1. 等于运算符(=):用于比较两个值是否相等。

SELECT * FROM Customers WHERE CustomerID = 1; -- 查询CustomerID为1的记录

2. 不等于运算符(<> 或 !=):用于比较两个值是否不相等。

SELECT * FROM Customers WHERE CustomerID <> 1; -- 查询CustomerID不为1的记录

3. 大于运算符(>):用于比较第一个值是否大于第二个值。

SELECT * FROM Customers WHERE Age > 25; -- 查询年龄大于25岁的记录

4. 小于运算符(<):用于比较第一个值是否小于第二个值。

SELECT * FROM Customers WHERE Age < 30; -- 查询年龄小于30岁的记录

5. 大于等于运算符(>=):用于比较第一个值是否大于或等于第二个值。

SELECT * FROM Customers WHERE Age >= 21; -- 查询年龄大于或等于21岁的记录

6. 小于等于运算符(<=):用于比较第一个值是否小于或等于第二个值。

SELECT * FROM Customers WHERE Age <= 35; -- 查询年龄小于或等于35岁的记录

这些比较运算符可以用于T-SQL查询中的WHERE子句中,根据条件筛选出符合要求的记录。

逻辑运算符- 1.4.3 -

T-SQL逻辑运算符用于连接和比较多个表达式,以确定它们之间的关系。以下是一些常用的T-SQL逻辑运算符:

1. AND运算符:用于将两个表达式连接起来,只有当两个表达式都为真时,才返回真。

SELECT * FROM Customers WHERE Country = 'USA' AND City = 'New York'; -- 查询来自美国纽约的记录

2. OR运算符:用于将两个表达式连接起来,只要其中一个表达式为真,就返回真。

SELECT * FROM Customers WHERE Country = 'USA' OR Country = 'Canada'; -- 查询来自美国或加拿大的记录

3. NOT运算符:用于对一个表达式取反,如果表达式为真,则返回假,反之则返回真。

SELECT * FROM Customers WHERE NOT Country = 'USA'; -- 查询不是来自美国的记录

这些逻辑运算符可以用于T-SQL查询中的WHERE子句中,结合比较运算符和算术运算符等其他语法元素,实现更复杂的查询条件。

连接运算符- 1.4.4 -

T-SQL连接运算符用于将两个或多个字符串连接起来。以下是一些常用的T-SQL连接运算符:

1. + 运算符:用于将两个字符串连接起来。

SELECT 'Hello ' + 'World'; -- 结果为 'Hello World'

2. & 运算符:用于将两个字符串连接起来。与+运算符不同的是,它不会将结果解释为字符串,而是直接将结果作为表达式返回。

SELECT 'Hello ' & 'World'; -- 结果为 'Hello World'

这些连接运算符可以用于T-SQL查询中的字符串连接操作,将多个字符串连接起来以生成所需的文本或标识符。

按位运算符- 1.4.5 -

T-SQL按位运算符用于对二进制位进行操作。以下是一些常用的T-SQL按位运算符:

1. 按位与运算符(&):将两个二进制数的每个位进行比较,如果两个数的相应位都为1,则该位的结果为1,否则为0。

SELECT 10 & 12; -- 结果为 4

2. 按位或运算符(|):将两个二进制数的每个位进行比较,如果两个数的相应位中有至少一个为1,则该位的结果为1,否则为0。

SELECT 10 | 12; -- 结果为 14

3. 按位非运算符(~):对一个二进制数的每个位取反,将0变为1,将1变为0。

SELECT ~10; -- 结果为 -11

4. 按位异或运算符(^):将两个二进制数的每个位进行比较,如果两个数的相应位不同,则该位的结果为1,否则为0。

SELECT 10 ^ 12; -- 结果为 13

这些按位运算符可以用于T-SQL查询中的表达式中,与其他运算符结合使用,实现更复杂的数值计算和比较。

运算符的优先级- 1.4.6 -

T-SQL运算符的优先级由高到低的顺序如下:

  1. 括号:括号中的表达式优先级最高。

  2. 算术运算符:乘法、除法、取模运算符优先级高于加法和减法。

  3. 比较运算符:等于、不等于、大于、小于、大于等于、小于等于运算符。

  4. 逻辑运算符:NOT、AND、OR 运算符。

在表达式中,如果使用了相同优先级的运算符,则从左到右依次计算。如果需要改变运算顺序,可以使用括号来提高表达式的优先级。

需要注意的是,以上优先级顺序是基于标准的 SQL 语言定义的,不同的数据库管理系统可能会略有差异。因此,在实际使用时,最好查阅相关数据库管理系统的文档,以了解具体的优先级规则。

什么是表达式- 1.4.7 -

T-SQL中的表达式是由常量、变量、函数等通过运算符按一定的规则连接起来的有意义的式子。这些表达式可以用于查询、计算和比较等操作。例如,在T-SQL查询中,可以使用表达式来筛选数据、计算字段的值或进行其他计算操作。

T-SQL中的表达式可以包含常量、变量、函数和运算符等元素。常量是固定值,变量可以存储不同类型的数据,函数可以执行特定的计算或操作,运算符用于连接或比较表达式。

例如,以下是一个简单的T-SQL查询,其中使用了表达式来筛选年龄大于等于18岁的记录:

SELECT * FROM Customers WHERE Age >= 18;

在这个查询中,Age >= 18是一个表达式,它使用了比较运算符>=来比较Age字段的值是否大于等于18。如果条件满足,则查询将返回符合条件的记录。

表达式的分类- 1.4.8 -

T-SQL表达式的分类主要包括以下几种:

  • 常量表达式:这种表达式由常量组成,例如数字、字符串、日期等。

  • 字段表达式:这种表达式基于表中的字段,如 SELECT column1, column2 FROM table。

  • 函数表达式:这种表达式使用SQL函数,如 SELECT AVG(column1) FROM table。

  • 运算符表达式:这种表达式使用运算符,如比较运算符(=、>、<、>=、<=、<>)、算术运算符(+、-、*、/、%)等。

  • 聚合函数表达式:这种表达式用于对一组值执行计算,并返回单个值,如 SELECT AVG(column1) FROM table。

  • 条件表达式:这种表达式用于根据条件选择值,如 SELECT column1 FROM table WHERE column2 = 'value'。

以上分类并不是绝对的,有些表达式可能同时属于多个分类。例如,一个包含多个运算符的复杂表达式可能既是函数表达式,又是运算符表达式。