Mysql运算:运算符
发布时间: 2024-04-30 16:09:37 阅读量: 97 订阅数: 97
![Mysql运算:运算符](https://img-blog.csdnimg.cn/direct/20a9509abbe04c61909b3c5177f6dd51.png)
# 1. MySQL运算基础**
MySQL提供了一系列运算符,用于执行各种类型的计算和比较。这些运算符可以分为算术运算符、比较运算符、逻辑运算符、字符串运算符和日期和时间运算符。本章将介绍MySQL运算符的基础知识,包括它们的语法、优先级和使用场景。
# 2. 算术运算符
算术运算符用于执行数字上的算术运算。MySQL支持多种算术运算符,包括加、减、乘、除和模。
### 2.1 加减乘除运算符
#### 2.1.1 基本运算符的使用
加号(+)、减号(-)、乘号(*)和除号(/)是基本的算术运算符。它们用于执行相应的算术运算。例如:
```sql
SELECT 10 + 5; -- 输出:15
SELECT 10 - 5; -- 输出:5
SELECT 10 * 5; -- 输出:50
SELECT 10 / 5; -- 输出:2
```
#### 2.1.2 运算优先级和结合性
算术运算符具有不同的优先级和结合性。优先级决定了运算符的执行顺序,结合性决定了运算符如何组合。
运算符的优先级从高到低为:
1. 乘法和除法
2. 加法和减法
运算符的结合性为:
1. 乘法和除法从左到右结合
2. 加法和减法从左到右结合
例如:
```sql
SELECT 10 + 5 * 2; -- 输出:20(乘法优先级高于加法)
SELECT (10 + 5) * 2; -- 输出:30(括号改变了运算顺序)
```
### 2.2 除法运算符
MySQL支持两种除法运算符:整数除法(/)和浮点数除法(DIV)。
#### 2.2.1 整数除法和浮点数除法
整数除法(/)对两个整数进行除法运算,并返回一个整数结果。例如:
```sql
SELECT 10 / 5; -- 输出:2
```
浮点数除法(DIV)对两个数字进行除法运算,并返回一个浮点数结果。例如:
```sql
SELECT 10 DIV 5; -- 输出:2.0
```
#### 2.2.2 ROUND()和TRUNCATE()函数
ROUND()和TRUNCATE()函数可用于对浮点数除法结果进行舍入或截断。
ROUND()函数将数字舍入到指定的位数。例如:
```sql
SELECT ROUND(10.5, 1); -- 输出:10.5
```
TRUNCATE()函数将数字截断到指定的位数。例如:
```sql
SELECT TRUNCATE(10.5, 1); -- 输出:10.0
```
### 2.3 模运算符
模运算符(%)用于计算两个数字相除后的余数。例如:
```sql
SELECT 10 % 3; -- 输出:1
```
模运算符可用于检查数字是否为偶数或奇数。例如:
```sql
SELECT CASE
WHEN 10 % 2 = 0 THEN '偶数'
ELSE '奇数'
END; -- 输出:'偶数'
```
# 3.1 等值运算符
#### 3.1.1 = 和 <> 运算符
等值运算符 `=` 和 `<>` 用于比较两个表达式的值是否相等。`=` 运算符返回 true,如果两个表达式相等,否则返回 false。`<>` 运算符返回 true,如果两个表达式不相等,否则返回 false。
**语法:**
```sql
expression1 = expression2
expression1 <> expression2
```
**参数:**
* `expression1`:要比较的第一个表达式。
* `expression2`:要比较的第二个表达式。
**示例:**
```sql
SELECT * FROM users WHERE username = 'john';
SELECT * FROM products WHERE price <> 100;
```
#### 3.1.2 NULL值的比较
当比较涉及 NULL 值时,需要特殊处理。NULL 值表示一个未知或缺失的值,它不能与任何其他值相等。因此,比较 NULL 值总是返回 NULL。
**示例:**
```sql
SELECT * FROM users WHERE username = NULL; -- 返回 NULL
SELECT * FROM products WHERE price <> NULL; -- 返回 NULL
```
为了处理 NULL 值的比较,可以使用 IS NULL 和 IS NOT NULL 运算符。
**语法:**
```sql
expression IS NULL
expression IS NOT NULL
```
**参数:**
* `expression`:要检查的表达式。
**示例:**
```sql
SELECT * FROM users WHERE username IS NULL; -- 返回所有用户名为 NULL 的用户
SELECT * FROM products WHERE price IS NOT NULL; -- 返回所有价格不为 NULL 的产品
```
### 3.2 顺序运算符
#### 3.2.1 <、>、<= 和 >= 运算符
顺序运算符 `<`、`>`、`<=` 和 `>=` 用于比较两个表达式的值的大小。这些运算符返回 true,如果第一个表达式的值小于、大于、小于或等于第二个表达式的值,否则返回 false。
**语法:**
```
```
0
0