Aritmetik och operatorer
Addera, subtrahera, multiplicera och dividera i SQL.
Aritmetik och operatorer är en gratis lektion i SQL Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för SQL Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i SQL Academy innehåller totalt 4 lektioner.
Beräkningar i SELECT
SQL används inte bara för att hämta rader. Du kan beräkna värden direkt i en fråga med hjälp av aritmetiska operatorer.
I den här lektionen kommer du att addera, subtrahera, multiplicera och dividera med hjälp av kolumner och litteraler, ge resultaten namn och förstå hur PostgreSQL avgör typen för varje resultat.
Föreställ dig en tabell med namnet order_items som innehåller quantity och unit_price. Vi kan beräkna totalsumman för en orderrad utan att röra applikationskoden.
SELECT quantity, unit_price, quantity * unit_price AS line_total
FROM order_items;De fem aritmetiska operatorerna
PostgreSQL stöder de vanliga operatorerna:
+addition-subtraktion*multiplikation/division%modulo (rest)
De fungerar på numeriska kolumner och litteraler precis som i vilket programmeringsspråk som helst. Frågan nedan visar dem i praktiken.
SELECT
10 + 3 AS sum,
10 - 3 AS difference,
10 * 3 AS product,
10 / 3 AS quotient,
10 % 3 AS remainder;Operatorprioritet
SQL följer standardiserad matematisk prioritet: *, / och % binder hårdare än + och -.
Använd parenteser för att tydliggöra avsikten och åsidosätta standardordningen. De två uttrycken nedan ger mycket olika resultat.
SELECT
2 + 3 * 4 AS without_parens, -- 14
(2 + 3) * 4 AS with_parens; -- 20Beräkna ett rabatterat pris
En vanlig uppgift i verkligheten är att tillämpa en procentuell rabatt. Multiplicera priset med (1 - discount_rate).
Här lagras discount_rate som en andel (0.15 = 15 %). Parenteserna garanterar att subtraktionen utförs före multiplikationen.
SELECT
product_id,
price,
discount_rate,
price * (1 - discount_rate) AS final_price
FROM products;Aritmetik över flera kolumner
Operander behöver inte vara litteraler. Du kan kombinera flera kolumner i samma uttryck.
Nedan beräknar vi nettovinsten per försäljning: intäkt minus kostnad, multiplicerat med den sålda kvantiteten.
SELECT
sale_id,
(sale_price - cost) * quantity AS profit
FROM sales;Namnge resultat med AS
Beräknade kolumner får automatiskt genererade namn som ?column? om du inte ger dem alias. Använd alltid AS för att ge dem läsbara namn.
Ett alias gör det också tydligare att referera till kolumnen i dina verktyg och rapporter.
SELECT
base_salary,
base_salary * 0.10 AS bonus,
base_salary + base_salary * 0.10 AS total_pay
FROM employees;Aritmetik i WHERE
Du kan använda aritmetik även i WHERE-satsen, inte bara i SELECT.
Detta filtrerar fram beställningar där den beräknade totalsumman överstiger 100. Observera att aritmetik på en kolumn kan förhindra indexanvändning, så föredra oförändrade kolumner i filter när prestandan är viktig.
SELECT order_id, quantity, unit_price
FROM order_items
WHERE quantity * unit_price > 100;Resultattyper följer indata
PostgreSQL härleder resultattypen från operanderna. Heltal + heltal ger ett heltal; om någon sida är numeric eller float blir resultatet det också.
Detta är viktigast vid division, som vi tar upp senare. Lägg tills vidare märke till hur blandade typer gör resultattypen mer generell.
SELECT
pg_typeof(4 + 2) AS int_type, -- integer
pg_typeof(4 + 2.0) AS numeric_type, -- numeric
pg_typeof(4 * 1.5); -- numericModulooperatorn
% returnerar resten vid heltalsdivision. Den är användbar för cyklisk logik, till exempel ”var N:te rad”, eller för att kontrollera om värden är jämna eller udda.
Nedan hittar vi jämna produkt-ID:n med hjälp av % 2 = 0.
SELECT product_id, name
FROM products
WHERE product_id % 2 = 0;Uppdatera värden med aritmetik
Aritmetik är inte begränsad till SELECT. Du kan använda den i UPDATE för att justera lagrade värden.
Detta höjer varje pris i en kategori med 5 %. Uttrycket till höger beräknas för varje rad.
UPDATE products
SET price = price * 1.05
WHERE category = 'electronics';Se upp med NULL
All aritmetik som involverar NULL ger NULL, eftersom resultatet är okänt.
Om en kolumn kan saknas kan du omsluta den med COALESCE för att ange ett standardvärde innan du utför beräkningen.
SELECT
base + NULL AS is_null, -- NULL
base + COALESCE(bonus, 0) AS safe_total
FROM payroll;Snabbkontroll
Vad blir resultatet av uttrycket 2 + 6 / 2 i PostgreSQL?
Sammanfattning
Du kan beräkna värden direkt i SQL:
+ - * / %är de grundläggande operatorerna*,/och%binder hårdare än+och-; använd parenteser för att vara tydlig- Ge beräknade kolumner alias med
AS - Aritmetik fungerar i
SELECT,WHEREochUPDATE - Resultattypen följer operanderna, och varje
NULL-operand gör resultatet tillNULL
Nästa steg är att hantera avrundning och trunkering av dessa numeriska resultat.
Lär dig SQL med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 46
- Lektioner
- 183
Vanliga frågor
Är lektionen ”Aritmetik och operatorer” gratis?
Ja – hela texten till ”Aritmetik och operatorer” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i SQL Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i SQL Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Aritmetik och operatorer”?
Addera, subtrahera, multiplicera och dividera i SQL. Ni övar på SQL Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig SQL Academy?
Du behöver inga förkunskaper. Utbildningen i SQL Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Aritmetik och operatorer”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här SQL Academy-lektionen?
Ja. Varje SQL Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Aritmetik och operatorer
- Avrundning och trunkering
- Heltals- kontra decimaldivision
- Användbara matematiska funktioner