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

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

相关推荐
飞猿_SIR12 分钟前
android ROM开发网络下载速度缓慢问题解决方案
android·网络
李心怡-12314 分钟前
Ollama + FastGPT搭建本地私有企业级AI知识库 (Linux)
android·linux·运维·人工智能·docker·李心怡
小小小妮子~27 分钟前
B+树在MySQL中的应用价值
数据结构·mysql·b+树
studyForMokey28 分钟前
【Android项目学习】2.抖音二级评论
android·学习
命运之手2 小时前
[ Android ] Query If Package is Installed
android·packagemanager·installed
唔662 小时前
Android 系统签名 keytool-importkeypair
android
练小杰2 小时前
Linux 文件的特殊权限—ACL项目练习
android·linux·运维·服务器·经验分享·学习
利刃大大2 小时前
【MySQL基础篇】十二、视图的概念与操作
数据库·mysql
rr_R_rr2 小时前
MYSQL重置密码
数据库·mysql·adb
摇光933 小时前
js适配器模式
android·okhttp·适配器模式