虚拟主机域名注册-常见问题 → 数据库问题 → 数据库问题 | ||
一、算术运算符 算术运算符用于执行数学运算,包括加法、减法、乘法、除法和取模运算。 +:加法 -:减法 *:乘法 /:除法 %:取模(余数) 示例: SELECT 5 + 3; -- 输出:8 SELECT 10 - 4; -- 输出:6 SELECT 7 * 2; -- 输出:14 SELECT 10 / 2; -- 输出:5 SELECT 10 % 3; -- 输出:1 二、比较运算符 比较运算符用于比较两个值,并返回布尔值(TRUE或FALSE)。 =:等于 <> 或 !=:不等于 >:大于 <:小于 >=:大于等于 <=:小于等于 <=>:NULL安全等于(如果两个值都是NULL,则返回TRUE) 示例: SELECT 5 = 5; -- 输出:TRUE SELECT 5 <> 3; -- 输出:TRUE SELECT 10 > 5; -- 输出:TRUE SELECT 3 < 7; -- 输出:TRUE SELECT 5 >= 5; -- 输出:TRUE SELECT 8 <= 10; -- 输出:TRUE SELECT NULL <=> NULL; -- 输出:TRUE 三、逻辑运算符 逻辑运算符用于结合布尔表达式,并返回布尔结果。 AND:逻辑与(两个表达式都为TRUE时返回TRUE) OR:逻辑或(至少一个表达式为TRUE时返回TRUE) NOT:逻辑非(将表达式的布尔值取反) 示例: SELECT 1 = 1 AND 2 = 3; -- 输出:FALSE SELECT 1 = 1 OR 2 = 3; -- 输出:TRUE SELECT NOT (1 = 2); -- 输出:TRUE 四、位运算符 位运算符用于对二进制位进行操作。 &:按位与 |:按位或 ^:按位异或 ~:按位非 <<:左移 >>:右移 示例: SELECT 5 & 3; -- 输出:1(二进制:0101 & 0011 = 0001) SELECT 5 | 3; -- 输出:7(二进制:0101 | 0011 = 0111) SELECT 5 ^ 3; -- 输出:6(二进制:0101 ^ 0011 = 0110) SELECT ~5; -- 输出:-6(二进制:~0101 = 1010,在有符号二进制补码表示中) SELECT 2 << 1; -- 输出:4(二进制:0010 << 1 = 0100) SELECT 4 >> 1; -- 输出:2(二进制:0100 >> 1 = 0010) 注意:位运算符的结果可能受MySQL存储整数的方式(如有符号或无符号)影响。 五、其他运算符 赋值运算符:= 用于将值赋给变量或列。 NULL运算符:IS NULL 和 IS NOT NULL 用于检查值是否为NULL。 范围运算符:BETWEEN ... AND ... 用于检查值是否在某个范围内(包括边界值)。 IN运算符:用于检查值是否在一组给定的值中。 LIKE运算符:用于模式匹配,通常与通配符%和_一起使用。 REGEXP运算符:用于正则表达式匹配。 示例: -- 赋值运算符(在UPDATE语句中使用) UPDATE employees SET salary = salary + 1000 WHERE department = 'Sales'; -- NULL运算符 SELECT * FROM employees WHERE commission IS NULL; -- 范围运算符 SELECT * FROM products WHERE price BETWEEN 10 AND 50; -- IN运算符 SELECT * FROM customers WHERE country IN ('USA', 'Canada', 'UK'); -- LIKE运算符 SELECT * FROM products WHERE product_name LIKE 'A%'; -- 查找以'A'开头的所有产品 -- REGEXP运算符 SELECT * FROM employees WHERE name REGEXP '^[A-J]'; -- 查找名字以A到J开头的员工 六、注意事项 运算符的优先级决定了在没有括号的情况下哪个运算符先被计算。例如,乘法和除法优先于加法和减法。 使用括号可以强制改变运算符的默认优先级。 当使用比较运算符和逻辑运算符时,要注意NULL值的处理。NULL在比较中通常被视为未知,因此任何与NULL的比较都会返回NULL(除了IS NULL和IS NOT NULL)。
|