SQL 运算符2024 年 8 月 29 日 | 阅读 24 分钟 每个数据库管理员和用户都使用 SQL 查询来操作和访问数据库表和视图的数据。 数据的操作和检索是通过保留字和字符来完成的,这些保留字和字符用于执行算术运算、逻辑运算、比较运算、复合运算等。 什么是 SQL 运算符?SQL 保留字和字符称为运算符,它们与 SQL 查询中的 WHERE 子句一起使用。在 SQL 中,运算符可以是单目运算符或双目运算符。单目运算符仅使用一个操作数来执行单目运算,而双目运算符使用两个操作数来执行双目运算。 单目 SQL 运算符语法 单目 SQL 运算符语法 注意:SQL 运算符用于在 SQL 语句中根据特定条件过滤表的数据。SQL 运算符的优先级是什么?SQL 运算符的优先级是 SQL 在同一表达式中计算不同运算符的顺序。结构化查询语言首先评估那些优先级高的运算符。 在下表中,顶部的运算符优先级最高,底部的运算符优先级最低。
例如, 在上面的 SQL 示例中,salary 被赋值为 5,而不是 85,因为 *(乘法) 运算符的优先级高于 -(减法)运算符,因此它首先与 3*5 相乘,然后从 20 中减去。 运算符类型SQL 运算符分为以下几类
让我们逐一讨论每种运算符及其类型。 SQL 算术运算符算术运算符对 SQL 表中的数值数据执行数学运算。这些运算符对数值操作数执行加法、减法、乘法和除法运算。 以下是 SQL 数据上执行的各种算术运算符
SQL 加法运算符 (+)SQL 中的加法运算符对数据库表的数值数据执行加法。在 SQL 中,通过将两个列名指定为第一个和第二个操作数,可以轻松地将同一表中两个列的数值相加。您还可以将数字添加到特定列的现有数字中。 SQL 加法运算符语法 让我们通过下面的示例来理解如何在 SQL 查询中执行加法运算符 此示例包含一个Employee_details表,该表有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_Monthlybonus。
在此查询中,我们对给定表的单个列执行了 SQL 加法运算。
在此查询中,我们将上表的两列相加。 SQL 减法运算符 (-)SQL 中的减法运算符对数据库表的数值数据执行减法。在 SQL 中,通过将两个列名指定为第一个和第二个操作数,可以轻松地将同一表中两个列的数值相减。您还可以将数字从特定表列的现有数字中减去。 SQL 减法运算符语法 让我们通过下面的示例来理解如何在 SQL 查询中执行减法运算符 此示例包含一个Employee_details表,该表有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_Monthlybonus。
在此查询中,我们对给定表的单个列执行了 SQL 减法运算。
SQL 乘法运算符 (*)SQL 中的乘法运算符对数据库表的数值数据执行乘法。在 SQL 中,通过将两个列名指定为第一个和第二个操作数,可以轻松地将同一表中两个列的数值相乘。 SQL 乘法运算符语法 让我们通过下面的示例来理解如何在 SQL 查询中执行乘法运算符 此示例包含一个Employee_details表,该表有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_Monthlybonus。
在此查询中,我们对给定表的单个列执行了 SQL 乘法运算。
在此查询中,我们使用 WHERE 子句将两个列的值相乘。 SQL 除法运算符 (/)SQL 中的除法运算符将左侧的操作数除以右侧的操作数。 SQL 除法运算符语法 在 SQL 中,我们还可以通过将两个列名指定为第一个和第二个操作数来将同一表中一个列的数值除以另一个列。 我们还可以对 SQL 表列中存储的数字执行除法运算。 让我们通过下面的示例来理解如何在 SQL 查询中执行除法运算符 此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, 和 Emp_Salary。
在此查询中,我们对给定表的单个列执行了 SQL 除法运算。 SQL 模运算符 (%)SQL 中的模运算符在左侧操作数除以右侧操作数时提供余数。 SQL 模运算符语法 让我们通过下面的示例来理解如何在 SQL 查询中执行模运算符 此示例包含一个Division表,该表有三列Number, First_operand, 和 Second_operand。
SQL 比较运算符比较运算符用于比较 SQL 表中的两个不同数据,并检查它们是否相同、大于或小于。SQL 比较运算符与 SQL 查询中的 WHERE 子句一起使用。 以下是 SQL 数据库表中执行的各种比较运算符
SQL 等于运算符 (=)此运算符在 SQL 查询中广泛使用。SQL 中的等于运算符仅显示与查询中指定值匹配的数据。 如果查询中指定的两个操作数的值匹配,则此运算符从数据库表中返回 TRUE 记录。 让我们通过下面的示例来理解如何在 SQL 查询中执行等于运算符 此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, 和 Emp_Salary。
在此示例中,我们使用带有 WHERE 子句的 SQL 等于运算符来获取工资为 30000 的员工记录。 SQL 不等于运算符 (!=)SQL 中的不等于运算符仅显示与查询指定值不匹配的数据。 如果查询中指定的两个操作数的值不匹配,则此运算符从数据库视图和表中返回记录或行。 让我们通过下面的示例来理解如何在 SQL 查询中执行不等于运算符 此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, 和 Emp_Salary。
在此示例中,我们使用带有 WHERE 子句的 SQL 不等于运算符来获取工资不是 45000 的员工记录。 SQL 大于运算符 (>)SQL 中的大于运算符仅显示大于右侧操作数的值的数据。 让我们通过下面的示例来理解如何在 SQL 查询中执行大于运算符 (>) 此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, 和 Emp_Salary。
在此,SQL 大于运算符显示表中员工 ID 大于 202 的员工记录。 SQL 大于等于运算符 (>=)SQL 中的大于等于运算符显示表中大于等于右侧操作数的值的数据。 让我们通过下面的示例来理解如何在 SQL 查询中执行大于等于运算符 (>=) 此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, 和 Emp_Salary。
在此,带有 WHERE 子句的'SQL 大于等于运算符'显示表中员工 ID 大于等于 202 的员工行。 SQL 小于运算符 (<)SQL 中的小于运算符仅显示小于右侧操作数的值的数据库表数据。 此比较运算符检查左侧操作数是否小于右侧操作数。如果条件为真,则此 SQL 运算符显示小于右侧操作数的值的数据。 让我们通过下面的示例来理解如何在 SQL 查询中执行小于运算符 (<) 此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, 和 Emp_Salary。
在此,带有 WHERE 子句的SQL 小于运算符显示表中员工 ID 小于 204 的员工记录。 SQL 小于等于运算符 (<=)SQL 中的小于等于运算符显示表中小于等于右侧操作数的值的数据。 此比较运算符检查左侧操作数是否小于等于右侧操作数。 让我们通过下面的示例来理解如何在 SQL 查询中执行小于等于运算符 (<=) 此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, 和 Emp_Salary。
在此,带有 WHERE 子句的 SQL小于等于运算符显示表中员工 ID 小于等于 202 的员工行。 SQL 逻辑运算符SQL 中的逻辑运算符执行布尔运算,返回True 和 False两个结果。如果两个操作数都满足逻辑条件,这些运算符将提供True值。 以下是 SQL 数据库表中执行的各种逻辑运算符
SQL ALL 运算符SQL 中的 ALL 运算符将指定值与 SQL 数据库中子查询的列的所有值进行比较。 此运算符始终与以下语句一起使用
ALL 运算符语法 让我们通过下面的示例来理解如何在 SQL 查询中执行 ALL 逻辑运算符 此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。
在这里,我们使用了SQL ALL 运算符和大于运算符。 SQL AND 运算符SQL 中的AND 运算符当 AND 运算符分隔的所有条件都计算为 True 时,将显示数据库表中的记录。它也称为联接运算符,并与 WHERE 子句一起使用。 AND 运算符语法 让我们通过下面的示例来理解如何在 SQL 查询中执行 AND 逻辑运算符 此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。
SQL OR 运算符SQL 中的 OR 运算符当 OR 运算符分隔的任何条件计算为 True 时,将显示表中的记录。它也称为联接运算符,并与 WHERE 子句一起使用。 OR 运算符语法 让我们通过下面的示例来理解如何在 SQL 查询中执行 OR 逻辑运算符 此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。
在这里,SQL OR 运算符与 WHERE 子句一起显示工资为 25000 或城市为 Delhi 的员工记录。 SQL BETWEEN 运算符SQL 中的BETWEEN 运算符显示 SQL 查询中提到的范围内的记录。此运算符作用于数字、字符和日期/时间操作数。 如果给定范围内没有值,则此运算符显示 NULL 值。 BETWEEN 运算符语法 让我们通过下面的示例来理解如何在 SQL 查询中执行 BETWEEN 逻辑运算符 此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。
在这里,我们使用了SQL BETWEEN 运算符和 Emp_Salary 字段。 SQL IN 运算符SQL 中的IN 运算符允许数据库用户在 WHERE 子句中指定两个或多个值。此逻辑运算符最大限度地减少了多个 OR 条件的需求。 此运算符使查询更易于学习和理解。此运算符返回其值与给定列表中的任何值匹配的行。 IN 运算符语法 让我们通过下面的示例来理解如何在 SQL 查询中执行 IN 逻辑运算符 此示例包含一个Employee_details表,该表有三列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。
在这里,我们使用了SQL IN 运算符和 Emp_Id 列。
在这里,我们使用了SQL NOT IN 运算符和 Emp_Id 列。 SQL NOT OperatorSQL 中的NOT 运算符当条件计算为 false 时,显示表中的记录。它总是与 WHERE 子句一起使用。 NOT 运算符语法 让我们通过下面的示例来理解如何在 SQL 查询中执行 NOT 逻辑运算符 此示例包含一个Employee_details表,该表有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。
在此示例中,我们使用了SQL NOT 运算符和 Emp_City 列。
在此示例中,我们使用了SQL NOT 运算符和 Emp_City 列。 SQL ANY 运算符SQL 中的ANY 运算符当子查询返回的任何值满足条件时,显示记录。 ANY 逻辑运算符必须匹配内部查询中的至少一条记录,并且必须在任何 SQL 比较运算符之前。 ANY 运算符语法 SQL LIKE 运算符SQL 中的LIKE 运算符显示表中与子查询中指定的模式匹配的记录。 百分号(%)符号是与此逻辑运算符一起使用的通配符。 此运算符在 WHERE 子句中与以下三个语句一起使用
LIKE 运算符语法 让我们通过下面的示例来理解如何在 SQL 查询中执行 LIKE 逻辑运算符 此示例包含一个Employee_details表,该表有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。
在此示例中,我们使用了SQL LIKE 运算符和 Emp_Name 列,因为我们想访问姓名以 s 开头的员工的记录。
SQL 集合运算符SQL 中的集合运算符组合来自两个或多个 SQL 数据库表的相似类型的数据。它将从两个或多个 SQL 查询中提取的结果混合到一个单一结果中。 集合运算符在一个查询中组合多个 SELECT 语句,并返回一个特定的结果集。 以下是针对存储在两个 SQL 数据库表中的相似数据执行的各种集合运算符
SQL Union 运算符SQL Union 运算符将两个或多个 SELECT 语句的结果合并,并提供单个输出。 与 UNION 运算符一起使用的每个 SELECT 语句的数据类型和列数必须相同。此运算符不在输出表中显示重复记录。 UNION 集合运算符语法 让我们通过下面的示例来理解如何在结构化查询语言中执行 Union 运算符 在此示例中,我们使用了两个表。两个表都有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。
表:Employee_details1
表:Employee_details2
SQL Union ALL 运算符SQL Union 运算符与 UNION 运算符相同,但唯一的区别是它也显示相同的记录。 UNION ALL 集合运算符语法 让我们通过下面的示例来理解如何在结构化查询语言中执行 Union ALL 运算符 在此示例中,我们使用了两个表。两个表都有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。
表:Employee_details1
表:Employee_details2
SQL Intersect 运算符SQL Intersect 运算符显示两个或多个 SELECT 语句中的公共记录。与 INTERSECT 运算符一起使用的每个 SELECT 语句的数据类型和列数必须相同。 INTERSECT 集合运算符语法 让我们通过下面的示例来理解如何在结构化查询语言中执行 INTERSECT 运算符 在此示例中,我们使用了两个表。两个表都有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。
表:Employee_details1
表:Employee_details2 假设我们想在单个输出中查看两个表中员工的公共记录。为此,我们必须在 SQL 中编写以下查询 SQL Minus 运算符SQL Minus 运算符将两个或多个 SELECT 语句的结果合并,并且仅显示第一个数据集的结果。 MINUS 运算符语法 让我们通过下面的示例来理解如何在结构化查询语言中执行 INTERSECT 运算符 在此示例中,我们使用了两个表。两个表都有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。
表:Employee_details1
表:Employee_details2 假设我们想在组合两个表之后,查看第一个结果集中的员工姓名。为此,我们必须在 SQL 中编写以下查询 SQL 单目运算符SQL 中的单目运算符对 SQL 表的单个数据执行单目运算,即这些运算符仅作用于一个操作数。 这些类型的运算符可以轻松地对 SQL 表的数值数据进行操作。 以下是 SQL 表中存储的数值数据上执行的各种单目运算符
SQL 正号运算符SQL 正号(+)运算符将 SQL 表的数值变为正值。 单目正号运算符语法 让我们通过下面的示例来理解如何在 SQL 表数据上执行正单目运算符 此示例包含一个Employee_details表,该表有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。
SQL 负号运算符SQL 负号(-)运算符将 SQL 表的数值变为负值。 单目负号运算符语法 让我们通过下面的示例来理解如何在 SQL 表数据上执行负单目运算符 此示例包含一个Employee_details表,该表有四列Emp_Id, Emp_Name, Emp_Salary, 和 Emp_City。
SQL 位非运算符SQL 位非运算符提供单个数值操作数的一补数。此运算符会翻转数值的每一位。如果任何数值的位是 001100,则此运算符将其翻转为 110011。 位非运算符语法 让我们通过下面的示例来理解如何在 SQL 表数据上执行位非运算符 此示例包含一个Student_details表,该表有四列Roll_No, Stu_Name, Stu_Marks, 和 Stu_City。
如果我们想对Student_details的 marks 列执行位非运算符,我们必须在 SQL 中编写以下查询 SQL 位运算符SQL 中的位运算符对整数值执行位运算。要理解位运算符的性能,您只需要了解布尔代数的基础知识。 以下是存储在 SQL 数据库表中的数据上执行的两个重要逻辑运算符
按位与 (&)按位与运算符对给定的整数值执行逻辑与运算。此运算符将一个值的每一位与另一个值的相应位进行比较。 按位与运算符语法 让我们通过下面的示例来理解如何在 SQL 表数据上执行按位与运算符 此示例包含以下表,该表有两列。每列存储数值。 当我们在 SQL 中使用按位与运算符时,SQL 会将两列的值转换为二进制格式,并在转换后的位上执行与运算。 之后,SQL 将结果位转换为用户可理解的格式,即十进制格式。
按位或 (|)按位或运算符对给定的整数值执行逻辑或运算。此运算符将一个值的每一位与另一个值的相应位进行比较。 按位或运算符语法 让我们通过下面的示例来理解如何在 SQL 表数据上执行按位或运算符 此示例包含一个表,该表有两列。每列存储数值。 当我们在 SQL 中使用按位或运算符时,SQL 会将两列的值转换为二进制格式,并在二进制位上执行或运算。之后,SQL 将结果二进制位转换为用户可理解的格式,即十进制格式。
下一个主题SQL 创建数据库 |
我们请求您订阅我们的新闻通讯以获取最新更新。