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

news2024/11/20 14:41:12

SQL Server中的存储过程

什么是存储过程?

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

存储过程语法

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

CREATE PROCEDURE 存储过程名称
AS
SQL语句
GO;

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

EXEC 存储过程名称;

演示数据库

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

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

存储过程示例

以下 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;

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

最后

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

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1275560.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《C++PrimerPlus》第11章 使用类

11.1 运算符重载 11.2 计算时间&#xff1a;一个运算符重载示例 运算符重载示例&#xff08;计算时间&#xff09; 头文件mytime0.h #ifndef __MYTIME0__H__ #define __MYTIME0__H__ #include <iostream> using namespace std;class Time {private:int hours;int minu…

【ECCV 2022】《Transformers as Meta-learners for Implicit Neural Representations》

文章目录 一、动机二、相关工作三、方法四、实验部分五、Does the INR Exploit Data Structures?六、结论 一、动机 \quad 与像素、体素和网格等离散数据表示相比&#xff0c;INRs不需要依赖于分辨率的二次或三次存储。它们的表示能力并不依赖于网格分辨率&#xff0c;而是依赖…

《ChatGPT实操应用大全》探索无限可能

&#x1f5e3;️探索ChatGPT&#xff0c;开启无限可能&#x1f680; 文末有免费送书福利&#xff01;&#xff01;&#xff01; ChatGPT是人类有史以来最伟大的发明。他能写作、绘画、翻译、看病、做菜、编程、数据分析、制作视频、解高等数学题…&#xff0c;他会的技能…

网站上https协议,nginx配置SSL,443端口

nginx配置ssl 要给自己的网站上ssl证书&#xff0c;使用https协议。首先你需要有证书文件&#xff0c;这个文件是你买的服务&#xff0c;买过之后别人会给你。 就是这样的文件&#xff1a; 然后你就把文件上传到服务器的一个位置&#xff0c;你记住这个位置&#xff0c;后面配…

树莓派3B+ PCB叠层设计

板子废了&#xff0c;用电磨切了下&#xff0c;看看是什么叠层。 由于有BCM43455 WIFI芯片&#xff0c;这个是0.3ball 0.4pitch&#xff0c;肯定是要用盲孔布线的。 然后根据这个切面看&#xff0c;板子是6层的&#xff0c;外层内层铜厚应该是一样的 1-2层介质特别薄竟然<1o…

unicloud云函数url化后,客户端通过url地址向云函数发送数据流并传递到云存储中

在不久前录制过这样一门课程&#xff0c;使用uniapp生态开发API接口&#xff0c;通过这套课程&#xff0c;你不需要后后端Java、Python、PHP等后端语言&#xff0c;你只需要用前端的知识就可以构建这样一套API接口&#xff0c;而且使用uniapp生态开发接口更简单高效&#xff0c…

共享单车停放(简单的struct结构运用)

本来不想写这题的&#xff0c;但是想想最近沉迷玩雨世界&#xff0c;班长又问我这题&#xff0c;就草草写了一下 代码如下&#xff1a; #include<stdio.h> #include<math.h> struct parking{int distance;int remain;int speed;int time;int jud; }parking[50]; …

2022年1月14日 Go生态洞察:Go 1.18 新教程探索

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

java+springboot停车场小区车库租赁预订系统ssm+jsp

该平台为客户和业主提供等信息服务平台的运营方&#xff0c;管理方&#xff0c;如何通过车库平台建立实现优化管理的方法提供参考。能够实现在一个相对广阔的地域内&#xff08;例如一座城市)的多个停车场的随意停车。管理平台会统一调度车位资源&#xff0c;自动进行交易结算。…

12月01日,每日信息差//阿里国际发布3款AI设计生态工具//美团买菜升级为“小象超市”//外国人永居证换新、6国游客免签来华

_灵感 &#x1f396; 阿里国际发布3款AI设计生态工具 &#x1f384; AITO问界系列11月交付新车18827辆 &#x1f30d; 美团买菜升级为“小象超市” &#x1f30b; 全球首个金融风控大模型国际标准出炉&#xff0c;由腾讯牵头制定 &#x1f381; 支付宝&#xff1a;支持外国人…

剪辑必备AI去水印神器,手把手教你轻松消除图片水印

当我们的剪辑制作过程中&#xff0c;前期需要准备图片或视频素材&#xff0c;水印往往成为了我们首要解决的难题。 幸运的是&#xff0c;今天我为大家介绍一款在线AI去水印神器--水印云。 水印云是一个的在线去除图片水印工具。仅需三步&#xff0c;即可使用强大的 AI 技术从图…

latex表格中内容过多如何换行【已解决】

最近在写论文的时候放了一个表格&#xff0c;但是表格看起来特别大&#xff0c;因为想让某些内容多的单元格完成换行操作 首先在main.tex引入makecell包 \usepackage{makecell} 然后回到表格找到你想换行的单元格&#xff0c;把\makecell{}加进去&#xff0c;然后在需要换行的…

人活着到底是为了什么?

​ 最近在思考一个问题&#xff0c;人活着到底是为了什么&#xff1f;活着的意义是什么&#xff1f; 每天朝九晚六&#xff0c;忙忙碌碌&#xff0c;如同行尸走肉一般&#xff0c;日复一日&#xff0c;年复一年的重复着同样的生活&#xff0c;到底是为了什么&#xff0c;能不…

Python面向对象练习

Python面向对象练习 class Enty:blood100name""atackvalue100team0domain[1] #1,land 2 airdef setTeam(self,team0):self.teamteamdef atack(self,Enty):if self.teamEnty.team:print("不能向盟军开火")self.info()passelse :# print(self.domain)ss…

7.3 Windows驱动开发:内核监视LoadImage映像回调

在笔者上一篇文章《内核注册并监控对象回调》介绍了如何运用ObRegisterCallbacks注册进程与线程回调&#xff0c;并通过该回调实现了拦截指定进行运行的效果&#xff0c;本章LyShark将带大家继续探索一个新的回调注册函数&#xff0c;PsSetLoadImageNotifyRoutine常用于注册Loa…

2023年第十二届数学建模国际赛小美赛A题太阳黑子预测求解分析

2023年第十二届数学建模国际赛小美赛 A题 太阳黑子预测 原题再现&#xff1a; 太阳黑子是太阳光球上的一种现象&#xff0c;表现为比周围区域暗的暂时斑点。它们是由抑制对流的磁通量浓度引起的表面温度降低区域。太阳黑子出现在活跃区域内&#xff0c;通常成对出现&#xff…

【VerilogVCS仿真_2023.11.15】

HDL&#xff1a;硬件描述语言&#xff0c;并发&#xff0c;时序RTL&#xff1a;寄存器传输级语言 Verilog和VHDL的区别&#xff1a;VHDL侧重于系统级描述——系统级设计人员所采用&#xff0c;Verilog侧重于模块行为的抽象描述——电路级设计人员 前端&#xff1a;系统级、算法…

[数据结构]深入浅出讲解二叉树-平衡二叉树-左右旋转

树是一种数据结构&#xff0c;单位为Node(节点)。不同于链表的直线排列&#xff0c;树呈现一种自上而下的分层排序规则。 树->数据结构&#xff1a; 单元为Node(节点)->当这样的节点多了 就可以关联出不同的形态 一个父节点有一个左子节点&#xff0c;有…

11.31链表,之前的数据结构(未完,饼)

根据输入序列建立二叉树 链表 回顾一下二分面积最小 一些性质题回顾 哈夫曼树构建 第十一周——哈夫曼树 5 1 2 2 5 9 37 桶排序 #include <iostream> #include <vector> #include <algorithm> #include<stack> #include<queue> #includ…

软件工程 - 第8章 面向对象建模 - 2 静态建模

静态建模&#xff08;类和对象建模&#xff09; 类和对象模型的基本模型元素有类、对象以及它们之间的关系。系统中的类和对象模型描述了系统的静态结构&#xff0c;在UML中用类图和对象图来表示。 类图由系统中使用的类以及它们之间的关系组成。类之间的关系有关联、依赖、泛…