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 版本在某些细节上可能会略有不同。

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

相关推荐
快来卷java44 分钟前
JVM虚拟机篇(五):深入理解Java类加载器与类加载机制
java·jvm·mysql
快来卷java3 小时前
MySQL篇(六)MySQL 分库分表:应对数据增长挑战的有效策略
数据库·mysql·oracle
信徒_6 小时前
Mysql 中的 binlog、redolog、undolog
数据库·mysql
每次的天空6 小时前
Android学习总结之算法篇五(字符串)
android·学习·算法
Gracker7 小时前
Android Weekly #202513
android
追光天使7 小时前
Mac 上使用 mysql -u root -p 命令,出现“zsh: command not found: mysql“?
数据库·mysql·macos
小小鸭程序员9 小时前
Spring Boot项目连接MySQL数据库及CRUD操作示例
java·spring boot·python·mysql·spring
张拭心9 小时前
工作九年程序员的三月小结
android·前端
每次的天空9 小时前
Flutter学习总结之Android渲染对比
android·学习·flutter
Hi_Lyn10 小时前
MySQL表的增删改查基础版
数据库·mysql