SQL算術(shù)運(yùn)算符之加法、減法、乘法、除法和取模的用法例子
什么是存儲(chǔ)過(guò)程?
存儲(chǔ)過(guò)程是一段預(yù)先編寫(xiě)好的 SQL 代碼,可以保存在數(shù)據(jù)庫(kù)中以供反復(fù)使用。它允許將一系列 SQL 語(yǔ)句組合成一個(gè)邏輯單元,并為其分配一個(gè)名稱,以便在需要時(shí)調(diào)用執(zhí)行。存儲(chǔ)過(guò)程可以接受參數(shù),使其更加靈活和通用。
存儲(chǔ)過(guò)程語(yǔ)法
創(chuàng)建存儲(chǔ)過(guò)程的語(yǔ)法如下:
CREATE PROCEDURE 存儲(chǔ)過(guò)程名稱 AS SQL語(yǔ)句 GO;
執(zhí)行存儲(chǔ)過(guò)程的語(yǔ)法如下:
EXEC 存儲(chǔ)過(guò)程名稱;
演示數(shù)據(jù)庫(kù)
以下是 Northwind 示例數(shù)據(jù)庫(kù)中 “Customers” 表的部分內(nèi)容:
| 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 |
存儲(chǔ)過(guò)程示例
以下 SQL 語(yǔ)句創(chuàng)建了一個(gè)名為 “SelectAllCustomers” 的存儲(chǔ)過(guò)程,用于從 “Customers” 表中選擇所有記錄:
CREATE PROCEDURE SelectAllCustomers AS SELECT * FROM Customers GO;
執(zhí)行上述存儲(chǔ)過(guò)程的方法如下:
EXEC SelectAllCustomers;
帶有一個(gè)參數(shù)的存儲(chǔ)過(guò)程
以下 SQL 語(yǔ)句創(chuàng)建了一個(gè)存儲(chǔ)過(guò)程,該過(guò)程從 “Customers” 表中選擇特定城市的客戶:
CREATE PROCEDURE SelectAllCustomers @City nvarchar(30) AS SELECT * FROM Customers WHERE City = @City GO;
執(zhí)行上述存儲(chǔ)過(guò)程的方法如下:
EXEC SelectAllCustomers @City = 'London';
帶有多個(gè)參數(shù)的存儲(chǔ)過(guò)程
設(shè)置多個(gè)參數(shù)非常簡(jiǎn)單。只需逐個(gè)列出每個(gè)參數(shù)及其數(shù)據(jù)類型,用逗號(hào)分隔。
以下 SQL 語(yǔ)句創(chuàng)建了一個(gè)存儲(chǔ)過(guò)程,該過(guò)程從 “Customers” 表中選擇特定城市和特定郵政編碼的客戶:
CREATE PROCEDURE SelectAllCustomers @City nvarchar(30), @PostalCode nvarchar(10) AS SELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCode GO;
執(zhí)行上述存儲(chǔ)過(guò)程的方法如下:
EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP';
SQL 注釋用于提供對(duì) SQL 語(yǔ)句的解釋,或者在調(diào)試和維護(hù)過(guò)程中臨時(shí)禁用某些語(yǔ)句。注釋不會(huì)被數(shù)據(jù)庫(kù)執(zhí)行。
單行注釋
單行注釋以 -- 開(kāi)頭,后面的文本將被注釋掉。
-- 這是單行注釋 SELECT * FROM Customers;
在單行注釋中,-- 后面的文本會(huì)被忽略。
單行注釋在語(yǔ)句末尾
SELECT * FROM Customers -- WHERE City='Berlin';
在這個(gè)例子中,-- 后面的文本和語(yǔ)句末尾的內(nèi)容都被忽略。
多行注釋
多行注釋以 /* 開(kāi)頭,以 */ 結(jié)尾,之間的所有文本都被注釋掉。
/* 這是 多行注釋 */ SELECT * FROM Customers;
在多行注釋中,/* 和 */ 之間的文本都被忽略。
多行注釋忽略多條語(yǔ)句
/* SELECT * FROM Customers; SELECT * FROM Products; SELECT * FROM Orders; SELECT * FROM Categories; */ SELECT * FROM Suppliers;
在這個(gè)例子中,/* 和 */ 之間的所有語(yǔ)句都被注釋掉。
部分注釋
要僅忽略語(yǔ)句的一部分,可以在適當(dāng)位置使用 /* */ 注釋。
SELECT CustomerName, /*City,*/ Country FROM Customers;
在這個(gè)例子中,/* 和 */ 之間的 City 列會(huì)被注釋掉,而其他部分保持不變。
部分注釋語(yǔ)句
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;
在這個(gè)例子中,/* 和 */ 之間的部分條件被注釋掉,但其他條件保持不變。
SQL 算術(shù)運(yùn)算符
加法 (+): 用于將兩個(gè)值相加。
SELECT column1 + column2 AS SumResult FROM tableName;
減法 (-): 用于從第一個(gè)值中減去第二個(gè)值。
SELECT column1 - column2 AS Difference FROM tableName;
乘法 (*): 用于將兩個(gè)值相乘。
SELECT column1 * column2 AS Product FROM tableName;
除法 (/): 用于將第一個(gè)值除以第二個(gè)值。
SELECT column1 / column2 AS Quotient FROM tableName;
取模 (%): 返回除法的余數(shù)。
SELECT column1 % column2 AS Modulus FROM tableName;
SQL 位運(yùn)算符
按位與 (&): 對(duì)二進(jìn)制數(shù)進(jìn)行按位與運(yùn)算。
SELECT column1 & column2 AS BitwiseAND FROM tableName;
按位或 (|): 對(duì)二進(jìn)制數(shù)進(jìn)行按位或運(yùn)算。
SELECT column1 | column2 AS BitwiseOR FROM tableName;
按位異或 (^): 對(duì)二進(jìn)制數(shù)進(jìn)行按位異或運(yùn)算。
SELECT column1 ^ column2 AS BitwiseXOR FROM tableName;
SQL 比較運(yùn)算符
等于 (=): 判斷兩個(gè)值是否相等。
SELECT column1 FROM tableName WHERE column1 = column2;
大于 (>): 判斷一個(gè)值是否大于另一個(gè)值。
SELECT column1 FROM tableName WHERE column1 > column2;
小于 (<): 判斷一個(gè)值是否小于另一個(gè)值。
SELECT column1 FROM tableName WHERE column1 < column2;
大于等于 (>=): 判斷一個(gè)值是否大于或等于另一個(gè)值。
SELECT column1 FROM tableName WHERE column1 >= column2;
小于等于 (<=): 判斷一個(gè)值是否小于或等于另一個(gè)值。
SELECT column1 FROM tableName WHERE column1 <= column2;
不等于 (<> 或 !=): 判斷兩個(gè)值是否不相等。
SELECT column1 FROM tableName WHERE column1 <> column2;
SQL 復(fù)合運(yùn)算符
復(fù)合運(yùn)算符是一組用于執(zhí)行多個(gè)操作的運(yùn)算符。
加等于 (+=): 將右側(cè)的值添加到左側(cè)的值,并將結(jié)果分配給左側(cè)的值。
UPDATE tableName SET column1 += 10 WHERE condition;
減等于 (-=): 從左側(cè)的值中減去右側(cè)的值,并將結(jié)果分配給左側(cè)的值。
UPDATE tableName SET column1 -= 5 WHERE condition;
乘等于 (*=): 將左側(cè)的值乘以右側(cè)的值,并將結(jié)果分配給左側(cè)的值。
UPDATE tableName SET column1 *= 2 WHERE condition;
除等于 (/=): 將左側(cè)的值除以右側(cè)的值,并將結(jié)果分配給左側(cè)的值。
UPDATE tableName SET column1 /= 3 WHERE condition;
取模等于 (%=): 將左側(cè)的值除以右側(cè)的值并取余數(shù),結(jié)果分配給左側(cè)的值。
UPDATE tableName SET column1 %= 4 WHERE condition;
SQL 邏輯運(yùn)算符
邏輯運(yùn)算符用于連接和改變條件語(yǔ)句的邏輯關(guān)系。
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 可以結(jié)合使用,以滿足更復(fù)雜的查詢需求。
總結(jié)
到此這篇關(guān)于SQL算術(shù)運(yùn)算符之加法、減法、乘法、除法和取模用法的文章就介紹到這了,更多相關(guān)SQL算術(shù)運(yùn)算符用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解MySQL中concat函數(shù)的用法(連接字符串)
本篇文章主要介紹了MySQL中concat函數(shù)的用法(連接字符串),在命令行模式下進(jìn)行測(cè)試。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-12-12
MyEclipse連接MySQL數(shù)據(jù)庫(kù)報(bào)錯(cuò)解決辦法
我們現(xiàn)在一般網(wǎng)站都是利用的MySQL數(shù)據(jù)庫(kù)搭建網(wǎng)站的,但是在網(wǎng)上看到很多網(wǎng)友吐槽數(shù)據(jù)庫(kù)連接不上的問(wèn)題,現(xiàn)在我就結(jié)合相關(guān)資料向提出一些我個(gè)人的見(jiàn)解,希望對(duì)大家解決問(wèn)題有幫助2014-01-01
一文解決連接MySQL報(bào)錯(cuò)is?not?allowed?to?connect?to?this?MySQL?
這篇文章主要給大家介紹了關(guān)于如何通過(guò)一文解決連接MySQL報(bào)錯(cuò)is?not?allowed?to?connect?to?this?MySQL?server的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08
Mysql存儲(chǔ)過(guò)程學(xué)習(xí)筆記--建立簡(jiǎn)單的存儲(chǔ)過(guò)程
我們常用的操作數(shù)據(jù)庫(kù)語(yǔ)言SQL語(yǔ)句在執(zhí)行的時(shí)候需要要先編譯,然后執(zhí)行,而存儲(chǔ)過(guò)程(Stored Procedure)是一組為了完成特定功能的SQL語(yǔ)句集,經(jīng)編譯后存儲(chǔ)在數(shù)據(jù)庫(kù)中,用戶通過(guò)指定存儲(chǔ)過(guò)程的名字并給定參數(shù)(如果該存儲(chǔ)過(guò)程帶有參數(shù))來(lái)調(diào)用執(zhí)行它。2014-08-08
在Ubuntu或Debian系統(tǒng)的服務(wù)器上卸載MySQL的方法
這篇文章主要介紹了在Ubuntu或Debian系統(tǒng)的服務(wù)器上卸載MySQL的方法,適用于Debian系的Linux系統(tǒng),需要的朋友可以參考下2015-06-06

