เลขคณิตและตัวดำเนินการ
บวก ลบ คูณ และหารใน SQL
เลขคณิตและตัวดำเนินการ เป็นบทเรียน SQL Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน SQL Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส SQL Academy มีบทเรียนทั้งหมด 4 บทเรียน
การคำนวณใน SELECT
SQL ไม่ได้มีไว้แค่ดึงแถว คุณสามารถคำนวณค่าได้โดยตรงภายในคิวรีโดยใช้ตัวดำเนินการทางคณิตศาสตร์
ในบทเรียนนี้ คุณจะบวก ลบ คูณ และหารโดยใช้คอลัมน์กับค่าคงที่ ตั้งชื่อผลลัพธ์ และทำความเข้าใจว่า PostgreSQL ตัดสินใจเลือกชนิดของผลลัพธ์แต่ละรายการอย่างไร
ลองนึกภาพตาราง order_items ที่มี quantity และ unit_price เราสามารถคำนวณยอดรวมของรายการได้โดยไม่ต้องแก้ไขโค้ดของโปรแกรม
SELECT quantity, unit_price, quantity * unit_price AS line_total
FROM order_items;ตัวดำเนินการทางคณิตศาสตร์ห้ารายการ
PostgreSQL รองรับตัวดำเนินการทั่วไปดังต่อไปนี้:
+การบวก-การลบ*การคูณ/การหาร%การหาเศษ
ตัวดำเนินการเหล่านี้ใช้กับคอลัมน์ตัวเลขและค่าคงที่ได้เช่นเดียวกับในภาษาโปรแกรมทั่วไป คิวรีด้านล่างแสดงการใช้งานแต่ละรายการ
SELECT
10 + 3 AS sum,
10 - 3 AS difference,
10 * 3 AS product,
10 / 3 AS quotient,
10 % 3 AS remainder;ลำดับความสำคัญของตัวดำเนินการ
SQL ใช้ลำดับความสำคัญตามหลักคณิตศาสตร์มาตรฐาน: *, / และ % มีลำดับสูงกว่า + และ -
ใช้วงเล็บเพื่อระบุเจตนาให้ชัดเจนและเปลี่ยนลำดับเริ่มต้น นิพจน์สองรายการด้านล่างให้ผลลัพธ์แตกต่างกันมาก
SELECT
2 + 3 * 4 AS without_parens, -- 14
(2 + 3) * 4 AS with_parens; -- 20การคำนวณราคาหลังหักส่วนลด
งานที่พบได้บ่อยในโลกจริงคือการใช้ส่วนลดเป็นเปอร์เซ็นต์ ให้คูณราคาด้วย (1 - discount_rate)
ในที่นี้ discount_rate จัดเก็บเป็นเศษส่วน (0.15 = 15%) วงเล็บช่วยให้มั่นใจว่าการลบจะเกิดขึ้นก่อนการคูณ
SELECT
product_id,
price,
discount_rate,
price * (1 - discount_rate) AS final_price
FROM products;การคำนวณระหว่างคอลัมน์
ตัวถูกดำเนินการไม่จำเป็นต้องเป็นค่าคงที่ คุณสามารถรวมหลายคอลัมน์ไว้ในนิพจน์เดียวได้
ด้านล่างนี้เราคำนวณกำไรสุทธิต่อการขาย โดยนำรายได้ลบต้นทุน แล้วปรับตามจำนวนที่ขายได้
SELECT
sale_id,
(sale_price - cost) * quantity AS profit
FROM sales;การตั้งชื่อผลลัพธ์ด้วย AS
คอลัมน์ที่คำนวณจะได้ชื่อที่ระบบสร้างขึ้นอัตโนมัติ เช่น ?column? หากไม่ได้ตั้งชื่อแทน ดังนั้นควรใช้ AS เพื่อกำหนดชื่อที่อ่านเข้าใจง่ายเสมอ
ชื่อแทนยังช่วยให้คุณอ้างอิงคอลัมน์ได้ชัดเจนยิ่งขึ้นในเครื่องมือและรายงาน
SELECT
base_salary,
base_salary * 0.10 AS bonus,
base_salary + base_salary * 0.10 AS total_pay
FROM employees;การคำนวณใน WHERE
คุณสามารถใช้การคำนวณในส่วนคำสั่ง WHERE ได้เช่นกัน ไม่ได้จำกัดอยู่แค่ SELECT
ตัวอย่างนี้กรองคำสั่งซื้อที่มียอดรวมจากการคำนวณมากกว่า 100 หมายเหตุ: การครอบคอลัมน์ด้วยการคำนวณอาจทำให้ไม่สามารถใช้ดัชนีได้ ดังนั้นเมื่อประสิทธิภาพมีความสำคัญ ควรใช้คอลัมน์โดยตรงในตัวกรอง
SELECT order_id, quantity, unit_price
FROM order_items
WHERE quantity * unit_price > 100;ชนิดของผลลัพธ์ขึ้นอยู่กับข้อมูลนำเข้า
PostgreSQL อนุมานชนิดของผลลัพธ์จากตัวถูกดำเนินการ การบวกจำนวนเต็มกับจำนวนเต็มให้ผลเป็นจำนวนเต็ม หากด้านใดด้านหนึ่งเป็น numeric หรือ float ผลลัพธ์ก็จะเป็นชนิดนั้นเช่นกัน
เรื่องนี้สำคัญที่สุดกับการหาร ซึ่งเราจะกล่าวถึงในภายหลัง ในตอนนี้ให้สังเกตว่าการผสมชนิดข้อมูลจะยกระดับชนิดของผลลัพธ์
SELECT
pg_typeof(4 + 2) AS int_type, -- integer
pg_typeof(4 + 2.0) AS numeric_type, -- numeric
pg_typeof(4 * 1.5); -- numericตัวดำเนินการหาเศษ
% คืนค่าเศษที่เหลือจากการหารจำนวนเต็ม เหมาะสำหรับตรรกะแบบวนรอบ เช่น “ทุก ๆ แถวที่ N” หรือการตรวจสอบค่าคู่และค่าคี่
ด้านล่างนี้เราค้นหารหัสผลิตภัณฑ์ที่เป็นจำนวนคู่โดยใช้ % 2 = 0
SELECT product_id, name
FROM products
WHERE product_id % 2 = 0;การปรับค่าด้วยการคำนวณ
การคำนวณไม่ได้จำกัดอยู่แค่ SELECT คุณสามารถใช้ในการ UPDATE เพื่อปรับค่าที่จัดเก็บไว้
ตัวอย่างนี้เพิ่มราคาของทุกรายการในหมวดหมู่หนึ่งขึ้น 5% นิพจน์ทางขวาจะถูกประเมินแยกกันในแต่ละแถว
UPDATE products
SET price = price * 1.05
WHERE category = 'electronics';ระวัง NULL
การคำนวณใด ๆ ที่เกี่ยวข้องกับ NULL จะให้ผลลัพธ์เป็น NULL เพราะผลลัพธ์นั้นไม่ทราบค่า
หากคอลัมน์อาจไม่มีค่า ให้ครอบคอลัมน์ด้วย COALESCE เพื่อกำหนดค่าเริ่มต้นก่อนทำการคำนวณ
SELECT
base + NULL AS is_null, -- NULL
base + COALESCE(bonus, 0) AS safe_total
FROM payroll;ตรวจสอบความเข้าใจอย่างรวดเร็ว
นิพจน์ 2 + 6 / 2 ให้ผลลัพธ์เป็นเท่าใดใน PostgreSQL
ทบทวน
คุณสามารถคำนวณค่าได้โดยตรงใน SQL:
+ - * / %คือตัวดำเนินการหลัก*,/,%มีลำดับสูงกว่า+และ-ควรใช้วงเล็บเพื่อระบุลำดับให้ชัดเจน- ตั้งชื่อแทนให้คอลัมน์ที่คำนวณด้วย
AS - การคำนวณใช้ได้ใน
SELECT,WHEREและUPDATE - ชนิดของผลลัพธ์ขึ้นอยู่กับตัวถูกดำเนินการ และตัวถูกดำเนินการที่เป็น
NULLใด ๆ จะทำให้ผลลัพธ์เป็นNULL
ต่อไปเราจะเรียนรู้การปัดเศษและการตัดทอนผลลัพธ์ตัวเลขเหล่านี้
คำถามที่พบบ่อย
บทเรียน “เลขคณิตและตัวดำเนินการ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เลขคณิตและตัวดำเนินการ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส SQL Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส SQL Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เลขคณิตและตัวดำเนินการ”
บวก ลบ คูณ และหารใน SQL คุณปฏิบัติ SQL Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน SQL Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน SQL Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “เลขคณิตและตัวดำเนินการ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน SQL Academy นี้ได้ไหม
ได้ บทเรียน SQL Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เลขคณิตและตัวดำเนินการ
- การปัดเศษและตัดทศนิยม
- การหารจำนวนเต็มเทียบกับทศนิยม
- ฟังก์ชันคณิตศาสตร์ที่มีประโยชน์