SQL运算符和函数
MySQL的SQL运算符和函数是数据库查询和操作的重要组成部分。它们用于执行各种任务,包括数据检索、转换、比较和计算。
一、SQL运算符:
算数运算符:用于执行数值计算。
- 加法( ):用于将两个或多个数值相加。
- 减法(-):用于从一个数值中减去另一个数值。
- 乘法(*):用于将两个或多个数值相乘。
- 除法(/):用于将一个数值除以另一个数值。
- 模(%或MOD):用于求两个数相除的余数。
SELECT 2 3; -- 结果为5
SELECT 10 % 3; -- 结果为1
比较运算符:用于比较两个值并返回布尔值。
- 等于(=):检查两个值是否相等。
- 不等于(<>或!=):检查两个值是否不相等。
- 大于(>)、大于等于(>=)、小于(<)、小于等于(<=):用于比较数值的大小关系。
- 安全等于(<=>):比较时忽略NULL值。
- 安全等于(比较时忽略NULL)例如:
SELECT 10 > 5; -- 结果为真(1)
SELECT 'apple' <> 'banana'; -- 结果为真(1)
逻辑运算符:用于组合多个条件。
- 逻辑与(AND或&&):当所有条件为真时,返回真。
- 逻辑或(OR或||):当至少一个条件为真时,返回真。
- 逻辑非(NOT):反转条件的真假。
SELECT 1 = 1 AND 2 = 2; -- 结果为真(1)
SELECT NOT (1 = 0); -- 结果为真(1)
位运算符:用于对二进制数进行操作。
主要用于对二进制数进行操作,如位与、位或、位异或和位非等。
- 位与:
&
- 位或:
|
- 位异或:
^
- 位非:
~
例如:
SELECT 6 & 3; -- 结果为2
其他运算符:如 BETWEEN
, IN
, IS NULL
, IS NOT NULL
, LIKE
, REGEXP
等,用于更复杂的条件查询。例如:
代码语言:javascript复制SELECT 'b' BETWEEN 'a' AND 'c'; -- 结果为真(1)
SELECT NULL IS NULL; -- 结果为真(1)
二、SQL函数:
MySQL提供了大量的内置函数,用于执行各种任务。这些函数可以在查询中直接使用,并返回所需的结果。以下是一些常用的函数分类:
字符串函数:如 CONCAT()
, UPPER()
, LOWER()
, TRIM()
, SUBSTRING()
, LENGTH()
等,用于对字符串进行操作。例如:
代码语言:javascript复制SELECT CONCAT('Hello', ' ', 'World'); -- 结果为"Hello World"
数值函数:如 ABS()
, ROUND()
, CEIL()
, FLOOR()
, MOD()
等,用于数值计算。例如:
代码语言:javascript复制SELECT ABS(-10); -- 结果为10
日期和时间函数:如 NOW()
, CURDATE()
, CURTIME()
, DATE_FORMAT()
, DATEDIFF()
, TIMESTAMPDIFF()
等,用于日期和时间的操作。例如:
代码语言:javascript复制SELECT NOW(); -- 返回当前日期和时间
聚合函数
如 `COUNT()`, `SUM()`, `AVG()`, `MAX()`, `MIN()` 等,用于对数据进行统计和计算。
例如:sql
代码语言:javascript复制SELECT AVG(salary) FROM employees;
返回员工的平均工资
转换函数
如 `CAST()`, `CONVERT()` 等,用于数据类型之间的转换。
例如:sql
代码语言:javascript复制SELECT CAST(age AS CHAR) FROM users;
将age字段从数值转换为字符类型
条件函数
如 `IF()`, `CASE`, `COALESCE()` 等,用于根据条件返回值。
例如:
代码语言:javascript复制SELECT IF(age >= 18, 'Adult', 'Minor') FROM users;
根据年龄判断是否为成年人。