MYSQL--------MYSQL中的运算符

以下是 MySQL 中各种运算符的介绍及代码示例:

算术运算符

算术运算符用于执行基本的数学运算,包括加、减、乘、除、取模(取余)。

sql 复制代码
-- 创建一个名为 operator_demo 的表
CREATE TABLE operator_demo (
    a INT,
    b INT
);

-- 插入示例数据
INSERT INTO operator_demo (a, b) VALUES (10, 3);


-- 加法运算符
SELECT a + b AS addition FROM operator_demo;

-- 减法运算符
SELECT a - b AS subtraction FROM operator_demo;

-- 乘法运算符
SELECT a * b AS multiplication FROM operator_demo;

-- 除法运算符
SELECT a / b AS division FROM operator_demo;

-- 取模运算符(取余)
SELECT a % b AS modulo FROM operator_demo;


-- 删除表
DROP TABLE operator_demo;

比较运算符

比较运算符用于比较两个值,结果为布尔值(True 或 False),常用于 WHERE 子句中筛选数据。

sql 复制代码
-- 创建一个名为 comparison_demo 的表
CREATE TABLE comparison_demo (
    num INT
);


-- 插入示例数据
INSERT INTO comparison_demo (num) VALUES (5), (10), (15);


-- 等于运算符
SELECT * FROM comparison_demo WHERE num = 10;


-- 不等于运算符
SELECT * FROM comparison_demo WHERE num!= 10;


-- 大于运算符
SELECT * FROM comparison_demo WHERE num > 10;


-- 小于运算符
SELECT * FROM comparison_demo WHERE num < 10;


-- 大于等于运算符
SELECT * FROM comparison_demo WHERE num >= 10;


-- 小于等于运算符
SELECT * FROM comparison_demo WHERE num <= 10;


-- BETWEEN 运算符,检查一个值是否在两个值之间
SELECT * FROM comparison_demo WHERE num BETWEEN 5 AND 15;


-- IN 运算符,检查一个值是否在一组值中
SELECT * FROM comparison_demo WHERE num IN (5, 10);


-- IS NULL 运算符,检查一个值是否为 NULL
INSERT INTO comparison_demo (num) VALUES (NULL);
SELECT * FROM comparison_demo WHERE num IS NULL;


-- 删除表
DROP TABLE comparison_demo;

逻辑运算符

逻辑运算符用于组合多个条件,主要包括 ANDORNOT

sql 复制代码
-- 创建一个名为 logic_demo 的表
CREATE TABLE logic_demo (
    x INT,
    y INT
);


-- 插入示例数据
INSERT INTO logic_demo (x, y) VALUES (5, 10), (15, 20), (25, 30);


-- AND 运算符,同时满足两个条件
SELECT * FROM logic_demo WHERE x > 10 AND y > 15;


-- OR 运算符,满足其中一个条件即可
SELECT * FROM logic_demo WHERE x > 10 OR y > 30;


-- NOT 运算符,取反条件
SELECT * FROM logic_demo WHERE NOT (x > 10);


-- 删除表
DROP TABLE logic_demo;

位运算符

位运算符对二进制数进行操作,包括 &(按位与)、|(按位或)、^(按位异或)、~(按位取反)、<<(左移)和 >>(右移)。

sql 复制代码
-- 创建一个名为 bitwise_demo 的表
CREATE TABLE bitwise_demo (
    m INT,
    n INT
);


-- 插入示例数据
INSERT INTO bitwise_demo (m, n) VALUES (5, 3);


-- 按位与运算符
SELECT m & n AS bitwise_and FROM bitwise_demo;


-- 按位或运算符
SELECT m | n AS bitwise_or FROM bitwise_demo;


-- 按位异或运算符
SELECT m ^ n AS bitwise_xor FROM bitwise_demo;


-- 按位取反运算符
SELECT ~m AS bitwise_not FROM bitwise_demo;


-- 左移运算符
SELECT m << 1 AS left_shift FROM bitwise_demo;


-- 右移运算符
SELECT m >> 1 AS right_shift FROM bitwise_demo;


-- 删除表
DROP TABLE bitwise_demo;

运算符优先级

在一个表达式中使用多个运算符时,运算符的优先级决定了运算的顺序。一般来说,算术运算符的优先级高于比较运算符,比较运算符高于逻辑运算符,逻辑运算符中 NOT 的优先级最高,然后是 AND,最后是 OR。可以使用括号 () 来改变运算顺序。

sql 复制代码
-- 创建一个名为 priority_demo 的表
CREATE TABLE priority_demo (
    a INT,
    b INT,
    c INT
);


-- 插入示例数据
INSERT INTO priority_demo (a, b, c) VALUES (5, 10, 15);


-- 示例 1:先进行加法运算,再比较大小
SELECT * FROM priority_demo WHERE a + b > c;


-- 示例 2:使用括号改变优先级,先比较大小,再进行逻辑运算
SELECT * FROM priority_demo WHERE (a > b) AND (b < c);


-- 删除表
DROP TABLE priority_demo;

代码解释:

  • 算术运算符
    • +:将两个操作数相加。
    • -:将第一个操作数减去第二个操作数。
    • *:将两个操作数相乘。
    • /:将第一个操作数除以第二个操作数。
    • %:取第一个操作数除以第二个操作数的余数。
  • 比较运算符
    • =:检查两个操作数是否相等。
    • !=<>:检查两个操作数是否不相等。
    • >:检查第一个操作数是否大于第二个操作数。
    • <:检查第一个操作数是否小于第二个操作数。
    • >=:检查第一个操作数是否大于或等于第二个操作数。
    • <=:检查第一个操作数是否小于或等于第二个操作数。
    • BETWEEN:检查一个值是否在两个值之间。
    • IN:检查一个值是否在一组值中。
    • IS NULL:检查一个值是否为 NULL
  • 逻辑运算符
    • AND:仅当两个条件都为真时,结果为真。
    • OR:只要有一个条件为真,结果为真。
    • NOT:反转条件的结果。
  • 位运算符
    • &:按位与操作。
    • |:按位或操作。
    • ^:按位异或操作。
    • ~:按位取反操作。
    • <<:左移操作。
    • >>:右移操作。
  • 运算符优先级
    • 可以使用括号 () 来明确指定运算顺序,否则按照默认的运算符优先级进行计算。

以上示例代码展示了 MySQL 中各种运算符的基本用法和运算顺序,你可以根据实际需求灵活运用这些运算符,在 WHERE 子句中筛选数据,或在计算表达式中使用它们。

请注意,以上代码基于 MySQL 8.0 运行,不同的 MySQL 版本在某些细节上可能会略有不同。

同时,在使用运算符时,请确保数据类型的兼容性,避免因数据类型不匹配而导致的错误。

相关推荐
silver988616 分钟前
再谈golang的sql链接dsn
mysql·golang
独行soc4 小时前
2025年渗透测试面试题总结-66(题目+回答)
java·网络·python·安全·web安全·adb·渗透测试
sun0077006 小时前
android ndk编译valgrind
android
F_D_Z7 小时前
【SQL】指定日期的产品价格
数据库·sql·mysql
AI视觉网奇7 小时前
android studio 断点无效
android·ide·android studio
jiaxi的天空7 小时前
android studio gradle 访问不了
android·ide·android studio
程序员在线炒粉8元1份顺丰包邮送可乐7 小时前
Docker 部署生产环境可用的 MySQL 主从架构
mysql·docker·架构
麦聪聊数据8 小时前
如何使用 QuickAPI 快速连接 MySQL 数据库并发布 RESTful API
数据库·sql·mysql·restful·数据服务
No Silver Bullet8 小时前
android组包时会把从maven私服获取的包下载到本地吗
android
catchadmin8 小时前
PHP serialize 序列化完全指南
android·开发语言·php