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

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

相关推荐
缘来的精彩22 分钟前
Android Studio 中实现方法和参数显示一行
android·ide·android studio
二七有头发24 分钟前
从零开始:Android Studio开发购物车(第二个实战项目)
android·ide·android studio
我命由我1234529 分钟前
MQTT - Android MQTT 编码实战(MQTT 客户端创建、MQTT 客户端事件、MQTT 客户端连接配置、MQTT 客户端主题)
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
backRoads1 小时前
MYSQL三大日志、隔离级别(MVCC+锁机制实现)
数据库·mysql
奔跑吧 android2 小时前
【android bluetooth 协议分析 06】【l2cap详解 11】【l2cap连接超时处理逻辑介绍】
android·bluetooth·l2cap·gd·aosp13
左直拳2 小时前
mysql community 8.0.23升级到8.0.42再到8.4.5
数据库·mysql·升级·8.0.42·8.4.5
laimaxgg2 小时前
MySQL表的约束
数据库·mysql
nomi-糯米4 小时前
Mybatis-plus代码生成器的创建使用与详细解释
数据库·mysql·mybatis
默心5 小时前
CentOS环境下搭建seata(二进制、MySQL)
linux·mysql·centos
YGGP6 小时前
【每日八股】复习 MySQL Day3:锁
mysql