SQL 运算符是一系列字符、符号和单词,用作WHERE
子句的一部分。
SQL 运算符
- SQL运算符用于执行比较和算术运算等操作。
- 这些运算符用于在 SQL 语句中指定条件。
- SQL 运算符帮助我们仅从表或视图中选择特定记录。
SQL 运算符类型
SQL 操作符大致分为以下几部分。
- 算术运算符
- 比较运算符
- 逻辑运算符
- 按位运算符
让我们试着试着一一了解上述所有运算符。
SQL 算术运算符
SQL 算术运算符是用于数学计算的运算符,如加法、减法等。它们与SQL 数字数据类型一起使用。
操作 | 描述 | 例子 |
---|---|---|
+(添加) | 在运算符的两侧添加值。 | 选择 30 + 20;输出:50 |
-(减法) | 从运算符左侧的值中减去右侧的值。 | 选择 30 – 20;输出:10 |
*(乘法) | 将运算符两边的值相乘 | 选择 30 * 20; 输出:600 |
/(分配) | 将左侧值除以右侧值。 | 选择 30 / 20;输出:1 |
%(模数) | 将左侧值除以右侧值并返回提醒 | 选择 30 % 20; 输出:10 |
SQL 比较运算符
比较运算符是用于比较两个值的运算符。为了更好地理解比较运算符,我们将以 Employee 表为例,如下所示。
让我们以上表为例来了解比较运算符的用法。
编号 | 员工姓名 | 临时工 | 员工薪资 |
---|---|---|---|
1 | 约翰 | 32 | 2000年 |
2 | 史密斯 | 25 | 2500 |
3 | 亨利 | 29 | 3000 |
操作 | 描述 | 例子 |
---|---|---|
=(等于) | 检查两个操作数的值是否相等,如果相等则条件成立。 | SELECT EmpName FROM Employee WHERE EmpSalary=2000; 输出:约翰 |
!=(不等于) | 检查两个操作数的值是否不相等,如果值不相等则条件为真。 | SELECT EmpName FROM Employee WHERE EmpSalary!=2000;输出: 史密斯 亨利 |
<>(不等于) | 检查两个操作数的值是否相等,如果值不相等则条件为真。 | SELECT EmpName FROM Employee WHERE EmpSalary<>2000;输出: 史密斯 亨利 |
>(大于) | 检查左操作数的值是否大于右操作数的值,如果是,则条件为真。 | SELECT EmpName FROM Employee WHERE EmpSalary > 2000 输出: Smith Henry |
<(小于) | 检查左操作数的值是否小于右操作数的值,如果是,则条件为真。 | SELECT EmpName FROM Employee WHERE EmpSalary < 2000 输出:未 找到记录 |
>=(大于或等于) | 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件为真。 | SELECT EmpName FROM Employee WHERE EmpSalary >= 2000输出: 约翰· 史密斯 ·亨利 |
<=(小于或等于) | 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件为真。 | SELECT EmpName FROM Employee WHERE EmpSalary <= 2000输出: 约翰 |
!<(不小于) | 检查左操作数的值是否不小于右操作数的值,如果是,则条件为真。 | SELECT EmpName FROM Employee WHERE EmpSalary !< 2000输出: 史密斯 亨利 |
!>(不大于) | 检查左操作数的值是否不大于右操作数的值,如果是,则条件为真。 | SELECT EmpName FROM Employee WHERE EmpSalary !> 2000输出: – 约翰 |
SQL 逻辑运算符
逻辑运算符是用于逻辑运算的运算符。为了更好地理解逻辑运算符,我们将以 Employee 表为例,如下所示。
让我们以上表为例来了解逻辑运算符的用法。
操作 | 描述 | 例子 |
---|---|---|
ALL | ALL 运算符用于将一个值与另一组值中的所有值进行比较。 | SELECT EmpName FROM Employee WHERE EmpAge > ALL (SELECT EmpAge FROM Employee WHERE EmpSalary >= 2500);输出: 约翰· 史密斯 |
AND | AND 运算符允许在 SQL 语句的 WHERE 子句中使用多个条件。 | SELECT EmpName FROM Employee WHERE EmpSalary > 2000 and EmpAge > 28 输出: Henry |
ANY | ANY 运算符用于根据条件将值与列表中的任何适用值进行比较。 | SELECT EmpName FROM Employee WHERE EmpAge > ANY (SELECT EmpAge FROM Employee WHERE EmpSalary >= 2500); 输出: 约翰· 史密斯 |
BETWEEN | BETWEEN 运算符用于在给定最小值和最大值的情况下搜索范围内的值。 | SELECT EmpName FROM Employee WHERE EmpAge BETWEEN 25 AND 30; 输出: 史密斯 亨利 |
EXISTS | EXISTS 运算符用于搜索指定表中是否存在满足特定条件的行。 | SELECT EmpName FROM Employee WHERE EXISTS (SELECT EmpName FROM Employee WHERE EmpSalary >= 2500);输出: 史密斯 亨利 |
IN | IN 运算符用于将值与已指定的文字值列表进行比较。 | SELECT EmpName FROM Employee WHERE EmpSalary IN (2000, 2500);输出: 约翰· 史密斯 |
LIKE | LIKE 运算符用于使用通配符运算符将值与相似值进行比较。 | SELECT EmpName FROM Employee WHERE EmpName LIKE 'Jo%';输出: 约翰 |
NOT | NOT 运算符颠倒使用它的逻辑运算符的含义。 | SELECT EmpName FROM Employee WHERE EmpSalary IS NOT NULL输出: 约翰· 史密斯 ·亨利 |
OR | OR 运算符用于在一个 SQL 语句的 WHERE 子句中组合多个条件。 | SELECT EmpName FROM Employee WHERE EmpSalary > 2000 OR EmpName IS NOT NULL;输出: 约翰· 史密斯 ·亨利 |
IS NULL | IS NULL 运算符用于将值与 NULL 值进行比较。 | SELECT EmpName FROM Employee WHERE EmpSalary IS NULL; 输出:未 找到记录 |
UNIQUE | UNIQUE 运算符搜索指定表的每一行的唯一性 | SELECT UNIQUE(EmpName) FROM Employee WHERE EmpSalary IS NOT NULL;输出: 约翰· 史密斯 ·亨利 |
SQL 按位运算符
按位运算符是用于位数据的运算符。
操作员 | 描述 |
---|---|
& | 按位与运算符 |
| | 按位或运算符 |
^ | 按位异或运算符 |
<< | 左移运算符 |
>> | 右移运算符 |
这是一个简单的程序,显示了 sql 按位运算符的用法。
-- 27 = 11011
-- 19 = 10011
select 27 & 19; -- 10011
select 27 | 19; -- 11011
select 27 ^ 19; -- 00100
select 5 << 2; -- 101 to 10100 i.e. 20
select 17 >> 2; -- 10001 to 100 i.e. 4
简而言之,这就是 SQL 运算符的全部内容。