每个操作符都是一个保留字,主要用于在 SQL 语句的 WHERE 子句中执行各种操作,例如比较和算术运算等。
操作符在 SQL 语句中指定了条件,并可以将同一语句中的不同条件连接起来。
- 算术运算符
- 比较运算符
- 逻辑运算符
- 用于否定条件的运算符
SQL 算术运算符
这里一些有关 SQL 算术运算符如何使用的简单示例:
SQL> select 10+ 20;
+--------+
| 10+ 20 |
+--------+
| 30 |
+--------+
1 row in set (0.00 sec)
SQL> select 10 * 20;
+---------+
| 10 * 20 |
+---------+
| 200 |
+---------+
1 row in set (0.00 sec)
SQL> select 10 / 5;
+--------+
| 10 / 5 |
+--------+
| 2.0000 |
+--------+
1 row in set (0.03 sec)
SQL> select 12 % 5;
+---------+
| 12 % 5 |
+---------+
| 2 |
+---------+
1 row in set (0.00 sec)
假设变量 a 的值为 10, 变量 b 的值为 20,那么:
操作符 | 描述 | 示例 |
+ | 相加:将符号两边的数值加起来。 | a + b 得 30 |
- | 相减:从最边的操作数中减去右边的操作数。 | a - b 得 -10 |
* | 相乘:将两边的操作数相乘。 | a * b 得 200 |
/ | 相除:用右边的操作数除以左边的操作数。 | b / a 得 2 |
% | 取余:用右边的操作数除以左边的操作数,并返回余数。 | b % a 得 0 |
SQL 比较运算符
考虑 CUSTOMERS 表,表中的记录如下所示:
SQL> SELECT * FROM CUSTOMERS;
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
7 rows in set (0.00 sec)
下面是一些关于如何使用 SQL 比较运算符的简单示例:
SQL> SELECT * FROM CUSTOMERS WHERE SALARY > 5000;
+----+----------+-----+---------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+---------+----------+
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+---------+----------+
3 rows in set (0.00 sec)
SQL> SELECT * FROM CUSTOMERS WHERE SALARY = 2000;
+----+---------+-----+-----------+---------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+---------+-----+-----------+---------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
+----+---------+-----+-----------+---------+
2 rows in set (0.00 sec)
SQL> SELECT * FROM CUSTOMERS WHERE SALARY != 2000;
+----+----------+-----+---------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+---------+----------+
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+---------+----------+
5 rows in set (0.00 sec)
SQL> SELECT * FROM CUSTOMERS WHERE SALARY <> 2000;
+----+----------+-----+---------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+---------+----------+
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+---------+----------+
5 rows in set (0.00 sec)
SQL> SELECT * FROM CUSTOMERS WHERE SALARY >= 6500;
+----+----------+-----+---------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+---------+----------+
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+---------+----------+
3 rows in set (0.00 sec)
假设变量 a 的值为 10, 变量 b 的值为 20,那么:
操作符 | 描述 | 示例 |
= | 检查两个操作数的值是否相等,是的话返回 true。 | (a = b) 不为 true。 |
!= | 检查两个操作数的值是否相等,如果不等则返回 true。 | (a != b) 为 true。 |
检查两个操作数的值是否相等,如果不等则返回 true。 | (a b) 为真。 | |
> | 检查左边的操作数是否大于右边的操作数,是的话返回真。 | (a > b) 不为 true。 |
检查左边的操作数是否小于右边的操作数,是的话返回真。 | (a | |
>= | 检查左边的操作数是否大于或等于右边的操作数,是的话返回真。 | (a >= b) 不为 true。 |
检查左边的操作数是否小于或等于右边的操作数,是的话返回真。 | (a | |
! | 检查左边的操作数是否不小于右边的操作数,是的话返回真。 | (a ! |
!> | 检查左边的操作数是否不大于右边的操作数,是的话返回真。 | (a !> b) 为 true。 |
SQL 逻辑运算符
考虑 CUSTOMERS 表,表中的记录如下所示:
SQL> SELECT * FROM CUSTOMERS;
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
7 rows in set (0.00 sec)
下面是一些关于如何使用 SQL 逻辑运算符的简单示例: