SQL 算术运算符:加法、减法、乘法、除法和取模的用法
SQL Server中的存储过程
什么是存储过程?
存储过程是一段预先编写好的 SQL 代码,可以保存在数据库中以供反复使用。它允许将一系列 SQL 语句组合成一个逻辑单元,并为其分配一个名称,以便在需要时调用执行。存储过程可以接受参数,使其更加灵活和通用。
存储过程语法
创建存储过程的语法如下:
CREATE PROCEDURE 存储过程名称
AS
SQL语句
GO;
执行存储过程的语法如下:
EXEC 存储过程名称;
演示数据库
以下是 Northwind 示例数据库中 "Customers" 表的部分内容:
| CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
|---|---|---|---|---|---|---|
| 1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
| 2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
| 4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
| 5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
存储过程示例
以下 SQL 语句创建了一个名为 "SelectAllCustomers" 的存储过程,用于从 "Customers" 表中选择所有记录:
CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO;
执行上述存储过程的方法如下:
EXEC SelectAllCustomers;
带有一个参数的存储过程
以下 SQL 语句创建了一个存储过程,该过程从 "Customers" 表中选择特定城市的客户:
CREATE PROCEDURE SelectAllCustomers @City nvarchar(30)
AS
SELECT * FROM Customers WHERE City = @City
GO;
执行上述存储过程的方法如下:
EXEC SelectAllCustomers @City = 'London';
带有多个参数的存储过程
设置多个参数非常简单。只需逐个列出每个参数及其数据类型,用逗号分隔。
以下 SQL 语句创建了一个存储过程,该过程从 "Customers" 表中选择特定城市和特定邮政编码的客户:
CREATE PROCEDURE SelectAllCustomers @City nvarchar(30), @PostalCode nvarchar(10)
AS
SELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCode
GO;
执行上述存储过程的方法如下:
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;
以上 AND、OR 和 NOT 可以结合使用,以满足更复杂的查询需求。
最后
为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。
看完如果觉得有帮助,欢迎点赞、收藏和关注

SQL 算术运算符:加法、减法、乘法、除法和取模的用法的更多相关文章
- Divide two numbers,两数相除求商,不能用乘法,除法,取模运算
问题描述:求商,不能用乘法,除法,取模运算. 算法思路:不能用除法,那只能用减法,但是用减法,超时.可以用位移运算,每次除数左移,相当于2倍. public class DividTwoInteger ...
- 3.29省选模拟赛 除法与取模 dp+组合计数
LINK:除法与取模 鬼题.不过50分很好写.考虑不带除法的时候 其实是一个dp的组合计数. 考虑带除法的时候需要状压一下除法操作. 因为除法操作是不受x的大小影响的 所以要状压这个除法操作. 直接采 ...
- 【learning】多项式相关(求逆、开根、除法、取模)
(首先要%miskcoo,这位dalao写的博客(这里)实在是太强啦qwq大部分多项式相关的知识都是从这位dalao博客里面学的,下面这篇东西是自己对其博客学习后的一些总结和想法,大部分是按照其博客里 ...
- java入门学习(九) 算术运算符
请大家关注我的博客www.taomaipin.com 运算符在java基础中也占有着举足轻重的位置,我们当然要学会它.java 其实和其他计算机语言一样,基本的算术运算符基本一样,让我们看看 有哪些算 ...
- JavaScript:操作符:算术运算符(加减乘除模幂)及其隐式转换数据类型
加法+ 减法- 乘法* 除法/ 模运算% 幂运算**,即a ** b求的是a的b次方 执行上述运算时,当两个操作数有非数字时,JS会隐式转换为数字,再进行运算: 一些特殊的非数字,会进行如下转换: t ...
- MySQL常用运算符:算术运算符、比较运算符、逻辑运算符
(一) 算术运算符 注意: 在除法运算和模运算中,如果除数为0,将是非法除数,返回结果为NULL. div运算符主要是求两个数相除的商 (二) 比较运算符:比较运算符的运算结果为1(条件为真),0 ...
- Java SE ---算术运算符
算术运算符:(加)+,(减)-,(乘)*,(除)/,(求余)%,自增自减 一,算数运算符:当有若干个变量参与运算时,结果类型取决于这些变量中表示范围最大的那个变量类型.如果参加运算的变量中有整型int ...
- java中的i++与++i的区别以及除法、模的用法(基础)
java中i++与++i的区别: 例如:int i=3; (先运算再赋值)j=++i; i的值先变成4,再赋给j,j的值为4: (先赋值再运算)j=i++; 先将i的值3赋给j,j的值为3,然后i变成 ...
- 实验05——java算术运算符减法
package cn.tedu.demo; import java.math.BigDecimal; /** * @author 赵瑞鑫 E-mail:1922250303@qq.com * @ver ...
- [CareerCup] 7.4 Implement Multiply Subtract and Divide 实现乘法减法和除法
7.4 Write methods to implement the multiply, subtract, and divide operations for integers. Use only ...
随机推荐
- yolov5项目cuda错误解决
CUDA报错解决 # 报错详情 AssertionError: CUDA unavailable, invalid device 0 requested 查看cuda版本 先看一下电脑是否支持GPU, ...
- 【华为机试ACM基础#01】字符串最后一个单词长度、计算某字符出现次数、提取不重复的整数(熟悉字符/字符串/整数的输入)
字符串最后一个单词的长度 描述 计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000.(注:字符串末尾不以空格为结尾) 输入描述: 输入一行,代表要计算的字符串,非空,长度小于5000 ...
- 【补档_C51单片机】基于C51的蜂鸣器音乐盒工程源码解析(可播放《打上花火》)
项目地址:https://gitee.com/daycen/c51-music-box 通过Keil uVision3打开即可使用 以前做的一些小硬件,现补档至博客 1 功能及总体方案 1.1 功能描 ...
- 【Azure Webjob + Redis】WebJob一直链接Azure Redis一直报错 Timeout Exception
问题描述 运行在App Service上的Webjob连接Azure Redis出现Timeout Exception. 错误截图: 参考Azure Redis对于超时问题的排查建议, 在修改Min ...
- 浅入 ABP 系列(6):数据库配置
浅入 ABP 系列(6):数据库配置 版权护体作者:痴者工良,微信公众号转载文章需要 <NCC开源社区>同意. 目录 浅入 ABP 系列(6):数据库配置 创建标准的 EFCore 数据库 ...
- 问答:C程序为何for循环和while循环无法相互替代?
百鸡百钱问题: C代码: include <stdio.h> main() { int cock, hen, chicken; for(cock=0;cock<=20;cock++) ...
- CUDA指针数组Kernel函数
技术背景 在前面的一篇文章中,我们介绍了在C++中使用指针数组的方式实现的一个不规则的二维数组.那么如果我们希望可以在CUDA中也能够使用到这种类似形式的不规则的数组,有没有办法可以直接实现呢?可能过 ...
- Delete `␍`
新电脑遇到的问题 Delete `␍`eslint(prettier/prettier) 网上一搜,一堆解决办法,没有一个说到点子上,都是表面上如何避免,如何设置VSCODE... 都知道是换行符的问 ...
- uni-app实现公众号登陆实现
公众号实现登陆流程思路: 1. 创建一个页面用于登陆,页面上需要有输入账号和密码的表单,以及登陆按钮.2. 在登陆按钮的点击事件中,调用后端接口进行账号密码校验.如果校验通过,则将后端返回的用户信息保 ...
- Idea编译/运行Java程序慢
修改前: 修改后: 参考: https://www.jjput.com/archives/macbookpro14m1mavenslowcompilation 问题 JDK尽量不要换版本 class ...