写点什么

SQL 算术运算符:加法、减法、乘法、除法和取模的用法

作者:小万哥
  • 2023-12-01
    广东
  • 本文字数:2529 字

    阅读完需:约 8 分钟

SQL 算术运算符:加法、减法、乘法、除法和取模的用法

SQL Server 中的存储过程

什么是存储过程?

存储过程是一段预先编写好的 SQL 代码,可以保存在数据库中以供反复使用。它允许将一系列 SQL 语句组合成一个逻辑单元,并为其分配一个名称,以便在需要时调用执行。存储过程可以接受参数,使其更加灵活和通用。

存储过程语法

创建存储过程的语法如下:


CREATE PROCEDURE 存储过程名称ASSQL语句GO;
复制代码


执行存储过程的语法如下:


EXEC 存储过程名称;
复制代码

演示数据库

以下是 Northwind 示例数据库中 "Customers" 表的部分内容:


存储过程示例

以下 SQL 语句创建了一个名为 "SelectAllCustomers" 的存储过程,用于从 "Customers" 表中选择所有记录:


CREATE PROCEDURE SelectAllCustomersASSELECT * FROM CustomersGO;
复制代码


执行上述存储过程的方法如下:


EXEC SelectAllCustomers;
复制代码

带有一个参数的存储过程

以下 SQL 语句创建了一个存储过程,该过程从 "Customers" 表中选择特定城市的客户:


CREATE PROCEDURE SelectAllCustomers @City nvarchar(30)ASSELECT * FROM Customers WHERE City = @CityGO;
复制代码


执行上述存储过程的方法如下:


EXEC SelectAllCustomers @City = 'London';
复制代码

带有多个参数的存储过程

设置多个参数非常简单。只需逐个列出每个参数及其数据类型,用逗号分隔。


以下 SQL 语句创建了一个存储过程,该过程从 "Customers" 表中选择特定城市和特定邮政编码的客户:


CREATE PROCEDURE SelectAllCustomers @City nvarchar(30), @PostalCode nvarchar(10)ASSELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCodeGO;
复制代码


执行上述存储过程的方法如下:


EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP';
复制代码


SQL 注释用于提供对 SQL 语句的解释,或者在调试和维护过程中临时禁用某些语句。注释不会被数据库执行。

单行注释

单行注释以 -- 开头,后面的文本将被注释掉。


-- 这是单行注释SELECT * FROM Customers;
复制代码


在单行注释中,-- 后面的文本会被忽略。

单行注释在语句末尾

SELECT * FROM Customers -- WHERE City='Berlin';
复制代码


在这个例子中,-- 后面的文本和语句末尾的内容都被忽略。

多行注释

多行注释以 /* 开头,以 */ 结尾,之间的所有文本都被注释掉。


/* 这是多行注释 */SELECT * FROM Customers;
复制代码


在多行注释中,/**/ 之间的文本都被忽略。

多行注释忽略多条语句

/* SELECT * FROM Customers;SELECT * FROM Products;SELECT * FROM Orders;SELECT * FROM Categories; */SELECT * FROM Suppliers;
复制代码


在这个例子中,/**/ 之间的所有语句都被注释掉。

部分注释

要仅忽略语句的一部分,可以在适当位置使用 /* */ 注释。


SELECT CustomerName, /*City,*/ Country FROM Customers;
复制代码


在这个例子中,/**/ 之间的 City 列会被注释掉,而其他部分保持不变。

部分注释语句

SELECT * FROM Customers WHERE (CustomerName LIKE 'L%'OR CustomerName LIKE 'R%' /*OR CustomerName LIKE 'S%'OR CustomerName LIKE 'T%'*/ OR CustomerName LIKE 'W%')AND Country='USA'ORDER BY CustomerName;
复制代码


在这个例子中,/**/ 之间的部分条件被注释掉,但其他条件保持不变。

SQL 算术运算符

加法 (+): 用于将两个值相加。


SELECT column1 + column2 AS SumResult FROM tableName;
复制代码


减法 (-): 用于从第一个值中减去第二个值。


SELECT column1 - column2 AS Difference FROM tableName;
复制代码


乘法 (*): 用于将两个值相乘。


SELECT column1 * column2 AS Product FROM tableName;
复制代码


除法 (/): 用于将第一个值除以第二个值。


SELECT column1 / column2 AS Quotient FROM tableName;
复制代码


取模 (%): 返回除法的余数。


SELECT column1 % column2 AS Modulus FROM tableName;
复制代码

SQL 位运算符

按位与 (&): 对二进制数进行按位与运算。


SELECT column1 & column2 AS BitwiseAND FROM tableName;
复制代码


按位或 (|): 对二进制数进行按位或运算。


SELECT column1 | column2 AS BitwiseOR FROM tableName;
复制代码


按位异或 (^): 对二进制数进行按位异或运算。


SELECT column1 ^ column2 AS BitwiseXOR FROM tableName;
复制代码

SQL 比较运算符

等于 (=): 判断两个值是否相等。


SELECT column1 FROM tableName WHERE column1 = column2;
复制代码


大于 (>): 判断一个值是否大于另一个值。


SELECT column1 FROM tableName WHERE column1 > column2;
复制代码


小于 (<): 判断一个值是否小于另一个值。


SELECT column1 FROM tableName WHERE column1 < column2;
复制代码


大于等于 (>=): 判断一个值是否大于或等于另一个值。


SELECT column1 FROM tableName WHERE column1 >= column2;
复制代码


小于等于 (<=): 判断一个值是否小于或等于另一个值。


SELECT column1 FROM tableName WHERE column1 <= column2;
复制代码


不等于 (<>!=): 判断两个值是否不相等。


SELECT column1 FROM tableName WHERE column1 <> column2;
复制代码

SQL 复合运算符

复合运算符是一组用于执行多个操作的运算符。


加等于 (+=): 将右侧的值添加到左侧的值,并将结果分配给左侧的值。


UPDATE tableName SET column1 += 10 WHERE condition;
复制代码


减等于 (-=): 从左侧的值中减去右侧的值,并将结果分配给左侧的值。


UPDATE tableName SET column1 -= 5 WHERE condition;
复制代码


乘等于 (*=): 将左侧的值乘以右侧的值,并将结果分配给左侧的值。


UPDATE tableName SET column1 *= 2 WHERE condition;
复制代码


除等于 (/=): 将左侧的值除以右侧的值,并将结果分配给左侧的值。


UPDATE tableName SET column1 /= 3 WHERE condition;
复制代码


取模等于 (%=): 将左侧的值除以右侧的值并取余数,结果分配给左侧的值。


UPDATE tableName SET column1 %= 4 WHERE condition;
复制代码

SQL 逻辑运算符

逻辑运算符用于连接和改变条件语句的逻辑关系。


AND: 如果由 AND 分隔的所有条件都为 TRUE,则为 TRUE


SELECT * FROM tableName WHERE condition1 AND condition2;
复制代码


OR: 如果由 OR 分隔的任何条件都为 TRUE,则为 TRUE


SELECT * FROM tableName WHERE condition1 OR condition2;
复制代码


NOT: 如果条件不为 TRUE,则显示记录。


SELECT * FROM tableName WHERE NOT condition;
复制代码


以上 ANDORNOT 可以结合使用,以满足更复杂的查询需求。

最后

为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。


看完如果觉得有帮助,欢迎点赞、收藏关注



发布于: 刚刚阅读数: 4
用户头像

小万哥

关注

代码如人生 2023-02-09 加入

编程爱好者

评论

发布
暂无评论
SQL 算术运算符:加法、减法、乘法、除法和取模的用法_MySQL_小万哥_InfoQ写作社区