SQL 运算符详解

SQL 运算符是我们在 SQL 查询中用于对数据执行操作的符号或关键字。

  • 执行计算、比较和逻辑检查等操作。
  • 能够在数据库中筛选、计算和更新数据。
  • 对于查询优化和准确的数据管理至关重要。

!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20251112145208765825/sqloperators-updated.webp">sqloperators-updated

1. 算术运算符

SQL 中的算术运算符用于在查询中对数值数据类型执行数学运算。下面我们将介绍一些常见的算术运算符:

示例:

-- 创建一个示例表
CREATE TABLE Employees (
    EmpID INT,
    EmpName VARCHAR(50),
    Salary INT,
    Bonus INT
);

-- 插入示例数据
INSERT INTO Employees (EmpID, EmpName, Salary, Bonus)
VALUES
(1, ‘Amit‘, 40000, 5000),
(2, ‘Neha‘, 50000, 7000),
(3, ‘Ravi‘, 30000, 3000);

-- 使用算术运算符
SELECT
    EmpName,
    Salary,
    Bonus,
    Salary + Bonus AS Total_Income,          -- 加法
    Salary - Bonus AS After_Bonus_Deduction, -- 减法
    Salary * 0.10 AS Ten_Percent_Salary,     -- 乘法
    Salary / 12 AS Monthly_Salary,           -- 除法
    Salary % 10000 AS Salary_Remainder       -- 取模
FROM Employees;

输出结果:

EmpName

Salary

Bonus

TotalIncome

AfterBonusDeduction

TenPercentSalary

MonthlySalary

Salary_Remainder

Amit

40000

5000

45000

35000

4000

3333.33

0

Neha

50000

7000

57000

43000

5000

4166.67

0

Ravi

30000

3000

33000

27000

3000

2500

0## 2. 比较运算符

SQL 中的比较运算符用于将一个表达式的值与另一个表达式进行比较。SQL 支持不同类型的比较运算符,下面我们将详细描述:

示例:

-- 创建示例表
CREATE TABLE Students (
  ID INT,
  Name VARCHAR(50),
  Marks INT
);

-- 插入数据
INSERT INTO Students VALUES
(1, ‘Amit‘, 85),
(2, ‘Neha‘, 70),
(3, ‘Ravi‘, 55);

-- 使用比较运算符
SELECT *
FROM Students
WHERE Marks >= 70;   -- 筛选得分大于等于 70 的学生

输出结果:

ID

Name

Marks —

— 1

Amit

85 2

Neha

70

3. 逻辑运算符

SQL 中的逻辑运算符用于组合或操作查询中的条件,以便根据指定的标准来检索或操作数据。

示例:

-- 创建示例表
CREATE TABLE Students (
  ID INT,
  Name VARCHAR(50),
  Marks INT,
  Age INT
);

-- 插入数据
INSERT INTO Students VALUES
(1, ‘Amit‘, 85, 18),
(2, ‘Neha‘, 70, 19),
(3, ‘Ravi‘, 55, 17);

-- 使用逻辑运算符
SELECT *
FROM Students
WHERE Marks >= 70 AND Age >= 18;  -- 两个条件必须同时为真

SELECT *
FROM Students
WHERE Marks < 60 OR Age = 70;            -- 对条件取反

输出结果:

ID

Name

Marks

Age

1

Amit

85

18

2

Neha

70

19## 4. 位运算符

SQL 中的位运算符用于在查询中对二进制值执行位操作,通过操作单个位来执行位级别的逻辑运算。

示例:

-- 创建示例表
CREATE TABLE Users (
    UserID INT,
    UserName VARCHAR(50),
    Permissions INT   -- 将权限标志存储为数字
);

-- 插入示例数据
-- 权限标志:读=1,写=2,执行=4
INSERT INTO Users (UserID, UserName, Permissions) VALUES
(1, ‘Amit‘, 1),   -- 仅读
(2, ‘Neha‘, 3),   -- 读 + 写
(3, ‘Ravi‘, 7);   -- 读 + 写 + 执行

-- 示例 1:检查用户是否具有写权限(按位与)
SELECT *
FROM Users
WHERE Permissions & 2 = 2;  -- 2 = 写权限

-- 示例 2:添加执行权限(按位或)
UPDATE Users
SET Permissions = Permissions | 4
WHERE UserName = ‘Neha‘;  -- 现在 Neha 拥有执行权限

-- 示例 3:移除读权限(按位与 + 取反)
UPDATE Users
SET Permissions = Permissions & ~1
WHERE UserName = ‘Ravi‘;  -- 从 Ravi 那里移除读权限

-- 示例 4:切换写权限(按位异或)
UPDATE Users
SET Permissions = Permissions ^ 2
WHERE UserName = ‘Amit‘;  -- 切换写权限

-- 示例 5:显示所有用户的最终权限
SELECT * FROM Users;

输出结果:

UserName

Initial Permissions

Operation(s) Applied

Final Permissions

Binary

Meaning

Amit

1

Toggle Write (^2)

3

011

Read + Write

Neha

3

Add Execute ( | 4)

7

111 Ravi

7

Remove Read (&~1)

6

110

Write + Execute## 5. 复合运算符

复合运算符将操作与赋值结合在一起。这些运算

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/27962.html
点赞
0.00 平均评分 (0% 分数) - 0