SQL 运算符

2024 年 8 月 29 日 | 阅读 24 分钟

每个数据库管理员和用户都使用 SQL 查询来操作和访问数据库表和视图的数据。

数据的操作和检索是通过保留字和字符来完成的,这些保留字和字符用于执行算术运算、逻辑运算、比较运算、复合运算等。

什么是 SQL 运算符?

SQL 保留字和字符称为运算符,它们与 SQL 查询中的 WHERE 子句一起使用。在 SQL 中,运算符可以是单目运算符或双目运算符。单目运算符仅使用一个操作数来执行单目运算,而双目运算符使用两个操作数来执行双目运算。

单目 SQL 运算符语法

单目 SQL 运算符语法

注意:SQL 运算符用于在 SQL 语句中根据特定条件过滤表的数据。

SQL 运算符的优先级是什么?

SQL 运算符的优先级是 SQL 在同一表达式中计算不同运算符的顺序。结构化查询语言首先评估那些优先级高的运算符。

在下表中,顶部的运算符优先级最高,底部的运算符优先级最低。

SQL 运算符符号运算符
**幂运算符
+, -标识运算符、求反运算符
*, /乘法运算符、除法运算符
+, -, ||加法(加号)运算符、减法(减号)运算符、字符串连接运算符
=, !=, <, >, <=, >=, IS NULL, LIKE, BETWEEN, IN比较运算符
NOT逻辑非运算符
&& 或 AND联接运算符
包含运算符

例如,

在上面的 SQL 示例中,salary 被赋值为 5,而不是 85,因为 *(乘法)

运算符的优先级高于 -(减法)运算符,因此它首先与 3*5 相乘,然后从 20 中减去。

运算符类型

SQL 运算符分为以下几类

  1. SQL 算术运算符
  2. SQL 比较运算符
  3. SQL 逻辑运算符
  4. SQL 集合运算符
  5. SQL 位运算符
  6. SQL 单目运算符

让我们逐一讨论每种运算符及其类型。

SQL 算术运算符

算术运算符对 SQL 表中的数值数据执行数学运算。这些运算符对数值操作数执行加法、减法、乘法和除法运算。

以下是 SQL 数据上执行的各种算术运算符

  1. SQL 加法运算符 (+)
  2. SQL 减法运算符 (-)
  3. SQL 乘法运算符 (+)
  4. SQL 除法运算符 (-)
  5. SQL 模运算符 (+)

SQL 加法运算符 (+)

SQL 中的加法运算符对数据库表的数值数据执行加法。在 SQL 中,通过将两个列名指定为第一个和第二个操作数,可以轻松地将同一表中两个列的数值相加。您还可以将数字添加到特定列的现有数字中。

SQL 加法运算符语法

让我们通过下面的示例来理解如何在 SQL 查询中执行加法运算符

此示例包含一个Employee_details表,该表有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_Monthlybonus。

员工 ID员工姓名员工工资员工月度奖金
101Tushar250004000
102Anuj30000200
  • 假设我们想在表中指定的每位员工的工资上增加20,000。然后,我们必须在 SQL 中编写以下查询

在此查询中,我们对给定表的单个列执行了 SQL 加法运算。

  • 假设我们想将上表的 Salary 和 monthly bonus 列相加,那么我们必须在 SQL 中编写以下查询

在此查询中,我们将上表的两列相加。

SQL 减法运算符 (-)

SQL 中的减法运算符对数据库表的数值数据执行减法。在 SQL 中,通过将两个列名指定为第一个和第二个操作数,可以轻松地将同一表中两个列的数值相减。您还可以将数字从特定表列的现有数字中减去。

SQL 减法运算符语法

让我们通过下面的示例来理解如何在 SQL 查询中执行减法运算符

此示例包含一个Employee_details表,该表有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_Monthlybonus。

员工 ID员工姓名员工工资滞纳金/罚款
201Abhay25000200
202Sumit30000500
  • 假设我们想从Employee_details表中的每位员工的工资中减去 5,000。然后,我们必须在 SQL 中编写以下查询

在此查询中,我们对给定表的单个列执行了 SQL 减法运算。

  • 如果我们要从每位员工的工资中减去罚款,那么我们必须在 SQL 中编写以下查询

SQL 乘法运算符 (*)

SQL 中的乘法运算符对数据库表的数值数据执行乘法。在 SQL 中,通过将两个列名指定为第一个和第二个操作数,可以轻松地将同一表中两个列的数值相乘。

SQL 乘法运算符语法

让我们通过下面的示例来理解如何在 SQL 查询中执行乘法运算符

此示例包含一个Employee_details表,该表有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_Monthlybonus。

员工 ID员工姓名员工工资滞纳金/罚款
201Abhay25000200
202Sumit30000500
  • 假设我们想将Employee_details表中每位员工的工资加倍。然后,我们必须在 SQL 中编写以下查询

在此查询中,我们对给定表的单个列执行了 SQL 乘法运算。

  • 如果我们想将Emp_Id列乘以Emp_Salary列,其中Emp_Id202,那么我们必须在 SQL 中编写以下查询

在此查询中,我们使用 WHERE 子句将两个列的值相乘。

SQL 除法运算符 (/)

SQL 中的除法运算符将左侧的操作数除以右侧的操作数。

SQL 除法运算符语法

在 SQL 中,我们还可以通过将两个列名指定为第一个和第二个操作数来将同一表中一个列的数值除以另一个列。

我们还可以对 SQL 表列中存储的数字执行除法运算。

让我们通过下面的示例来理解如何在 SQL 查询中执行除法运算符

此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, 和 Emp_Salary。

员工 ID员工姓名员工工资
201Abhay25000
202Sumit30000
  • 假设我们想将 Employee_details 表中每位员工的工资减半。对于此操作,我们必须在 SQL 中编写以下查询

在此查询中,我们对给定表的单个列执行了 SQL 除法运算。

SQL 模运算符 (%)

SQL 中的模运算符在左侧操作数除以右侧操作数时提供余数。

SQL 模运算符语法

让我们通过下面的示例来理解如何在 SQL 查询中执行模运算符

此示例包含一个Division表,该表有三列Number, First_operand, 和 Second_operand。

数字第一操作数第二操作数
1564
2328
3899
41810
5105
  • 如果我们想通过将 First_operand 列中的数字除以 Second_operand 列中的数字来获得余数,那么我们必须在 SQL 中编写以下查询

SQL 比较运算符

比较运算符用于比较 SQL 表中的两个不同数据,并检查它们是否相同、大于或小于。SQL 比较运算符与 SQL 查询中的 WHERE 子句一起使用。

以下是 SQL 数据库表中执行的各种比较运算符

  1. SQL 等于运算符 (=)
  2. SQL 不等于运算符 (!=)
  3. SQL 大于运算符 (>)
  4. SQL 大于等于运算符 (>=)
  5. SQL 小于运算符 (<)\
  6. SQL 小于等于运算符 (<=)

SQL 等于运算符 (=)

此运算符在 SQL 查询中广泛使用。SQL 中的等于运算符仅显示与查询中指定值匹配的数据。

如果查询中指定的两个操作数的值匹配,则此运算符从数据库表中返回 TRUE 记录。

让我们通过下面的示例来理解如何在 SQL 查询中执行等于运算符

此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, 和 Emp_Salary。

员工 ID员工姓名员工工资
201Abhay30000
202Ankit40000
203Bheem30000
204Ram29000
205Sumit30000
  • 假设我们想从Employee_details表中访问所有工资为 30000 的员工记录。然后,我们必须在 SQL 数据库中编写以下查询

在此示例中,我们使用带有 WHERE 子句的 SQL 等于运算符来获取工资为 30000 的员工记录。

SQL 不等于运算符 (!=)

SQL 中的不等于运算符仅显示与查询指定值不匹配的数据。

如果查询中指定的两个操作数的值不匹配,则此运算符从数据库视图和表中返回记录或行。

让我们通过下面的示例来理解如何在 SQL 查询中执行不等于运算符

此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, 和 Emp_Salary。

员工 ID员工姓名员工工资
201Abhay45000
202Ankit45000
203Bheem30000
204Ram29000
205Sumit29000
  • 假设我们想从Employee_details表中访问所有工资不是 45000 的员工记录。然后,我们必须在 SQL 数据库中编写以下查询

在此示例中,我们使用带有 WHERE 子句的 SQL 不等于运算符来获取工资不是 45000 的员工记录。

SQL 大于运算符 (>)

SQL 中的大于运算符仅显示大于右侧操作数的值的数据。

让我们通过下面的示例来理解如何在 SQL 查询中执行大于运算符 (>)

此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, 和 Emp_Salary。

员工 ID员工姓名员工工资
201Abhay45000
202Ankit45000
203Bheem30000
204Ram29000
205Sumit29000
  • 假设我们想从Employee_details表中访问所有员工 ID 大于 202 的员工记录。然后,我们必须在 SQL 数据库中编写以下查询

在此,SQL 大于运算符显示表中员工 ID 大于 202 的员工记录。

SQL 大于等于运算符 (>=)

SQL 中的大于等于运算符显示表中大于等于右侧操作数的值的数据。

让我们通过下面的示例来理解如何在 SQL 查询中执行大于等于运算符 (>=)

此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, 和 Emp_Salary。

员工 ID员工姓名员工工资
201Abhay45000
202Ankit45000
203Bheem30000
204Ram29000
205Sumit29000
  • 假设我们想从Employee_details表中访问所有员工 ID 大于等于 202 的员工记录。为此,我们必须在 SQL 数据库中编写以下查询

在此,带有 WHERE 子句的'SQL 大于等于运算符'显示表中员工 ID 大于等于 202 的员工行。

SQL 小于运算符 (<)

SQL 中的小于运算符仅显示小于右侧操作数的值的数据库表数据。

此比较运算符检查左侧操作数是否小于右侧操作数。如果条件为真,则此 SQL 运算符显示小于右侧操作数的值的数据。

让我们通过下面的示例来理解如何在 SQL 查询中执行小于运算符 (<)

此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, 和 Emp_Salary。

员工 ID员工姓名员工工资
201Abhay45000
202Ankit45000
203Bheem30000
204Ram29000
205Sumit29000
  • 假设我们想从Employee_details表中访问所有员工 ID 小于 204 的员工记录。为此,我们必须在 SQL 数据库中编写以下查询

在此,带有 WHERE 子句的SQL 小于运算符显示表中员工 ID 小于 204 的员工记录。

SQL 小于等于运算符 (<=)

SQL 中的小于等于运算符显示表中小于等于右侧操作数的值的数据。

此比较运算符检查左侧操作数是否小于等于右侧操作数。

让我们通过下面的示例来理解如何在 SQL 查询中执行小于等于运算符 (<=)

此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, 和 Emp_Salary。

员工 ID员工姓名员工工资
201Abhay45000
202Ankit45000
203Bheem30000
204Ram29000
205Sumit29000
  • 假设我们想从Employee_details表中访问所有员工 ID 小于等于203 的员工记录。为此,我们必须在 SQL 数据库中编写以下查询

在此,带有 WHERE 子句的 SQL小于等于运算符显示表中员工 ID 小于等于 202 的员工行。

SQL 逻辑运算符

SQL 中的逻辑运算符执行布尔运算,返回True 和 False两个结果。如果两个操作数都满足逻辑条件,这些运算符将提供True值。

以下是 SQL 数据库表中执行的各种逻辑运算符

  1. SQL ALL 运算符
  2. SQL AND 运算符
  3. SQL OR 运算符
  4. SQL BETWEEN 运算符
  5. SQL IN 运算符
  6. SQL NOT 运算符
  7. SQL ANY 运算符
  8. SQL LIKE 运算符

SQL ALL 运算符

SQL 中的 ALL 运算符将指定值与 SQL 数据库中子查询的列的所有值进行比较。

此运算符始终与以下语句一起使用

  1. SELECT,
  2. HAVING, and
  3. WHERE。

ALL 运算符语法

让我们通过下面的示例来理解如何在 SQL 查询中执行 ALL 逻辑运算符

此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。

员工 ID员工姓名员工工资员工所在城市
201Abhay25000Gurgaon
202Ankit45000德里
203Bheem30000斋浦尔
204Ram29000孟买
205Sumit40000加尔各答
  • 如果我们想从表中获取那些工资高于居住在 Jaipur 市的员工的员工 ID 和员工姓名。然后,我们必须在 SQL 中键入以下查询。

在这里,我们使用了SQL ALL 运算符和大于运算符。

SQL AND 运算符

SQL 中的AND 运算符当 AND 运算符分隔的所有条件都计算为 True 时,将显示数据库表中的记录。它也称为联接运算符,并与 WHERE 子句一起使用。

AND 运算符语法

让我们通过下面的示例来理解如何在 SQL 查询中执行 AND 逻辑运算符

此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。

员工 ID员工姓名员工工资员工所在城市
201Abhay25000德里
202Ankit45000昌迪加尔
203Bheem30000德里
204Ram25000德里
205Sumit40000加尔各答
  • 假设我们想从Employee_details表中访问所有工资为 25000 且城市为 Delhi 的员工记录。为此,我们必须在 SQL 中编写以下查询

    在这里,SQL AND 运算符与 WHERE 子句一起显示工资为 25000 且城市为 Delhi 的员工记录。

SQL OR 运算符

SQL 中的 OR 运算符当 OR 运算符分隔的任何条件计算为 True 时,将显示表中的记录。它也称为联接运算符,并与 WHERE 子句一起使用。

OR 运算符语法

让我们通过下面的示例来理解如何在 SQL 查询中执行 OR 逻辑运算符

此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。

员工 ID员工姓名员工工资员工所在城市
201Abhay25000德里
202Ankit45000昌迪加尔
203Bheem30000德里
204Ram25000德里
205Sumit40000加尔各答
  • 如果我们想从Employee_details表中访问所有工资为 25000 或城市为 Delhi 的员工记录。为此,我们必须在 SQL 中编写以下查询

在这里,SQL OR 运算符与 WHERE 子句一起显示工资为 25000 或城市为 Delhi 的员工记录。

SQL BETWEEN 运算符

SQL 中的BETWEEN 运算符显示 SQL 查询中提到的范围内的记录。此运算符作用于数字、字符和日期/时间操作数。

如果给定范围内没有值,则此运算符显示 NULL 值。

BETWEEN 运算符语法

让我们通过下面的示例来理解如何在 SQL 查询中执行 BETWEEN 逻辑运算符

此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。

员工 ID员工姓名员工工资员工所在城市
201Abhay25000德里
202Ankit45000昌迪加尔
203Bheem30000德里
204Ram25000德里
205Sumit40000加尔各答
  • 假设我们想从Employee_details表中访问所有工资在 20000 到 40000 之间的员工的所有信息。为此,我们必须在 SQL 中编写以下查询

在这里,我们使用了SQL BETWEEN 运算符和 Emp_Salary 字段。

SQL IN 运算符

SQL 中的IN 运算符允许数据库用户在 WHERE 子句中指定两个或多个值。此逻辑运算符最大限度地减少了多个 OR 条件的需求。

此运算符使查询更易于学习和理解。此运算符返回其值与给定列表中的任何值匹配的行。

IN 运算符语法

让我们通过下面的示例来理解如何在 SQL 查询中执行 IN 逻辑运算符

此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。

员工 ID员工姓名员工工资员工所在城市
201Abhay25000德里
202Ankit45000昌迪加尔
203Bheem30000德里
204Ram25000德里
205Sumit40000加尔各答
  • 假设我们想显示Employee_details表中Employee Id为 202、204 和 205 的所有员工的所有信息。为此,我们必须在 SQL 中编写以下查询

在这里,我们使用了SQL IN 运算符和 Emp_Id 列。

  • 假设我们想显示Employee_details表中Employee Id不等于 202 和 205 的所有员工的所有信息。为此,我们必须在 SQL 中编写以下查询

在这里,我们使用了SQL NOT IN 运算符和 Emp_Id 列。

SQL NOT Operator

SQL 中的NOT 运算符当条件计算为 false 时,显示表中的记录。它总是与 WHERE 子句一起使用。

NOT 运算符语法

让我们通过下面的示例来理解如何在 SQL 查询中执行 NOT 逻辑运算符

此示例包含一个Employee_details表,该表有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。

员工 ID员工姓名员工工资员工所在城市
201Abhay25000德里
202Ankit45000昌迪加尔
203Bheem30000德里
204Ram25000德里
205Sumit40000加尔各答
  • 假设我们想显示Employee_details表中所有城市不是 Delhi 的员工的所有信息。为此,我们必须在 SQL 中编写以下查询

在此示例中,我们使用了SQL NOT 运算符和 Emp_City 列。

  • 假设我们想显示Employee_details表中所有城市不是 Delhi 和 Chandigarh 的员工的所有信息。为此,我们必须在 SQL 中编写以下查询

在此示例中,我们使用了SQL NOT 运算符和 Emp_City 列。

SQL ANY 运算符

SQL 中的ANY 运算符当子查询返回的任何值满足条件时,显示记录。

ANY 逻辑运算符必须匹配内部查询中的至少一条记录,并且必须在任何 SQL 比较运算符之前。

ANY 运算符语法

SQL LIKE 运算符

SQL 中的LIKE 运算符显示表中与子查询中指定的模式匹配的记录。

百分号(%)符号是与此逻辑运算符一起使用的通配符。

此运算符在 WHERE 子句中与以下三个语句一起使用

  1. SELECT 语句
  2. UPDATE 语句
  3. DELETE 语句

LIKE 运算符语法

让我们通过下面的示例来理解如何在 SQL 查询中执行 LIKE 逻辑运算符

此示例包含一个Employee_details表,该表有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。

员工 ID员工姓名员工工资员工所在城市
201Sanjay25000德里
202Ajay45000昌迪加尔
203Saket30000德里
204Abhay25000德里
205Sumit40000加尔各答
  • 如果我们想显示Employee_details表中所有姓名以 ''s'' 开头的员工的所有信息。为此,我们必须在 SQL 中编写以下查询

在此示例中,我们使用了SQL LIKE 运算符和 Emp_Name 列,因为我们想访问姓名以 s 开头的员工的记录。

  • 如果我们想显示Employee_details表中所有姓名以 ''y'' 结尾的员工的所有信息。为此,我们必须在 SQL 中编写以下查询
  • 如果我们想显示Employee_details表中所有姓名以 ''S'' 开头并以 ''y'' 结尾的员工的所有信息。为此,我们必须在 SQL 中编写以下查询

SQL 集合运算符

SQL 中的集合运算符组合来自两个或多个 SQL 数据库表的相似类型的数据。它将从两个或多个 SQL 查询中提取的结果混合到一个单一结果中。

集合运算符在一个查询中组合多个 SELECT 语句,并返回一个特定的结果集。

以下是针对存储在两个 SQL 数据库表中的相似数据执行的各种集合运算符

  1. SQL Union 运算符
  2. SQL Union ALL 运算符
  3. SQL Intersect 运算符
  4. SQL Minus 运算符

SQL Union 运算符

SQL Union 运算符将两个或多个 SELECT 语句的结果合并,并提供单个输出。

与 UNION 运算符一起使用的每个 SELECT 语句的数据类型和列数必须相同。此运算符不在输出表中显示重复记录。

UNION 集合运算符语法

让我们通过下面的示例来理解如何在结构化查询语言中执行 Union 运算符

在此示例中,我们使用了两个表。两个表都有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。

员工 ID员工姓名员工工资员工所在城市
201Sanjay25000德里
202Ajay45000德里
203Saket30000Aligarh

表:Employee_details1

员工 ID员工姓名员工工资员工所在城市
203Saket30000Aligarh
204Saurabh40000德里
205Ram30000喀拉拉邦
201Sanjay25000德里

表:Employee_details2

  • 假设我们想在单个输出中查看两个表中每位员工的员工姓名和员工 ID。为此,我们必须在 SQL 中编写以下查询

SQL Union ALL 运算符

SQL Union 运算符与 UNION 运算符相同,但唯一的区别是它也显示相同的记录。

UNION ALL 集合运算符语法

让我们通过下面的示例来理解如何在结构化查询语言中执行 Union ALL 运算符

在此示例中,我们使用了两个表。两个表都有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。

员工 ID员工姓名员工工资员工所在城市
201Sanjay25000德里
202Ajay45000德里
203Saket30000Aligarh

表:Employee_details1

员工 ID员工姓名员工工资员工所在城市
203Saket30000Aligarh
204Saurabh40000德里
205Ram30000喀拉拉邦
201Sanjay25000德里

表:Employee_details2

  • 如果我们想在单个输出中查看两个表中每位员工的员工姓名。为此,我们必须在 SQL 中编写以下查询

SQL Intersect 运算符

SQL Intersect 运算符显示两个或多个 SELECT 语句中的公共记录。与 INTERSECT 运算符一起使用的每个 SELECT 语句的数据类型和列数必须相同。

INTERSECT 集合运算符语法

让我们通过下面的示例来理解如何在结构化查询语言中执行 INTERSECT 运算符

在此示例中,我们使用了两个表。两个表都有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。

员工 ID员工姓名员工工资员工所在城市
201Sanjay25000德里
202Ajay45000德里
203Saket30000Aligarh

表:Employee_details1

员工 ID员工姓名员工工资员工所在城市
203Saket30000Aligarh
204Saurabh40000德里
205Ram30000喀拉拉邦
201Sanjay25000德里

表:Employee_details2

假设我们想在单个输出中查看两个表中员工的公共记录。为此,我们必须在 SQL 中编写以下查询

SQL Minus 运算符

SQL Minus 运算符将两个或多个 SELECT 语句的结果合并,并且仅显示第一个数据集的结果。

MINUS 运算符语法

让我们通过下面的示例来理解如何在结构化查询语言中执行 INTERSECT 运算符

在此示例中,我们使用了两个表。两个表都有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。

员工 ID员工姓名员工工资员工所在城市
201Sanjay25000德里
202Ajay45000德里
203Saket30000Aligarh

表:Employee_details1

员工 ID员工姓名员工工资员工所在城市
203Saket30000Aligarh
204Saurabh40000德里
205Ram30000喀拉拉邦
201Sanjay25000德里

表:Employee_details2

假设我们想在组合两个表之后,查看第一个结果集中的员工姓名。为此,我们必须在 SQL 中编写以下查询

SQL 单目运算符

SQL 中的单目运算符对 SQL 表的单个数据执行单目运算,即这些运算符仅作用于一个操作数。

这些类型的运算符可以轻松地对 SQL 表的数值数据进行操作。

以下是 SQL 表中存储的数值数据上执行的各种单目运算符

  1. SQL 正号运算符
  2. SQL 负号运算符
  3. SQL 位非运算符

SQL 正号运算符

SQL 正号(+)运算符将 SQL 表的数值变为正值。

单目正号运算符语法

让我们通过下面的示例来理解如何在 SQL 表数据上执行正单目运算符

此示例包含一个Employee_details表,该表有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。

员工 ID员工姓名员工工资员工所在城市
201Sanjay25000德里
202Ajay45000昌迪加尔
203Saket30000德里
204Abhay25000德里
205Sumit40000加尔各答
  • 假设我们想在 Employee_details 表中查看每位员工的工资为正。为此,我们必须在 SQL 中编写以下查询

SQL 负号运算符

SQL 负号(-)运算符将 SQL 表的数值变为负值。

单目负号运算符语法

让我们通过下面的示例来理解如何在 SQL 表数据上执行负单目运算符

此示例包含一个Employee_details表,该表有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。

员工 ID员工姓名员工工资员工所在城市
201Sanjay25000德里
202Ajay45000昌迪加尔
203Saket30000德里
204Abhay25000德里
205Sumit40000加尔各答
  • 假设我们想在 Employee_details 表中查看每位员工的工资为负。为此,我们必须在 SQL 中编写以下查询
  • 假设我们想在 Employee_details 表中查看城市为 Kolkatain 的员工的工资为负。为此,我们必须在 SQL 中编写以下查询

SQL 位非运算符

SQL 位非运算符提供单个数值操作数的一补数。此运算符会翻转数值的每一位。如果任何数值的位是 001100,则此运算符将其翻转为 110011。

位非运算符语法

让我们通过下面的示例来理解如何在 SQL 表数据上执行位非运算符

此示例包含一个Student_details表,该表有四列Roll_No, Stu_Name, Stu_Marks, 和 Stu_City。

员工 ID学生姓名学生分数学生城市
101Sanjay85德里
102Ajay97昌迪加尔
103Saket45德里
104Abhay68德里
105Sumit60加尔各答

如果我们想对Student_details的 marks 列执行位非运算符,我们必须在 SQL 中编写以下查询

SQL 位运算符

SQL 中的位运算符对整数值执行位运算。要理解位运算符的性能,您只需要了解布尔代数的基础知识。

以下是存储在 SQL 数据库表中的数据上执行的两个重要逻辑运算符

  1. 按位与 (&)
  2. 按位或 (|)

按位与 (&)

按位与运算符对给定的整数值执行逻辑与运算。此运算符将一个值的每一位与另一个值的相应位进行比较。

按位与运算符语法

让我们通过下面的示例来理解如何在 SQL 表数据上执行按位与运算符

此示例包含以下表,该表有两列。每列存储数值。

当我们在 SQL 中使用按位与运算符时,SQL 会将两列的值转换为二进制格式,并在转换后的位上执行与运算。

之后,SQL 将结果位转换为用户可理解的格式,即十进制格式。

列 1列 2
11
25
34
42
53
  • 假设我们想对上表中两列执行按位与运算符。为此,我们必须在 SQL 中编写以下查询

按位或 (|)

按位或运算符对给定的整数值执行逻辑或运算。此运算符将一个值的每一位与另一个值的相应位进行比较。

按位或运算符语法

让我们通过下面的示例来理解如何在 SQL 表数据上执行按位或运算符

此示例包含一个表,该表有两列。每列存储数值。

当我们在 SQL 中使用按位或运算符时,SQL 会将两列的值转换为二进制格式,并在二进制位上执行或运算。之后,SQL 将结果二进制位转换为用户可理解的格式,即十进制格式。

列 1列 2
11
25
34
42
53
  • 假设我们想对上表中两列执行按位或运算符。为此,我们必须在 SQL 中编写以下查询

下一个主题SQL 创建数据库