SQL算術(shù)運(yùn)算符之加法、減法、乘法、除法和取模的用法例子
什么是存儲(chǔ)過程?
存儲(chǔ)過程是一段預(yù)先編寫好的 SQL 代碼,可以保存在數(shù)據(jù)庫中以供反復(fù)使用。它允許將一系列 SQL 語句組合成一個(gè)邏輯單元,并為其分配一個(gè)名稱,以便在需要時(shí)調(diào)用執(zhí)行。存儲(chǔ)過程可以接受參數(shù),使其更加靈活和通用。
存儲(chǔ)過程語法
創(chuàng)建存儲(chǔ)過程的語法如下:
CREATE PROCEDURE 存儲(chǔ)過程名稱 AS SQL語句 GO;
執(zhí)行存儲(chǔ)過程的語法如下:
EXEC 存儲(chǔ)過程名稱;
演示數(shù)據(jù)庫
以下是 Northwind 示例數(shù)據(jù)庫中 “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ǔ)過程示例
以下 SQL 語句創(chuàng)建了一個(gè)名為 “SelectAllCustomers” 的存儲(chǔ)過程,用于從 “Customers” 表中選擇所有記錄:
CREATE PROCEDURE SelectAllCustomers AS SELECT * FROM Customers GO;
執(zhí)行上述存儲(chǔ)過程的方法如下:
EXEC SelectAllCustomers;
帶有一個(gè)參數(shù)的存儲(chǔ)過程
以下 SQL 語句創(chuàng)建了一個(gè)存儲(chǔ)過程,該過程從 “Customers” 表中選擇特定城市的客戶:
CREATE PROCEDURE SelectAllCustomers @City nvarchar(30) AS SELECT * FROM Customers WHERE City = @City GO;
執(zhí)行上述存儲(chǔ)過程的方法如下:
EXEC SelectAllCustomers @City = 'London';
帶有多個(gè)參數(shù)的存儲(chǔ)過程
設(shè)置多個(gè)參數(shù)非常簡單。只需逐個(gè)列出每個(gè)參數(shù)及其數(shù)據(jù)類型,用逗號(hào)分隔。
以下 SQL 語句創(chuàng)建了一個(gè)存儲(chǔ)過程,該過程從 “Customers” 表中選擇特定城市和特定郵政編碼的客戶:
CREATE PROCEDURE SelectAllCustomers @City nvarchar(30), @PostalCode nvarchar(10) AS SELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCode GO;
執(zhí)行上述存儲(chǔ)過程的方法如下:
EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP';
SQL 注釋用于提供對(duì) SQL 語句的解釋,或者在調(diào)試和維護(hù)過程中臨時(shí)禁用某些語句。注釋不會(huì)被數(shù)據(jù)庫執(zhí)行。
單行注釋
單行注釋以 --
開頭,后面的文本將被注釋掉。
-- 這是單行注釋 SELECT * FROM Customers;
在單行注釋中,--
后面的文本會(huì)被忽略。
單行注釋在語句末尾
SELECT * FROM Customers -- WHERE City='Berlin';
在這個(gè)例子中,--
后面的文本和語句末尾的內(nèi)容都被忽略。
多行注釋
多行注釋以 /*
開頭,以 */
結(jié)尾,之間的所有文本都被注釋掉。
/* 這是 多行注釋 */ SELECT * FROM Customers;
在多行注釋中,/*
和 */
之間的文本都被忽略。
多行注釋忽略多條語句
/* SELECT * FROM Customers; SELECT * FROM Products; SELECT * FROM Orders; SELECT * FROM Categories; */ SELECT * FROM Suppliers;
在這個(gè)例子中,/*
和 */
之間的所有語句都被注釋掉。
部分注釋
要僅忽略語句的一部分,可以在適當(dāng)位置使用 /* */
注釋。
SELECT CustomerName, /*City,*/ Country FROM Customers;
在這個(gè)例子中,/*
和 */
之間的 City
列會(huì)被注釋掉,而其他部分保持不變。
部分注釋語句
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)算符用于連接和改變條件語句的邏輯關(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的自連接和join關(guān)聯(lián)
這篇文章主要給大家介紹了關(guān)于mysql的自連接和join關(guān)聯(lián)的相關(guān)資料,文中介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-04-04mysql now()函數(shù)調(diào)用系統(tǒng)時(shí)間不對(duì)的解決方法
mysql的now()函數(shù)與實(shí)際時(shí)間不符,本文就詳細(xì)的介紹一下mysql now()函數(shù)調(diào)用系統(tǒng)時(shí)間不對(duì)的解決方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2023-05-05PureFTP借助MySQL實(shí)現(xiàn)用戶身份驗(yàn)證的操作教程
這篇文章主要介紹了PureFTP借助MySQL實(shí)現(xiàn)用戶身份驗(yàn)證的操作教程,就像普通程序中的用戶注冊(cè)功能那樣為用戶登陸數(shù)據(jù)信息建立一個(gè)數(shù)據(jù)庫來進(jìn)行驗(yàn)證,需要的朋友可以參考下2015-12-12MySQL數(shù)據(jù)遷移相關(guān)總結(jié)
這篇文章主要介紹了MySQL數(shù)據(jù)遷移的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下2021-04-04